def on_post(self, req: falcon.Request, resp: falcon.Response) -> None: """ --- summary: Add new movie to database tags: - Movie parameters: - in: body schema: MovieSchema consumes: - application/json produces: - application/json responses: 201: description: Movie created successfully schema: MovieSchema 401: description: Unauthorized 422: description: Input body formatting issue """ db = req.context["db"] db.session.add(req._deserialized) db.session.commit() resp.status = falcon.HTTP_CREATED resp._data = req._deserialized
def on_get(self, req: falcon.Request, resp: falcon.Response, args: dict) -> None: """ --- summary: Get all movies in the database tags: - Movie parameters: - in: query schema: MovieQuerySchema produces: - application/json responses: 200: description: List of movies schema: type: array items: MovieSchema 401: description: Unauthorized """ db = req.context["db"] page = args.get("page") per_page = args.get("per_page") resp.status = falcon.HTTP_OK all_items_query = db.query(Movie) paginated_query = Paginator(all_items_query, page=page, per_page=per_page) resp._data = paginated_query
def on_post(self, req: falcon.Request, resp: falcon.Response) -> None: """ --- summary: Create new user tags: - User parameters: - in: body schema: UserSchema consumes: - application/json produces: - application/json responses: 201: description: User created successfully schema: UserSchema 401: description: Unauthorized 422: description: Input body formatting issue """ db = req.context["db"] user = req._deserialized user = process_new_user(db, user) resp.status = falcon.HTTP_CREATED resp._data = user
def on_get(self, req: falcon.Request, resp: falcon.Response, id: int) -> None: """ --- summary: Get movie from database tags: - Movie parameters: - in: path schema: MoviePathSchema produces: - application/json responses: 200: description: Return requested movie details schema: MovieSchema 401: description: Unauthorized 404: description: Movie does not exist """ resp.status = falcon.HTTP_OK resp._data = req._item
def on_patch(self, req: falcon.Request, resp: falcon.Response, id: int) -> None: """ --- summary: Update movie details in database tags: - Movie parameters: - in: path schema: MoviePathSchema - in: body schema: MoviePatchSchema consumes: - application/json produces: - application/json responses: 200: description: Return requested movie details schema: MovieSchema 401: description: Unauthorized 404: description: Movie does not exist 422: description: Input body formatting issue """ movie = req._item movie.patch(req._deserialized) db = req.context["db"] db.session.add(movie) db.session.commit() resp.status = falcon.HTTP_OK resp._data = movie