Пример #1
0
 def test_create(self):
     rep = UserRepository()
     id1 = rep.create('name', 'password')
     id2 = rep.create('name', 'password')
     self.assertNotEqual(id1, id2)
     rep.delete(id1)
     rep.delete(id2)
Пример #2
0
 def delete(self, user_id):
     repo = UserRepository()
     app.logger.info('Получен запрос на удаление пользователя с идентификатором %s' % user_id)
     abort_if_user_doesnt_exist(user_id, repo)
     repo.delete(user_id)
     response = app.make_response("User %s deleted successfully" % user_id)
     response.status_code = 204
     app.logger.info('Пользователь с идентификатором %s успешно удален' % user_id)
     return response
Пример #3
0
 def get(self, user_id):
     repo = UserRepository()
     app.logger.info('Получен запрос на получение информации о пользователе с идентификатором %s' % user_id)
     abort_if_user_doesnt_exist(user_id, repo)
     user = repo.get(user_id)
     response = app.make_response("")
     response.status_code = 200
     response.data = user.to_json()
     response.content_type = "application/json"
     app.logger.info('Запрос на получение информации о пользователе с идентификатором %s успешно обработан'
                     % user_id)
     return response
Пример #4
0
 def test_remove_ticket_true(self):
     rep = UserRepository()
     user_id = rep.create('name', 'password')
     rep.assign_ticket(user_id, 'abc')
     boolean = rep.remove_ticket(user_id, 'abc')
     self.assertTrue(boolean)
     rep.delete(user_id)
Пример #5
0
 def post(self):
     repo = UserRepository()
     payload = jsonpickle.decode(flask.request.data)
     client_id = payload['client_id']
     code = repo.get_code(client_id)
     if code is not None:
         response = app.make_response("Authorization code was generated")
         response.status_code = 201
         response.data = json.dumps({"code": code})
         response.content_type = "application/json"
         return response
     response = app.make_response("Ошибка генеации кода")
     response.status_code = 404
     return response
Пример #6
0
 def post(self):
     repo = UserRepository()
     app.logger.info('Получен запрос на создание пользователя')
     try:
         payload = jsonpickle.decode(flask.request.data)
     except:
         payload = {'name': 'test', 'password': '******'}
     user_id = repo.create(payload["name"], payload["password"])
     user = repo.get(user_id)
     response = app.make_response("")
     response.status_code = 201
     response.data = user.to_json()
     response.content_type = "application/json"
     app.logger.info('Запрос на создание нового пользователя успешно обработан, идентификатор: %s' % user_id)
     return response
Пример #7
0
 def get(self):
     repo = UserRepository()
     app.logger.info('Получен запрос на получение пользователя по токену')
     payload = jsonpickle.decode(flask.request.data)
     token = payload['token']
     user = repo.get_real_user_by_token(token)
     if user is not None:
         response = app.make_response("Пользователь получен по токену")
         response.status_code = 200
         response.data = user.to_json()
         response.content_type = "application/json"
         return response
     response = app.make_response("Ошибка получения пользователя по токену")
     response.status_code = 403
     return response
Пример #8
0
 def post(self):
     repo = UserRepository()
     app.logger.info('Получен запрос на получение пользователя по токену')
     payload = jsonpickle.decode(flask.request.data)
     client_id = payload['client_id']
     client_secret = payload['client_secret']
     code = payload['code']
     t = repo.get_token_for_auth(client_id, client_secret, code)
     if t is not None:
         response = app.make_response("Сгенерирован токен")
         response.status_code = 200
         response.set_cookie("token", value=t)
         return response
     response = app.make_response("Неверные данные")
     response.status_code = 403
     return response
Пример #9
0
class UserService(object):
    def __init__(self, user_id=None):
        self._user_id = user_id
        self._user_repository = UserRepository()

    def register_user(self, user_data):
        '''
            Register an user in the webpage
            user_data: <Dict: {}>
            return: <User: Model>
        '''
        return self._user_repository.create(user_data)

    def find_by_id(self, user_id):
        '''
            Find an user by his id
        '''
        return self._user_repository.get(user_id)

    def get_posts_user(self, user_id):
        '''
            Return all the posts of an user
            user_id: <int>
            Return: [<Post: Model>,<Post: Model>,<Post: Model>]

        '''
        return self._user_repository.get_posts_user(user_id)

    def find_all_related_users_by_username(self, username):
        '''
            Find all the users queried by username
            username: Str
            Return: List[ <User: Model> , <User: Model> ]  
        '''
        # Esto incluso podria ser un servicio o una clase Helper Search()
        # que tenga metodos por diferentes criterios de busqueda
        pass

    # Seguir a un usuario deberia ir aca por ejemeplo
    def add_follow(from_user, to_user):
        '''
            Add a follow from a user to another
            from_user: <User: Model>
            to_user: <User: Model>
        '''
        pass
Пример #10
0
 def patch(self, user_id):
     repo = UserRepository()
     app.logger.info('Получен запрос на покупку/возврат билета для пользователя с идентификатором %s' % user_id)
     abort_if_user_doesnt_exist(user_id, repo)
     try:
         payload = jsonpickle.decode(flask.request.data)
     except:
         payload = {'status': 'buy', 'ticket_id': '894bjhel892'}
     if payload["status"] == "buy":
         app.logger.info('Покупка билета с идентификатором %s' % payload["ticket_id"])
         repo.assign_ticket(user_id, payload["ticket_id"])
     else:
         app.logger.info('Возврат билета с идентификатором %s' % payload["ticket_id"])
         repo.remove_ticket(user_id, payload["ticket_id"])
     user = repo.get(user_id)
     response = app.make_response("")
     response.status_code = 201
     response.data = user.to_json()
     response.content_type = "application/json"
     if payload["status"] == "buy":
         app.logger.info('Покупка билета %s для пользователя %s успешно произведена'
                         % (payload["ticket_id"], user_id))
     else:
         app.logger.info('Возврат билета %s для пользователя %s успешно произведен'
                         % (payload["ticket_id"], user_id))
     return response
Пример #11
0
 def get(self):
     parser = reqparse.RequestParser()
     parser.add_argument("name", type=str)
     parser.add_argument("password", type=str)
     repo = UserRepository()
     app.logger.info('Получен запрос на аутентификацию')
     args = parser.parse_args(strict=True)
     #payload = jsonpickle.decode(flask.request.data)
     token = repo.get_token(args['name'], args['password'])
     if token is not None:
         user = repo.get_by_token(token)
         if user is not None:
             response = app.make_response("Token was generated")
             response.status_code = 200
             response.set_cookie("token", value=token)
             return response
     response = app.make_response("Неверный логин или пароль")
     response.status_code = 403
     return response
Пример #12
0
 def get(self):
     repo = UserRepository()
     app.logger.info('Получен запрос на получение списка пользователей')
     try:
         args = self.parser.parse_args(strict=True)
     except:
         args = {'page': 1, 'page_size': 5}
     app.logger.info('Номер страницы: %d; количество пользователей на странице: %d' % (args['page'], args['page_size']))
     users_list, is_prev_page, is_next_page = repo.read_paginated(page_number=args['page'], page_size=args['page_size'])
     users = ''
     for user in users_list:
         users += user.to_json() + '\n'
     dictr = {"is_prev_page": is_prev_page, "is_next_page": is_next_page}
     users += "\n" + json.dumps(dictr)
     response = app.make_response("")
     response.status_code = 200
     response.content_type = "application/json"
     response.data = users
     app.logger.info('Запрос на получение списка пользователей успешно обработан')
     return response
Пример #13
0
 def test_get_right(self):
     rep = UserRepository()
     user_id = rep.create('name', 'password')
     user1 = rep.get(user_id)
     user2 = User(user_id=fields.ObjectId(user_id),
                  ticket_ids=[],
                  name='name',
                  password='******')
     self.assertEqual(user1, user2)
     rep.delete(user_id)
Пример #14
0
 def test_delete_existed(self):
     rep = UserRepository()
     id1 = rep.create('name', 'password')
     rep.delete(id1)
     self.assertFalse(rep.exists(id1))
Пример #15
0
 def test_assign_ticket_true(self):
     rep = UserRepository()
     user_id = rep.create('l_name', 'p_name')
     boolean = rep.assign_prod(user_id, 'abc')
     self.assertTrue(boolean)
     rep.delete(user_id)
Пример #16
0
 def test_assign_ticket_false(self):
     rep = UserRepository()
     boolean = rep.assign_prod('5bd0a397', 'abc')
     self.assertFalse(boolean)
Пример #17
0
 def __init__(self, user_id=None):
     self._user_id = user_id
     self._user_repository = UserRepository()
Пример #18
0
 def test_exists_false(self):
     rep = UserRepository()
     boolean = rep.exists('5bd8ad1daf')
     self.assertFalse(boolean)
Пример #19
0
 def test_get_error(self):
     rep = UserRepository()
     user = rep.get('5bd0a397')
     self.assertIsNone(user)
Пример #20
0
 def test_exists_true(self):
     rep = UserRepository()
     user_id = rep.create('name', 'password')
     boolean = rep.exists(user_id)
     self.assertTrue(boolean)
     rep.delete(user_id)
Пример #21
0
 def test_remove_ticket_false(self):
     rep = UserRepository()
     boolean = rep.remove_ticket('5bd0a397', 'abc')
     self.assertFalse(boolean)
Пример #22
0
 def test_read_paginated(self):
     rep = UserRepository()
     users = rep.read_paginated(1, 5)
     self.assertLessEqual(len(users), 5)