def create_or_update_user():
    """Endpoint for creating or updating user details."""
    content = request.json
    if not content:
        return jsonify(message='User ID and Snyk Token should be present',
                       status=400), 400

    user_id = content.get('user_id')

    if not user_id:
        return jsonify(message='User ID should be present', status=400), 400

    snyk_api_token = content.get('snyk_api_token')
    if not snyk_api_token:
        return jsonify(message='Snyk API Token should be present',
                       status=400), 400

    if not is_snyk_token_valid(snyk_api_token):
        return jsonify(message='Snyk API Token is invalid', status=400), 400

    encrypted_api_token = encrypt_api_token(snyk_api_token)
    user_utils.create_or_update_user(user_id, encrypted_api_token.decode(),
                                     "SNYK")
    # Update user in Cache to avoid RDS calls
    user_utils.create_or_update_user_in_cache(user_id)
    return jsonify(user_id=user_id)
Esempio n. 2
0
def call_snyk_api(user_to_tokens: dict) -> list:
    """Snyk API invocation to figure out unregistered users."""
    unregistered_users = list()
    for user_id, token in user_to_tokens.items():
        decrypted_token = decrypt_api_token(token)
        if not is_snyk_token_valid(decrypted_token.decode()):
            logger.info("User id %s has an invalid token", user_id)
            unregistered_users.append(user_id)

    return unregistered_users
Esempio n. 3
0
def create_or_update_user():
    """Endpoint for creating or updating user details."""
    content = request.json
    user_id = content.get('user_id')

    if not user_id:
        raise HTTPError(400, "user id should be present")

    snyk_api_token = content.get('snyk_api_token')
    if not snyk_api_token:
        raise HTTPError(400, 'snyk api token should be present')

    if not is_snyk_token_valid(snyk_api_token):
        raise HTTPError(400, "Invalid API Token")

    encrypted_api_token = encrypt_api_token(snyk_api_token)
    user_utils.create_or_update_user(user_id, encrypted_api_token.decode(), "SNYK")
    return jsonify(user_id=user_id)
 def test_is_invalid_snyk_token(self, mock1):
     """Check for invalid token."""
     mock1.return_value = resp_400
     self.assertFalse(snyk_utils.is_snyk_token_valid("invalid_snyk_token"))
 def test_is_valid_snyk_token(self, mock1):
     """Check for valid token."""
     mock1.return_value = resp_200
     self.assertTrue(snyk_utils.is_snyk_token_valid("valid_snyk_token"))