示例#1
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
示例#2
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)
示例#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 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
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
示例#6
0
 def test_get_error(self):
     rep = UserRepository()
     user = rep.get('5bd0a397')
     self.assertIsNone(user)