Esempio n. 1
0
 def authenticate(self, user_id):
     try:
         auth_token = self.auth_token_service.generate_auth_token(user_id)
         self.user_command_repository.update_user_auth_token(
             user_id, auth_token)
         user = self.user_query_repository.get_user_by_id(user_id)
     except CommandError as ce:
         raise ServiceError(str(ce))
     except QueryError as qe:
         raise ServiceError(str(qe))
     except ServiceError as se:
         raise ServiceError(str(se))
     return user
Esempio n. 2
0
 def create_user(self, user):
     if user is None:
         raise ValueError('User cannot be none')
     else:
         try:
             if self.__user_query_repository.get_user_by_email(user.get_email()) is not None:
                 raise ServiceError('Email already used')
             elif self.__user_query_repository.get_user_by_nickname(user.get_nickname()) is not None:
                 raise ServiceError('Nickname already used')
             else:
                 self.__user_command_repository.create_user(user)
         except CommandError as ce:
             raise ServiceError(str(ce))
         except QueryError as qe:
             raise ServiceError(str(qe))
Esempio n. 3
0
 def get_user_by_auth_token(self, token):
     if token is None:
         raise ValueError('auth token cannot be None')
     try:
         return self.__user_query_repository.get_user_by_auth_token(token)
     except QueryError as qe:
         raise ServiceError(str(qe))
Esempio n. 4
0
 def generate_auth_token(self, user_id):
     if user_id is None:
         raise ServiceError('user_id cannot be None')
     source_str = str(user_id) + self.seed
     md5lib = hashlib.md5()
     md5lib.update(source_str.encode("utf-8"))
     return md5lib.hexdigest()
 def increment_exercise_evaluation_attempts(self, exercise_evaluation):
     if exercise_evaluation is None:
         raise ValueError('Exercise evaluation cannot be None')
     try:
         self.__exercise_evaluation_command_repository.increment_exercise_evaluation_attempts(
             exercise_evaluation=exercise_evaluation)
     except CommandError as ce:
         raise ServiceError(str(ce))
Esempio n. 6
0
 def execute_exercise_query(self, query, exercise_id):
     try:
         exercise = self.__exercise_service.get_exercise_by_id(exercise_id)
         self.__mongo_wrapper.set_collection_data(
             exercise.get_collection_name(), exercise.get_collection_data())
         return self.execute_query(query)
     except MongoWrapperException as mwe:
         raise ServiceError(str(mwe))
Esempio n. 7
0
 def create_exercise(self, exercise):
     if exercise is None:
         raise ValueError('Exercise cannot be None')
     try:
         self.__exercise_command_repository.create_exercise(
             exercise=exercise)
     except CommandError as ce:
         raise ServiceError(str(ce))
Esempio n. 8
0
 def test_create_calledWithInnerServiceWhichRaisesServiceError_returnCorrectJSONResponse(
         self):
     json_raw = '{"query":"db.collection.find({})"}'
     self.stub_query_execution_service.execute_query.side_effect = ServiceError(
         'error')
     expected = '{"code":0,"data":"","message":"server error","field": "", "exception_message": "error"}'
     request = self._configure_sut_request(json_raw)
     actual = self.sut.create(request)
     self._parse_and_test_response(actual, expected)
Esempio n. 9
0
 def get_user_by_credentials(self, email, password):
     if email is None:
         raise ValueError('email cannot be None')
     if password is None:
         raise ValueError('password cannot be None')
     try:
         return self.__user_query_repository.get_user_by_credentials(email, password)
     except QueryError as qe:
         raise ServiceError(str(qe))
Esempio n. 10
0
 def increment_user_score(self, user_id, score):
     if user_id is None:
         raise ValueError('user_id cannot be None')
     if score is None:
         raise ValueError('score cannot be None')
     try:
         self.__user_command_repository.increment_user_score(user_id, score)
     except CommandError as ce:
         raise ServiceError(str(ce))
 def get_exercise_evaluation(self, user_id, exercise_id):
     if user_id is None:
         raise ValueError('user_id cannot be None')
     if exercise_id is None:
         raise ValueError('exercise_id cannot be None')
     try:
         return self.__exercise_evaluation_query_repository.get_exercise_evaluation(
             user_id, exercise_id)
     except QueryError as qe:
         raise ServiceError(str(qe))
Esempio n. 12
0
 def get_exercise_by_id(self, exercise_id):
     if exercise_id is None:
         raise ValueError('id cannot be None')
     try:
         return self.__exercise_query_repository.get_exercise_by_id(
             exercise_id=exercise_id)
     except ResourceNotFoundQueryError as rnfqe:
         raise ResourceNotFoundServiceError(str(rnfqe))
     except QueryError as qe:
         raise ServiceError(str(qe))
 def update_exercise_evaluation_as_solved(self, user_id, exercise_id,
                                          time_left):
     if user_id is None:
         raise ValueError('user_id cannot be None')
     if exercise_id is None:
         raise ValueError('exercise_id cannot be None')
     if time_left is None:
         raise ValueError('leftover_time cannot be None')
     exercise_evaluation = self.get_exercise_evaluation(
         user_id, exercise_id)
     score = self.__calculate_exercise_evaluation_score(
         exercise_evaluation.get_attempt(), time_left)
     try:
         self.__exercise_evaluation_command_repository.update_exercise_evaluation_as_solved(
             exercise_evaluation, score)
         self.__user_service.increment_user_score(user_id, score)
     except CommandError as ce:
         raise ServiceError(str(ce))
Esempio n. 14
0
 def validate_answer(self, user_id, exercise_id, time_left, answer):
     if user_id is None:
         raise ValueError('user_id cannot be None')
     if exercise_id is None:
         raise ValueError('exercise_id cannot be None')
     if time_left is None:
         raise ValueError('time_left cannot be None')
     if answer is None:
         raise ValueError('answer cannot be None')
     try:
         exercise = self.__exercise_query_repository.get_exercise_by_id(
             exercise_id=exercise_id)
         is_valid_answer = self.__compare_solution_and_answer(
             answer=answer, solution=exercise.get_solution())
         if is_valid_answer:
             self.__exercise_evaluation_service.update_exercise_evaluation_as_solved(
                 user_id, exercise_id, time_left)
         return ExerciseValidation(is_valid_answer)
     except ResourceNotFoundQueryError as rnfqe:
         raise ResourceNotFoundServiceError(str(rnfqe))
     except QueryError as qe:
         raise ServiceError(str(qe))
Esempio n. 15
0
 def get_ranking(self):
     try:
         return self.__user_query_repository.get_ranking()
     except QueryError as qe:
         raise ServiceError(str(qe))
Esempio n. 16
0
 def test_authenticate_calledWithAuthTokenServiceWhichRaisesServiceError_raiseServiceError(
         self):
     self.stub_auth_token_service.generate_auth_token.side_effect = ServiceError(
     )
     self.assertRaises(ServiceError, self.sut.authenticate,
                       "666f6f2d6261722d71757578")
Esempio n. 17
0
 def execute_query(self, query):
     try:
         result = self.__mongo_wrapper.execute_query(query)
         return QueryExecution(result)
     except MongoWrapperException as mwe:
         raise ServiceError(str(mwe))