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)
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
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 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)
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
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
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
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
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 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 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
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
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 test_delete_existed(self): rep = UserRepository() id1 = rep.create('name', 'password') rep.delete(id1) self.assertFalse(rep.exists(id1))
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)
def test_assign_ticket_false(self): rep = UserRepository() boolean = rep.assign_prod('5bd0a397', 'abc') self.assertFalse(boolean)
def __init__(self, user_id=None): self._user_id = user_id self._user_repository = UserRepository()
def test_exists_false(self): rep = UserRepository() boolean = rep.exists('5bd8ad1daf') self.assertFalse(boolean)
def test_get_error(self): rep = UserRepository() user = rep.get('5bd0a397') self.assertIsNone(user)
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)
def test_remove_ticket_false(self): rep = UserRepository() boolean = rep.remove_ticket('5bd0a397', 'abc') self.assertFalse(boolean)
def test_read_paginated(self): rep = UserRepository() users = rep.read_paginated(1, 5) self.assertLessEqual(len(users), 5)