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
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)
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
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
def test_get_error(self): rep = UserRepository() user = rep.get('5bd0a397') self.assertIsNone(user)