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)
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
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"))