def new_room(db_session, data): validate_data(data=data, serializer=room_serializer) room = Room() room.name = data["name"] db_session.add(room) db_session.commit() result = room_serializer.dump(db_session.query(Room).get(room.id)) return HTTPResponse(status=status.HTTP_200_OK, body=result)
def change_password(db_session, data): validate_data(change_password_serializer, data) req_user_json = bottle.request.get_user() current_user = db_session.query(User).get(req_user_json['id']) if current_user.check_password(data['old_password']): current_user.set_password(data['password']) return HTTPResponse(*PASSWORD_CHANGED) raise HTTPError(*OLD_PASSWORD_NOT_VALID)
def set_user_role(pk, db_session: Session, data): validate_data(set_role_serializer, data) # validate_permission("edit_roles", db_session, User) user = get_object_or_404(User, db_session, User.id == pk) user.set_roles(data['roles']) db_session.commit() result = user_serializer.dump(db_session.query(User).get(user.id)) return HTTPResponse(status=status.HTTP_201_CREATED, body=result)
def authenticate_user(self, username, password): # self.defender.is_ip_in_blacklist() validate_data(login_serializer, data={"phone": username, "password": password}) user_obj = self.get_user_by_phone(phone=username) if user_obj is not None: if username == user_obj.phone and user_obj.check_password(password): user = user_serializer.dump(user_obj) return user # self.defender.check_ip_exceed() raise HTTPError(*AUTHENTICATION_ERROR)
def add_room_image(db_session, data): validate_data(data=data, serializer=room_image_serializer) room_image = RoomImage() room_image.name = upload(data=data) room_image.room_id = data["room_id"] db_session.add(room_image) db_session.commit() room_image = db_session.query(RoomImage).get(room_image.id) result = room_image_serializer.dump(room_image) return HTTPResponse(status=status.HTTP_200_OK, body=result)
def edit_user(pk, db_session: Session, data): validate_data(user_edit_serializer, data) user = get_object_or_404(User, db_session, User.id == pk) person = data['person'] user.person.name = person['name'] user.person.last_name = person['last_name'] user.person.email = person['email'] user.phone = data['phone'] user.username = data['phone'] db_session.commit() result = user_serializer.dump(db_session.query(User).get(user.id)) return HTTPResponse(status=status.HTTP_201_CREATED, body=result)
def add_person_image(db_session: Session, data): validate_data(person_image_serializer, data) person_image = PersonImage() person = get_object_or_404(Person, db_session, Person.id == data['person_id']) set_objects_limit(person.person_images, limit=1, session=db_session) person_image.name = upload(data=data) person_image.person_id = data['person_id'] db_session.add(person_image) db_session.commit() result = db_session.query(PersonImage).get(person_image.id) result = person_image_serializer.dump(result) return HTTPResponse(status=200, body=result)
def create_user(db_session: Session, data): validate_data(user_serializer, data) is_object_exist_409(User, db_session, User.phone == data['phone']) person = data['person'] person_obj = get_or_create(Person, db_session, name=person['name']) person_obj.name = person['name'] person_obj.last_name = person['last_name'] person_obj.email = person['email'] db_session.add(person_obj) user = get_or_create(User, db_session, phone=data['phone']) user.phone = data['phone'] user.set_roles(data['roles']) user.username = user.get_phone user.set_password(data['password']) user.person = person_obj db_session.add(user) db_session.commit() result = user_serializer.dump(db_session.query(User).get(user.id)) return HTTPResponse(status=201, body=result)
def new_quote(data, db_session): validate_data(data=data, serializer=quote_serializer) author = data['author'] first = author['first'] last = author['last'] content = data['content'] author = get_or_create(Author, db_session, Author.first == first, Author.last == last) if author is None: author = Author(first, last) db_session.add(author) quote = Quote(content, author) db_session.add(quote) db_session.commit() result = quote_serializer.dump(db_session.query(Quote).get(quote.id)) return HTTPResponse(status=200, body=result)
def new_rooms(data, db_session: Session): validate_data(data=data, serializer=room_serializer) room = Room() room.name = data["name"] room.room_images = data["rooms"]