示例#1
0
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
示例#2
0
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
    ])
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
def delete_news(news_id: int):
    db_repo = get_database_repo()
    db_repo.delete_news(news_id=news_id)
    return b"", HTTPStatus.NO_CONTENT