def add_news(): db_repo = get_database_repo() news_schema = NewsSchemaInput(**request.get_json()) news_dto = NewsDTO.from_news_schema(news_schema=news_schema) saved_news = db_repo.save_news(news_dto=news_dto) output_schema = NewsSchemaOutput.from_entity(news=saved_news).as_dict() return output_schema, HTTPStatus.CREATED
def get_news_by_filter(): db_repo = get_database_repo() ids = request.args.getlist("id", type=int) created_at = request.args.getlist("created_at", type=int) news_from_db = db_repo.get_news_by_filter(id=ids, created_at=created_at) return jsonify([ NewsSchemaOutput.from_entity(news=news).as_dict() for news in news_from_db ])
def update_news(news_id: int): db_repo = get_database_repo() news_from_db = db_repo.get_news(news_id=news_id) news_as_schema = NewsSchema.from_entity(news=news_from_db) updated_schema = news_as_schema.update(request.get_json()) input_schema = NewsSchemaInput(**updated_schema) dto = NewsDTO.from_news_schema(news_schema=input_schema) db_repo.update_news(news_id=news_id, news_dto=dto) return b"", HTTPStatus.NO_CONTENT
def overwrite_news(news_id: int): db_repo = get_database_repo() news_schema = NewsSchemaInput(**request.get_json()) news_dto = NewsDTO.from_news_schema(news_schema=news_schema) db_repo.update_news(news_id=news_id, news_dto=news_dto) return b"", HTTPStatus.NO_CONTENT
def get_news(news_id: int): db_repo = get_database_repo() news_from_db = db_repo.get_news(news_id=news_id) output_schema = NewsSchemaOutput.from_entity(news=news_from_db).as_dict() return output_schema
def delete_news(news_id: int): db_repo = get_database_repo() db_repo.delete_news(news_id=news_id) return b"", HTTPStatus.NO_CONTENT