from flask_restx.fields import DateTime, Integer, List, String from models.common import _make_response_data_model _shopping_list = { "shoppingList": List(String), } _user = { **_shopping_list, "userId": String(required=True), "nextCategoryId": Integer(), "nextRecipeId": Integer(), "signUpTime": DateTime(), } shopping_list_data, _shopping_list_response_model = _make_response_data_model( "ShoppingList", _shopping_list)
# "link": "/api/v1/widgets/first_widget", "link": Url("api.widget"), }, ) pagination_links_model = Model( "Nav Links", { "self": String, "prev": String, "next": String, "first": String, "last": String }, ) pagination_model = Model( "Pagination", { # skip_none=True Value with None will not be displayed "links": Nested(pagination_links_model, skip_none=True), "has_prev": Boolean, "has_next": Boolean, "page": Integer, "total_pages": Integer(attribute="pages"), "items_per_page": Integer(attribute="per_page"), "total_items": Integer(attribute="total"), "items": List(Nested(widget_model)), }, )
from flask_restx import Model from flask_restx.fields import DateTime, Integer, List, Nested, String from models.common import _make_response_data_model _recipe_id = Integer(required=True) _name = String(min_length=1, max_length=200, required=True) _desc = String(max_length=200) _cook_time = String() _ingredients = List(String) _instructions = List(String) _create_time = DateTime(required=True) _update_time = DateTime(required=True) _adapted_from = String() _url = String() _imgSrc = String() # Editable recipe fields _recipe = { "name": _name, "desc": _desc, "cookTime": _cook_time, "ingredients": _ingredients, "instructions": _instructions, "categories": List(String), "adaptedFrom": _adapted_from, "url": _url, "imgSrc": _imgSrc, } recipe_model = Model("Recipe", _recipe)
# flake8: noqa from flask_restx.fields import Integer, List, Nested, String from models import db_category_data from models.common import _make_response_data_model from models.requests.recipes import ( _db_recipe, _db_recipe_response_model as db_recipe_response_model, db_recipe_data, recipe_model, ) recipe_update_response_data, recipe_update_response_model = _make_response_data_model( "UpdateRecipe", { "existingCategories": List(Integer), "newCategories": List(Nested(db_category_data, skip_none=True)), "categoryFailedAdds": List(String), "imgSrc": String(), }, skip_none=True, ) recipe_add_response_data, recipe_add_response_model = _make_response_data_model( "AddRecipe", { **_db_recipe, "existingCategories": List(Integer), "newCategories": List(Nested(db_category_data, skip_none=True)), "categoryFailedAdds": List(String), },
category_model = Model("Category", _category) _category_with_id = { **_category, "categoryId": _category_id, } category_with_id_model = Model("CategoryWithId", _category_with_id) # All fields present in DynamoDB _db_category = { **_category_with_id, "createTime": _create_time, "updateTime": _update_time, } db_category_data, _db_category_response_model = _make_response_data_model( "DbCategory", _db_category, skip_none=True) _category_update = {"update": Nested(category_model)} category_update_model = Model("CategoryUpdate", _category_update) _batch_category_delete = {"categoryIds": List(_category_id)} batch_category_delete_model = Model("BatchCategoryDelete", _batch_category_delete) _batch_category_update = { "categoryIdToUpdate1": Nested(category_update_model), "categoryIdToUpdate2": Nested(category_update_model), } batch_category_update_model = Model("BatchCategoryUpdate", _batch_category_update)
from flask_restx.fields import List, String from models.common import _make_response_data_model scrape_response_data, scrape_response_model = _make_response_data_model( "Scrape", { "url": String(required=True), "name": String(), "imgSrc": String(), "adaptedFrom": String(), "yield": String(), "cookTime": String(), "instructions": List(String), "ingredients": List(String), }, skip_none=True, )
from flask_restx import Model from flask_restx.fields import String, List, Nested person = Model( 'Person Model', { 'id': String(), 'name': String(), 'gender': String(), 'eye_color': String(), 'hair_color': String(), 'age': String(), }) film_model = Model( 'Film Model', { 'id': String(), 'title': String(), 'description': String(), 'director': String(), 'producer': String(), 'release_date': String(), 'rt_score': String(), 'people': List(Nested(person)), })
DATA_SOURCE_NAME_FIELD_NAME: String(required=True), }, ) CompleteInputSourceModel = Model.clone( "DatabaseTableCompleteInputSourceModel", InputSourceModel, { DOC_NAME: String(), }, ) InputSourceEditionModel = Model( "DatabaseTableInputSourceEditionModel", {INPUT_SOURCE_FIELDS: List(Nested(InputSourceModel))}, ) CompleteInputSourcesListModel = Model( "DatabaseTableCompleteInputSourcesListModel", {INPUT_SOURCE_FIELDS: List(Nested(CompleteInputSourceModel))}, ) MODELS = [ BaseInputSourceModel, InputSourceModel, CompleteInputSourceModel, InputSourceEditionModel, CompleteInputSourcesListModel, ]
# flake8: noqa from flask_restx.fields import Integer, List, Nested from models.common import _make_response_data_model from models.requests.categories import ( _db_category_response_model as db_category_response_model, db_category_data, ) category_delete_response_data, category_delete_response_model = _make_response_data_model( "DeleteCategory", { "updatedRecipes": List(Integer), "failedUpdatedReipes": List(Integer) }, skip_none=True, ) batch_category_get_response_data, batch_category_get_response_model = _make_response_data_model( "BatchGetCategory", {"categories": List(Nested(db_category_data, skip_none=True))}) ( batch_category_update_response_data, batch_category_update_response_model, ) = _make_response_data_model("BatchUpdateCategory", {"failedUpdates": List(Integer)}, skip_none=True) ( batch_category_delete_response_data,