diff --git a/vue3/.openapi-generator-ignore b/vue3/.openapi-generator-ignore new file mode 100644 index 000000000..7484ee590 --- /dev/null +++ b/vue3/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/vue3/.openapi-generator/FILES b/vue3/.openapi-generator/FILES new file mode 100644 index 000000000..527684647 --- /dev/null +++ b/vue3/.openapi-generator/FILES @@ -0,0 +1,115 @@ +apis/ApiApi.ts +apis/ApiImportOpenDataApi.ts +apis/ApiTokenAuthApi.ts +apis/index.ts +index.ts +models/AccessToken.ts +models/AuthToken.ts +models/Automation.ts +models/BookmarkletImport.ts +models/BookmarkletImportList.ts +models/ConnectorConfigConfig.ts +models/CookLog.ts +models/CustomFilter.ts +models/DefaultPageEnum.ts +models/DeleteEnum.ts +models/ExportLog.ts +models/Food.ts +models/FoodInheritField.ts +models/FoodShoppingUpdate.ts +models/FoodSimple.ts +models/Group.ts +models/ImportLog.ts +models/Ingredient.ts +models/InviteLink.ts +models/Keyword.ts +models/KeywordLabel.ts +models/MealPlan.ts +models/MealType.ts +models/MethodEnum.ts +models/NutritionInformation.ts +models/PaginatedAutomationList.ts +models/PaginatedCookLogList.ts +models/PaginatedCustomFilterList.ts +models/PaginatedExportLogList.ts +models/PaginatedFoodList.ts +models/PaginatedImportLogList.ts +models/PaginatedIngredientList.ts +models/PaginatedKeywordList.ts +models/PaginatedRecipeOverviewList.ts +models/PaginatedStepList.ts +models/PaginatedSupermarketCategoryRelationList.ts +models/PaginatedSyncLogList.ts +models/PaginatedUnitList.ts +models/PaginatedUserSpaceList.ts +models/PaginatedViewLogList.ts +models/PatchedAccessToken.ts +models/PatchedAutomation.ts +models/PatchedBookmarkletImport.ts +models/PatchedConnectorConfigConfig.ts +models/PatchedCookLog.ts +models/PatchedCustomFilter.ts +models/PatchedExportLog.ts +models/PatchedFood.ts +models/PatchedImportLog.ts +models/PatchedIngredient.ts +models/PatchedInviteLink.ts +models/PatchedKeyword.ts +models/PatchedMealPlan.ts +models/PatchedMealType.ts +models/PatchedProperty.ts +models/PatchedPropertyType.ts +models/PatchedRecipe.ts +models/PatchedRecipeBook.ts +models/PatchedRecipeBookEntry.ts +models/PatchedShoppingListEntry.ts +models/PatchedShoppingListRecipe.ts +models/PatchedSpace.ts +models/PatchedStep.ts +models/PatchedStorage.ts +models/PatchedSupermarket.ts +models/PatchedSupermarketCategory.ts +models/PatchedSupermarketCategoryRelation.ts +models/PatchedSync.ts +models/PatchedUnit.ts +models/PatchedUnitConversion.ts +models/PatchedUser.ts +models/PatchedUserPreference.ts +models/PatchedUserSpace.ts +models/PatchedViewLog.ts +models/Property.ts +models/PropertyType.ts +models/Recipe.ts +models/RecipeBook.ts +models/RecipeBookEntry.ts +models/RecipeFlat.ts +models/RecipeImage.ts +models/RecipeOverview.ts +models/RecipeShoppingUpdate.ts +models/RecipeSimple.ts +models/ShoppingListEntry.ts +models/ShoppingListEntryBulk.ts +models/ShoppingListRecipe.ts +models/Space.ts +models/SpaceNavTextColorEnum.ts +models/SpaceThemeEnum.ts +models/Step.ts +models/Storage.ts +models/Supermarket.ts +models/SupermarketCategory.ts +models/SupermarketCategoryRelation.ts +models/Sync.ts +models/SyncLog.ts +models/ThemeEnum.ts +models/TypeEnum.ts +models/Unit.ts +models/UnitConversion.ts +models/User.ts +models/UserFile.ts +models/UserFileView.ts +models/UserPreference.ts +models/UserPreferenceNavTextColorEnum.ts +models/UserSpace.ts +models/ViewLog.ts +models/index.ts +runtime.ts diff --git a/vue3/.openapi-generator/VERSION b/vue3/.openapi-generator/VERSION new file mode 100644 index 000000000..18bb4182d --- /dev/null +++ b/vue3/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.5.0 diff --git a/vue3/apis/ApiApi.ts b/vue3/apis/ApiApi.ts new file mode 100644 index 000000000..390828e42 --- /dev/null +++ b/vue3/apis/ApiApi.ts @@ -0,0 +1,10305 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + AccessToken, + Automation, + BookmarkletImport, + BookmarkletImportList, + ConnectorConfigConfig, + CookLog, + CustomFilter, + ExportLog, + Food, + FoodInheritField, + FoodShoppingUpdate, + Group, + ImportLog, + Ingredient, + InviteLink, + Keyword, + MealPlan, + MealType, + PaginatedAutomationList, + PaginatedCookLogList, + PaginatedCustomFilterList, + PaginatedExportLogList, + PaginatedFoodList, + PaginatedImportLogList, + PaginatedIngredientList, + PaginatedKeywordList, + PaginatedRecipeOverviewList, + PaginatedStepList, + PaginatedSupermarketCategoryRelationList, + PaginatedSyncLogList, + PaginatedUnitList, + PaginatedUserSpaceList, + PaginatedViewLogList, + PatchedAccessToken, + PatchedAutomation, + PatchedBookmarkletImport, + PatchedConnectorConfigConfig, + PatchedCookLog, + PatchedCustomFilter, + PatchedExportLog, + PatchedFood, + PatchedImportLog, + PatchedIngredient, + PatchedInviteLink, + PatchedKeyword, + PatchedMealPlan, + PatchedMealType, + PatchedProperty, + PatchedPropertyType, + PatchedRecipe, + PatchedRecipeBook, + PatchedRecipeBookEntry, + PatchedShoppingListEntry, + PatchedShoppingListRecipe, + PatchedSpace, + PatchedStep, + PatchedStorage, + PatchedSupermarket, + PatchedSupermarketCategory, + PatchedSupermarketCategoryRelation, + PatchedSync, + PatchedUnit, + PatchedUnitConversion, + PatchedUser, + PatchedUserPreference, + PatchedUserSpace, + PatchedViewLog, + Property, + PropertyType, + Recipe, + RecipeBook, + RecipeBookEntry, + RecipeFlat, + RecipeImage, + RecipeShoppingUpdate, + RecipeSimple, + ShoppingListEntry, + ShoppingListEntryBulk, + ShoppingListRecipe, + Space, + Step, + Storage, + Supermarket, + SupermarketCategory, + SupermarketCategoryRelation, + Sync, + SyncLog, + Unit, + UnitConversion, + User, + UserFile, + UserPreference, + UserSpace, + ViewLog, +} from '../models/index'; +import { + AccessTokenFromJSON, + AccessTokenToJSON, + AutomationFromJSON, + AutomationToJSON, + BookmarkletImportFromJSON, + BookmarkletImportToJSON, + BookmarkletImportListFromJSON, + BookmarkletImportListToJSON, + ConnectorConfigConfigFromJSON, + ConnectorConfigConfigToJSON, + CookLogFromJSON, + CookLogToJSON, + CustomFilterFromJSON, + CustomFilterToJSON, + ExportLogFromJSON, + ExportLogToJSON, + FoodFromJSON, + FoodToJSON, + FoodInheritFieldFromJSON, + FoodInheritFieldToJSON, + FoodShoppingUpdateFromJSON, + FoodShoppingUpdateToJSON, + GroupFromJSON, + GroupToJSON, + ImportLogFromJSON, + ImportLogToJSON, + IngredientFromJSON, + IngredientToJSON, + InviteLinkFromJSON, + InviteLinkToJSON, + KeywordFromJSON, + KeywordToJSON, + MealPlanFromJSON, + MealPlanToJSON, + MealTypeFromJSON, + MealTypeToJSON, + PaginatedAutomationListFromJSON, + PaginatedAutomationListToJSON, + PaginatedCookLogListFromJSON, + PaginatedCookLogListToJSON, + PaginatedCustomFilterListFromJSON, + PaginatedCustomFilterListToJSON, + PaginatedExportLogListFromJSON, + PaginatedExportLogListToJSON, + PaginatedFoodListFromJSON, + PaginatedFoodListToJSON, + PaginatedImportLogListFromJSON, + PaginatedImportLogListToJSON, + PaginatedIngredientListFromJSON, + PaginatedIngredientListToJSON, + PaginatedKeywordListFromJSON, + PaginatedKeywordListToJSON, + PaginatedRecipeOverviewListFromJSON, + PaginatedRecipeOverviewListToJSON, + PaginatedStepListFromJSON, + PaginatedStepListToJSON, + PaginatedSupermarketCategoryRelationListFromJSON, + PaginatedSupermarketCategoryRelationListToJSON, + PaginatedSyncLogListFromJSON, + PaginatedSyncLogListToJSON, + PaginatedUnitListFromJSON, + PaginatedUnitListToJSON, + PaginatedUserSpaceListFromJSON, + PaginatedUserSpaceListToJSON, + PaginatedViewLogListFromJSON, + PaginatedViewLogListToJSON, + PatchedAccessTokenFromJSON, + PatchedAccessTokenToJSON, + PatchedAutomationFromJSON, + PatchedAutomationToJSON, + PatchedBookmarkletImportFromJSON, + PatchedBookmarkletImportToJSON, + PatchedConnectorConfigConfigFromJSON, + PatchedConnectorConfigConfigToJSON, + PatchedCookLogFromJSON, + PatchedCookLogToJSON, + PatchedCustomFilterFromJSON, + PatchedCustomFilterToJSON, + PatchedExportLogFromJSON, + PatchedExportLogToJSON, + PatchedFoodFromJSON, + PatchedFoodToJSON, + PatchedImportLogFromJSON, + PatchedImportLogToJSON, + PatchedIngredientFromJSON, + PatchedIngredientToJSON, + PatchedInviteLinkFromJSON, + PatchedInviteLinkToJSON, + PatchedKeywordFromJSON, + PatchedKeywordToJSON, + PatchedMealPlanFromJSON, + PatchedMealPlanToJSON, + PatchedMealTypeFromJSON, + PatchedMealTypeToJSON, + PatchedPropertyFromJSON, + PatchedPropertyToJSON, + PatchedPropertyTypeFromJSON, + PatchedPropertyTypeToJSON, + PatchedRecipeFromJSON, + PatchedRecipeToJSON, + PatchedRecipeBookFromJSON, + PatchedRecipeBookToJSON, + PatchedRecipeBookEntryFromJSON, + PatchedRecipeBookEntryToJSON, + PatchedShoppingListEntryFromJSON, + PatchedShoppingListEntryToJSON, + PatchedShoppingListRecipeFromJSON, + PatchedShoppingListRecipeToJSON, + PatchedSpaceFromJSON, + PatchedSpaceToJSON, + PatchedStepFromJSON, + PatchedStepToJSON, + PatchedStorageFromJSON, + PatchedStorageToJSON, + PatchedSupermarketFromJSON, + PatchedSupermarketToJSON, + PatchedSupermarketCategoryFromJSON, + PatchedSupermarketCategoryToJSON, + PatchedSupermarketCategoryRelationFromJSON, + PatchedSupermarketCategoryRelationToJSON, + PatchedSyncFromJSON, + PatchedSyncToJSON, + PatchedUnitFromJSON, + PatchedUnitToJSON, + PatchedUnitConversionFromJSON, + PatchedUnitConversionToJSON, + PatchedUserFromJSON, + PatchedUserToJSON, + PatchedUserPreferenceFromJSON, + PatchedUserPreferenceToJSON, + PatchedUserSpaceFromJSON, + PatchedUserSpaceToJSON, + PatchedViewLogFromJSON, + PatchedViewLogToJSON, + PropertyFromJSON, + PropertyToJSON, + PropertyTypeFromJSON, + PropertyTypeToJSON, + RecipeFromJSON, + RecipeToJSON, + RecipeBookFromJSON, + RecipeBookToJSON, + RecipeBookEntryFromJSON, + RecipeBookEntryToJSON, + RecipeFlatFromJSON, + RecipeFlatToJSON, + RecipeImageFromJSON, + RecipeImageToJSON, + RecipeShoppingUpdateFromJSON, + RecipeShoppingUpdateToJSON, + RecipeSimpleFromJSON, + RecipeSimpleToJSON, + ShoppingListEntryFromJSON, + ShoppingListEntryToJSON, + ShoppingListEntryBulkFromJSON, + ShoppingListEntryBulkToJSON, + ShoppingListRecipeFromJSON, + ShoppingListRecipeToJSON, + SpaceFromJSON, + SpaceToJSON, + StepFromJSON, + StepToJSON, + StorageFromJSON, + StorageToJSON, + SupermarketFromJSON, + SupermarketToJSON, + SupermarketCategoryFromJSON, + SupermarketCategoryToJSON, + SupermarketCategoryRelationFromJSON, + SupermarketCategoryRelationToJSON, + SyncFromJSON, + SyncToJSON, + SyncLogFromJSON, + SyncLogToJSON, + UnitFromJSON, + UnitToJSON, + UnitConversionFromJSON, + UnitConversionToJSON, + UserFromJSON, + UserToJSON, + UserFileFromJSON, + UserFileToJSON, + UserPreferenceFromJSON, + UserPreferenceToJSON, + UserSpaceFromJSON, + UserSpaceToJSON, + ViewLogFromJSON, + ViewLogToJSON, +} from '../models/index'; + +export interface ApiAccessTokenCreateRequest { + accessToken: Omit; +} + +export interface ApiAccessTokenDestroyRequest { + id: number; +} + +export interface ApiAccessTokenPartialUpdateRequest { + id: number; + patchedAccessToken?: Omit; +} + +export interface ApiAccessTokenRetrieveRequest { + id: number; +} + +export interface ApiAccessTokenUpdateRequest { + id: number; + accessToken: Omit; +} + +export interface ApiAutomationCreateRequest { + automation: Omit; +} + +export interface ApiAutomationDestroyRequest { + id: number; +} + +export interface ApiAutomationListRequest { + page?: number; + pageSize?: number; + type?: ApiAutomationListTypeEnum; +} + +export interface ApiAutomationPartialUpdateRequest { + id: number; + patchedAutomation?: Omit; +} + +export interface ApiAutomationRetrieveRequest { + id: number; +} + +export interface ApiAutomationUpdateRequest { + id: number; + automation: Omit; +} + +export interface ApiBookmarkletImportCreateRequest { + bookmarkletImport: Omit; +} + +export interface ApiBookmarkletImportDestroyRequest { + id: number; +} + +export interface ApiBookmarkletImportPartialUpdateRequest { + id: number; + patchedBookmarkletImport?: Omit; +} + +export interface ApiBookmarkletImportRetrieveRequest { + id: number; +} + +export interface ApiBookmarkletImportUpdateRequest { + id: number; + bookmarkletImport: Omit; +} + +export interface ApiConnectorConfigCreateRequest { + connectorConfigConfig: Omit; +} + +export interface ApiConnectorConfigDestroyRequest { + id: number; +} + +export interface ApiConnectorConfigPartialUpdateRequest { + id: number; + patchedConnectorConfigConfig?: Omit; +} + +export interface ApiConnectorConfigRetrieveRequest { + id: number; +} + +export interface ApiConnectorConfigUpdateRequest { + id: number; + connectorConfigConfig: Omit; +} + +export interface ApiCookLogCreateRequest { + cookLog: Omit; +} + +export interface ApiCookLogDestroyRequest { + id: number; +} + +export interface ApiCookLogListRequest { + page?: number; + pageSize?: number; + recipe?: number; +} + +export interface ApiCookLogPartialUpdateRequest { + id: number; + patchedCookLog?: Omit; +} + +export interface ApiCookLogRetrieveRequest { + id: number; +} + +export interface ApiCookLogUpdateRequest { + id: number; + cookLog: Omit; +} + +export interface ApiCustomFilterCreateRequest { + customFilter: Omit; +} + +export interface ApiCustomFilterDestroyRequest { + id: number; +} + +export interface ApiCustomFilterListRequest { + limit?: string; + page?: number; + pageSize?: number; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiCustomFilterPartialUpdateRequest { + id: number; + patchedCustomFilter?: Omit; +} + +export interface ApiCustomFilterRetrieveRequest { + id: number; +} + +export interface ApiCustomFilterUpdateRequest { + id: number; + customFilter: Omit; +} + +export interface ApiDownloadFileRetrieveRequest { + fileId: number; +} + +export interface ApiExportLogCreateRequest { + exportLog: Omit; +} + +export interface ApiExportLogDestroyRequest { + id: number; +} + +export interface ApiExportLogListRequest { + page?: number; + pageSize?: number; +} + +export interface ApiExportLogPartialUpdateRequest { + id: number; + patchedExportLog?: Omit; +} + +export interface ApiExportLogRetrieveRequest { + id: number; +} + +export interface ApiExportLogUpdateRequest { + id: number; + exportLog: Omit; +} + +export interface ApiFoodCreateRequest { + food: Omit; +} + +export interface ApiFoodDestroyRequest { + id: number; +} + +export interface ApiFoodFdcCreateRequest { + id: number; + food: Omit; +} + +export interface ApiFoodInheritFieldRetrieveRequest { + id: number; +} + +export interface ApiFoodListRequest { + limit?: string; + page?: number; + pageSize?: number; + query?: string; + random?: string; + root?: number; + tree?: number; + updatedAt?: string; +} + +export interface ApiFoodMergeUpdateRequest { + id: number; + target: number; + food: Omit; +} + +export interface ApiFoodMoveUpdateRequest { + id: number; + parent: number; + food: Omit; +} + +export interface ApiFoodPartialUpdateRequest { + id: number; + patchedFood?: Omit; +} + +export interface ApiFoodPropertyCreateRequest { + property: Omit; +} + +export interface ApiFoodPropertyDestroyRequest { + id: number; +} + +export interface ApiFoodPropertyPartialUpdateRequest { + id: number; + patchedProperty?: Omit; +} + +export interface ApiFoodPropertyRetrieveRequest { + id: number; +} + +export interface ApiFoodPropertyTypeCreateRequest { + propertyType: PropertyType; +} + +export interface ApiFoodPropertyTypeDestroyRequest { + id: number; +} + +export interface ApiFoodPropertyTypePartialUpdateRequest { + id: number; + patchedPropertyType?: PatchedPropertyType; +} + +export interface ApiFoodPropertyTypeRetrieveRequest { + id: number; +} + +export interface ApiFoodPropertyTypeUpdateRequest { + id: number; + propertyType: PropertyType; +} + +export interface ApiFoodPropertyUpdateRequest { + id: number; + property: Omit; +} + +export interface ApiFoodRetrieveRequest { + id: number; +} + +export interface ApiFoodShoppingUpdateRequest { + id: number; + foodShoppingUpdate: Omit; +} + +export interface ApiFoodUpdateRequest { + id: number; + food: Omit; +} + +export interface ApiGroupRetrieveRequest { + id: number; +} + +export interface ApiImportLogCreateRequest { + importLog: Omit; +} + +export interface ApiImportLogDestroyRequest { + id: number; +} + +export interface ApiImportLogListRequest { + page?: number; + pageSize?: number; +} + +export interface ApiImportLogPartialUpdateRequest { + id: number; + patchedImportLog?: Omit; +} + +export interface ApiImportLogRetrieveRequest { + id: number; +} + +export interface ApiImportLogUpdateRequest { + id: number; + importLog: Omit; +} + +export interface ApiIngredientCreateRequest { + ingredient: Omit; +} + +export interface ApiIngredientDestroyRequest { + id: number; +} + +export interface ApiIngredientListRequest { + page?: number; + pageSize?: number; +} + +export interface ApiIngredientPartialUpdateRequest { + id: number; + patchedIngredient?: Omit; +} + +export interface ApiIngredientRetrieveRequest { + id: number; +} + +export interface ApiIngredientUpdateRequest { + id: number; + ingredient: Omit; +} + +export interface ApiInviteLinkCreateRequest { + inviteLink: Omit; +} + +export interface ApiInviteLinkDestroyRequest { + id: number; +} + +export interface ApiInviteLinkListRequest { + limit?: string; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiInviteLinkPartialUpdateRequest { + id: number; + patchedInviteLink?: Omit; +} + +export interface ApiInviteLinkRetrieveRequest { + id: number; +} + +export interface ApiInviteLinkUpdateRequest { + id: number; + inviteLink: Omit; +} + +export interface ApiKeywordCreateRequest { + keyword: Omit; +} + +export interface ApiKeywordDestroyRequest { + id: number; +} + +export interface ApiKeywordListRequest { + limit?: string; + page?: number; + pageSize?: number; + query?: string; + random?: string; + root?: number; + tree?: number; + updatedAt?: string; +} + +export interface ApiKeywordMergeUpdateRequest { + id: number; + target: number; + keyword: Omit; +} + +export interface ApiKeywordMoveUpdateRequest { + id: number; + parent: number; + keyword: Omit; +} + +export interface ApiKeywordPartialUpdateRequest { + id: number; + patchedKeyword?: Omit; +} + +export interface ApiKeywordRetrieveRequest { + id: number; +} + +export interface ApiKeywordUpdateRequest { + id: number; + keyword: Omit; +} + +export interface ApiMealPlanCreateRequest { + mealPlan: Omit; +} + +export interface ApiMealPlanDestroyRequest { + id: number; +} + +export interface ApiMealPlanIcalRetrieveRequest { + fromDate?: string; + mealType?: string; + toDate?: string; +} + +export interface ApiMealPlanListRequest { + fromDate?: string; + mealType?: string; + toDate?: string; +} + +export interface ApiMealPlanPartialUpdateRequest { + id: number; + patchedMealPlan?: Omit; +} + +export interface ApiMealPlanRetrieveRequest { + id: number; +} + +export interface ApiMealPlanUpdateRequest { + id: number; + mealPlan: Omit; +} + +export interface ApiMealTypeCreateRequest { + mealType: Omit; +} + +export interface ApiMealTypeDestroyRequest { + id: number; +} + +export interface ApiMealTypePartialUpdateRequest { + id: number; + patchedMealType?: Omit; +} + +export interface ApiMealTypeRetrieveRequest { + id: number; +} + +export interface ApiMealTypeUpdateRequest { + id: number; + mealType: Omit; +} + +export interface ApiPlanIcalRetrieveRequest { + fromDate: string; + toDate: string; +} + +export interface ApiRecipeBookCreateRequest { + recipeBook: Omit; +} + +export interface ApiRecipeBookDestroyRequest { + id: number; +} + +export interface ApiRecipeBookEntryCreateRequest { + recipeBookEntry: Omit; +} + +export interface ApiRecipeBookEntryDestroyRequest { + id: number; +} + +export interface ApiRecipeBookEntryPartialUpdateRequest { + id: number; + patchedRecipeBookEntry?: Omit; +} + +export interface ApiRecipeBookEntryRetrieveRequest { + id: number; +} + +export interface ApiRecipeBookEntryUpdateRequest { + id: number; + recipeBookEntry: Omit; +} + +export interface ApiRecipeBookListRequest { + limit?: string; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiRecipeBookPartialUpdateRequest { + id: number; + patchedRecipeBook?: Omit; +} + +export interface ApiRecipeBookRetrieveRequest { + id: number; +} + +export interface ApiRecipeBookUpdateRequest { + id: number; + recipeBook: Omit; +} + +export interface ApiRecipeCreateRequest { + recipe: Omit; +} + +export interface ApiRecipeDestroyRequest { + id: number; +} + +export interface ApiRecipeImageUpdateRequest { + id: number; + image?: string; + imageUrl?: string; +} + +export interface ApiRecipeListRequest { + books?: string; + booksAnd?: number; + booksAndNot?: number; + booksOr?: number; + booksOrNot?: number; + cookedon?: string; + createdon?: string; + foods?: number; + foodsAnd?: number; + foodsAndNot?: number; + foodsOr?: number; + foodsOrNot?: number; + internal?: string; + keywords?: number; + keywordsAnd?: number; + keywordsAndNot?: number; + keywordsOr?: number; + keywordsOrNot?: number; + makenow?: string; + _new?: string; + page?: number; + pageSize?: number; + query?: string; + random?: string; + rating?: number; + timescooked?: number; + units?: number; + updatedon?: string; + viewedon?: string; +} + +export interface ApiRecipePartialUpdateRequest { + id: number; + patchedRecipe?: Omit; +} + +export interface ApiRecipeRelatedRetrieveRequest { + id: number; +} + +export interface ApiRecipeRetrieveRequest { + id: number; +} + +export interface ApiRecipeShoppingUpdateRequest { + id: number; + recipeShoppingUpdate?: Omit; +} + +export interface ApiRecipeUpdateRequest { + id: number; + recipe: Omit; +} + +export interface ApiShareLinkRetrieveRequest { + id: number; +} + +export interface ApiShoppingListEntryBulkCreateRequest { + shoppingListEntryBulk: ShoppingListEntryBulk; +} + +export interface ApiShoppingListEntryCreateRequest { + shoppingListEntry: Omit; +} + +export interface ApiShoppingListEntryDestroyRequest { + id: number; +} + +export interface ApiShoppingListEntryListRequest { + checked?: string; + id?: number; + supermarket?: number; +} + +export interface ApiShoppingListEntryPartialUpdateRequest { + id: number; + patchedShoppingListEntry?: Omit; +} + +export interface ApiShoppingListEntryRetrieveRequest { + id: number; +} + +export interface ApiShoppingListEntryUpdateRequest { + id: number; + shoppingListEntry: Omit; +} + +export interface ApiShoppingListRecipeCreateRequest { + shoppingListRecipe: Omit; +} + +export interface ApiShoppingListRecipeDestroyRequest { + id: number; +} + +export interface ApiShoppingListRecipePartialUpdateRequest { + id: number; + patchedShoppingListRecipe?: Omit; +} + +export interface ApiShoppingListRecipeRetrieveRequest { + id: number; +} + +export interface ApiShoppingListRecipeUpdateRequest { + id: number; + shoppingListRecipe: Omit; +} + +export interface ApiSpacePartialUpdateRequest { + id: number; + patchedSpace?: Omit; +} + +export interface ApiSpaceRetrieveRequest { + id: number; +} + +export interface ApiStepCreateRequest { + step: Omit; +} + +export interface ApiStepDestroyRequest { + id: number; +} + +export interface ApiStepListRequest { + page?: number; + pageSize?: number; + query?: string; + recipe?: number; +} + +export interface ApiStepPartialUpdateRequest { + id: number; + patchedStep?: Omit; +} + +export interface ApiStepRetrieveRequest { + id: number; +} + +export interface ApiStepUpdateRequest { + id: number; + step: Omit; +} + +export interface ApiStorageCreateRequest { + storage: Omit; +} + +export interface ApiStorageDestroyRequest { + id: number; +} + +export interface ApiStoragePartialUpdateRequest { + id: number; + patchedStorage?: Omit; +} + +export interface ApiStorageRetrieveRequest { + id: number; +} + +export interface ApiStorageUpdateRequest { + id: number; + storage: Omit; +} + +export interface ApiSupermarketCategoryCreateRequest { + supermarketCategory: Omit; +} + +export interface ApiSupermarketCategoryDestroyRequest { + id: number; +} + +export interface ApiSupermarketCategoryListRequest { + limit?: string; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiSupermarketCategoryMergeUpdateRequest { + id: number; + target: number; + supermarketCategory: Omit; +} + +export interface ApiSupermarketCategoryPartialUpdateRequest { + id: number; + patchedSupermarketCategory?: Omit; +} + +export interface ApiSupermarketCategoryRelationCreateRequest { + supermarketCategoryRelation: Omit; +} + +export interface ApiSupermarketCategoryRelationDestroyRequest { + id: number; +} + +export interface ApiSupermarketCategoryRelationListRequest { + limit?: string; + page?: number; + pageSize?: number; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiSupermarketCategoryRelationPartialUpdateRequest { + id: number; + patchedSupermarketCategoryRelation?: Omit; +} + +export interface ApiSupermarketCategoryRelationRetrieveRequest { + id: number; +} + +export interface ApiSupermarketCategoryRelationUpdateRequest { + id: number; + supermarketCategoryRelation: Omit; +} + +export interface ApiSupermarketCategoryRetrieveRequest { + id: number; +} + +export interface ApiSupermarketCategoryUpdateRequest { + id: number; + supermarketCategory: Omit; +} + +export interface ApiSupermarketCreateRequest { + supermarket: Omit; +} + +export interface ApiSupermarketDestroyRequest { + id: number; +} + +export interface ApiSupermarketListRequest { + limit?: string; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiSupermarketPartialUpdateRequest { + id: number; + patchedSupermarket?: Omit; +} + +export interface ApiSupermarketRetrieveRequest { + id: number; +} + +export interface ApiSupermarketUpdateRequest { + id: number; + supermarket: Omit; +} + +export interface ApiSwitchActiveSpaceRetrieveRequest { + spaceId: number; +} + +export interface ApiSyncCreateRequest { + sync: Omit; +} + +export interface ApiSyncDestroyRequest { + id: number; +} + +export interface ApiSyncLogListRequest { + page?: number; + pageSize?: number; +} + +export interface ApiSyncLogRetrieveRequest { + id: number; +} + +export interface ApiSyncPartialUpdateRequest { + id: number; + patchedSync?: Omit; +} + +export interface ApiSyncRetrieveRequest { + id: number; +} + +export interface ApiSyncUpdateRequest { + id: number; + sync: Omit; +} + +export interface ApiUnitConversionCreateRequest { + unitConversion: Omit; +} + +export interface ApiUnitConversionDestroyRequest { + id: number; +} + +export interface ApiUnitConversionListRequest { + foodId?: number; +} + +export interface ApiUnitConversionPartialUpdateRequest { + id: number; + patchedUnitConversion?: Omit; +} + +export interface ApiUnitConversionRetrieveRequest { + id: number; +} + +export interface ApiUnitConversionUpdateRequest { + id: number; + unitConversion: Omit; +} + +export interface ApiUnitCreateRequest { + unit: Omit; +} + +export interface ApiUnitDestroyRequest { + id: number; +} + +export interface ApiUnitListRequest { + limit?: string; + page?: number; + pageSize?: number; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiUnitMergeUpdateRequest { + id: number; + target: number; + unit: Omit; +} + +export interface ApiUnitPartialUpdateRequest { + id: number; + patchedUnit?: Omit; +} + +export interface ApiUnitRetrieveRequest { + id: number; +} + +export interface ApiUnitUpdateRequest { + id: number; + unit: Omit; +} + +export interface ApiUserFileCreateRequest { + id: number; + name: string; + file: string; + fileDownload: string; + preview: string; + fileSizeKb: number; +} + +export interface ApiUserFileDestroyRequest { + id: number; +} + +export interface ApiUserFileListRequest { + limit?: string; + query?: string; + random?: string; + updatedAt?: string; +} + +export interface ApiUserFilePartialUpdateRequest { + id: number; + id2?: number; + name?: string; + file?: string; + fileDownload?: string; + preview?: string; + fileSizeKb?: number; +} + +export interface ApiUserFileRetrieveRequest { + id: number; +} + +export interface ApiUserFileUpdateRequest { + id: number; + id2: number; + name: string; + file: string; + fileDownload: string; + preview: string; + fileSizeKb: number; +} + +export interface ApiUserPartialUpdateRequest { + id: number; + patchedUser?: Omit; +} + +export interface ApiUserPreferencePartialUpdateRequest { + user: number; + patchedUserPreference?: Omit; +} + +export interface ApiUserPreferenceRetrieveRequest { + user: number; +} + +export interface ApiUserRetrieveRequest { + id: number; +} + +export interface ApiUserSpaceDestroyRequest { + id: number; +} + +export interface ApiUserSpaceListRequest { + page?: number; + pageSize?: number; +} + +export interface ApiUserSpacePartialUpdateRequest { + id: number; + patchedUserSpace?: Omit; +} + +export interface ApiUserSpaceRetrieveRequest { + id: number; +} + +export interface ApiViewLogCreateRequest { + viewLog: Omit; +} + +export interface ApiViewLogDestroyRequest { + id: number; +} + +export interface ApiViewLogListRequest { + page?: number; + pageSize?: number; +} + +export interface ApiViewLogPartialUpdateRequest { + id: number; + patchedViewLog?: Omit; +} + +export interface ApiViewLogRetrieveRequest { + id: number; +} + +export interface ApiViewLogUpdateRequest { + id: number; + viewLog: Omit; +} + +/** + * + */ +export class ApiApi extends runtime.BaseAPI { + + /** + */ + async apiAccessTokenCreateRaw(requestParameters: ApiAccessTokenCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['accessToken'] == null) { + throw new runtime.RequiredError( + 'accessToken', + 'Required parameter "accessToken" was null or undefined when calling apiAccessTokenCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/access-token/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: AccessTokenToJSON(requestParameters['accessToken']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AccessTokenFromJSON(jsonValue)); + } + + /** + */ + async apiAccessTokenCreate(requestParameters: ApiAccessTokenCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAccessTokenCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAccessTokenDestroyRaw(requestParameters: ApiAccessTokenDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAccessTokenDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/access-token/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiAccessTokenDestroy(requestParameters: ApiAccessTokenDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiAccessTokenDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiAccessTokenListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/access-token/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(AccessTokenFromJSON)); + } + + /** + */ + async apiAccessTokenList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiAccessTokenListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiAccessTokenPartialUpdateRaw(requestParameters: ApiAccessTokenPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAccessTokenPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/access-token/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedAccessTokenToJSON(requestParameters['patchedAccessToken']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AccessTokenFromJSON(jsonValue)); + } + + /** + */ + async apiAccessTokenPartialUpdate(requestParameters: ApiAccessTokenPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAccessTokenPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAccessTokenRetrieveRaw(requestParameters: ApiAccessTokenRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAccessTokenRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/access-token/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AccessTokenFromJSON(jsonValue)); + } + + /** + */ + async apiAccessTokenRetrieve(requestParameters: ApiAccessTokenRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAccessTokenRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAccessTokenUpdateRaw(requestParameters: ApiAccessTokenUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAccessTokenUpdate().' + ); + } + + if (requestParameters['accessToken'] == null) { + throw new runtime.RequiredError( + 'accessToken', + 'Required parameter "accessToken" was null or undefined when calling apiAccessTokenUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/access-token/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: AccessTokenToJSON(requestParameters['accessToken']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AccessTokenFromJSON(jsonValue)); + } + + /** + */ + async apiAccessTokenUpdate(requestParameters: ApiAccessTokenUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAccessTokenUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAutoPlanCreateRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/auto-plan/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiAutoPlanCreate(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiAutoPlanCreateRaw(initOverrides); + } + + /** + */ + async apiAutomationCreateRaw(requestParameters: ApiAutomationCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['automation'] == null) { + throw new runtime.RequiredError( + 'automation', + 'Required parameter "automation" was null or undefined when calling apiAutomationCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/automation/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: AutomationToJSON(requestParameters['automation']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AutomationFromJSON(jsonValue)); + } + + /** + */ + async apiAutomationCreate(requestParameters: ApiAutomationCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAutomationCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAutomationDestroyRaw(requestParameters: ApiAutomationDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAutomationDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/automation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiAutomationDestroy(requestParameters: ApiAutomationDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiAutomationDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiAutomationListRaw(requestParameters: ApiAutomationListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['type'] != null) { + queryParameters['type'] = requestParameters['type']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/automation/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedAutomationListFromJSON(jsonValue)); + } + + /** + */ + async apiAutomationList(requestParameters: ApiAutomationListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAutomationListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAutomationPartialUpdateRaw(requestParameters: ApiAutomationPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAutomationPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/automation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedAutomationToJSON(requestParameters['patchedAutomation']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AutomationFromJSON(jsonValue)); + } + + /** + */ + async apiAutomationPartialUpdate(requestParameters: ApiAutomationPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAutomationPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAutomationRetrieveRaw(requestParameters: ApiAutomationRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAutomationRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/automation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AutomationFromJSON(jsonValue)); + } + + /** + */ + async apiAutomationRetrieve(requestParameters: ApiAutomationRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAutomationRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiAutomationUpdateRaw(requestParameters: ApiAutomationUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiAutomationUpdate().' + ); + } + + if (requestParameters['automation'] == null) { + throw new runtime.RequiredError( + 'automation', + 'Required parameter "automation" was null or undefined when calling apiAutomationUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/automation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: AutomationToJSON(requestParameters['automation']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AutomationFromJSON(jsonValue)); + } + + /** + */ + async apiAutomationUpdate(requestParameters: ApiAutomationUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiAutomationUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiBookmarkletImportCreateRaw(requestParameters: ApiBookmarkletImportCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['bookmarkletImport'] == null) { + throw new runtime.RequiredError( + 'bookmarkletImport', + 'Required parameter "bookmarkletImport" was null or undefined when calling apiBookmarkletImportCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/bookmarklet-import/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: BookmarkletImportToJSON(requestParameters['bookmarkletImport']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => BookmarkletImportFromJSON(jsonValue)); + } + + /** + */ + async apiBookmarkletImportCreate(requestParameters: ApiBookmarkletImportCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiBookmarkletImportCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiBookmarkletImportDestroyRaw(requestParameters: ApiBookmarkletImportDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiBookmarkletImportDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/bookmarklet-import/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiBookmarkletImportDestroy(requestParameters: ApiBookmarkletImportDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiBookmarkletImportDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiBookmarkletImportListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/bookmarklet-import/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(BookmarkletImportListFromJSON)); + } + + /** + */ + async apiBookmarkletImportList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiBookmarkletImportListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiBookmarkletImportPartialUpdateRaw(requestParameters: ApiBookmarkletImportPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiBookmarkletImportPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/bookmarklet-import/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedBookmarkletImportToJSON(requestParameters['patchedBookmarkletImport']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => BookmarkletImportFromJSON(jsonValue)); + } + + /** + */ + async apiBookmarkletImportPartialUpdate(requestParameters: ApiBookmarkletImportPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiBookmarkletImportPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiBookmarkletImportRetrieveRaw(requestParameters: ApiBookmarkletImportRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiBookmarkletImportRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/bookmarklet-import/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => BookmarkletImportFromJSON(jsonValue)); + } + + /** + */ + async apiBookmarkletImportRetrieve(requestParameters: ApiBookmarkletImportRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiBookmarkletImportRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiBookmarkletImportUpdateRaw(requestParameters: ApiBookmarkletImportUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiBookmarkletImportUpdate().' + ); + } + + if (requestParameters['bookmarkletImport'] == null) { + throw new runtime.RequiredError( + 'bookmarkletImport', + 'Required parameter "bookmarkletImport" was null or undefined when calling apiBookmarkletImportUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/bookmarklet-import/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: BookmarkletImportToJSON(requestParameters['bookmarkletImport']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => BookmarkletImportFromJSON(jsonValue)); + } + + /** + */ + async apiBookmarkletImportUpdate(requestParameters: ApiBookmarkletImportUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiBookmarkletImportUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiConnectorConfigCreateRaw(requestParameters: ApiConnectorConfigCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['connectorConfigConfig'] == null) { + throw new runtime.RequiredError( + 'connectorConfigConfig', + 'Required parameter "connectorConfigConfig" was null or undefined when calling apiConnectorConfigCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/connector-config/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ConnectorConfigConfigToJSON(requestParameters['connectorConfigConfig']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ConnectorConfigConfigFromJSON(jsonValue)); + } + + /** + */ + async apiConnectorConfigCreate(requestParameters: ApiConnectorConfigCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiConnectorConfigCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiConnectorConfigDestroyRaw(requestParameters: ApiConnectorConfigDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiConnectorConfigDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/connector-config/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiConnectorConfigDestroy(requestParameters: ApiConnectorConfigDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiConnectorConfigDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiConnectorConfigListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/connector-config/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ConnectorConfigConfigFromJSON)); + } + + /** + */ + async apiConnectorConfigList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiConnectorConfigListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiConnectorConfigPartialUpdateRaw(requestParameters: ApiConnectorConfigPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiConnectorConfigPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/connector-config/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedConnectorConfigConfigToJSON(requestParameters['patchedConnectorConfigConfig']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ConnectorConfigConfigFromJSON(jsonValue)); + } + + /** + */ + async apiConnectorConfigPartialUpdate(requestParameters: ApiConnectorConfigPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiConnectorConfigPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiConnectorConfigRetrieveRaw(requestParameters: ApiConnectorConfigRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiConnectorConfigRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/connector-config/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ConnectorConfigConfigFromJSON(jsonValue)); + } + + /** + */ + async apiConnectorConfigRetrieve(requestParameters: ApiConnectorConfigRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiConnectorConfigRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiConnectorConfigUpdateRaw(requestParameters: ApiConnectorConfigUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiConnectorConfigUpdate().' + ); + } + + if (requestParameters['connectorConfigConfig'] == null) { + throw new runtime.RequiredError( + 'connectorConfigConfig', + 'Required parameter "connectorConfigConfig" was null or undefined when calling apiConnectorConfigUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/connector-config/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: ConnectorConfigConfigToJSON(requestParameters['connectorConfigConfig']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ConnectorConfigConfigFromJSON(jsonValue)); + } + + /** + */ + async apiConnectorConfigUpdate(requestParameters: ApiConnectorConfigUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiConnectorConfigUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCookLogCreateRaw(requestParameters: ApiCookLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['cookLog'] == null) { + throw new runtime.RequiredError( + 'cookLog', + 'Required parameter "cookLog" was null or undefined when calling apiCookLogCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/cook-log/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: CookLogToJSON(requestParameters['cookLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CookLogFromJSON(jsonValue)); + } + + /** + */ + async apiCookLogCreate(requestParameters: ApiCookLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCookLogCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCookLogDestroyRaw(requestParameters: ApiCookLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCookLogDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/cook-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiCookLogDestroy(requestParameters: ApiCookLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiCookLogDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiCookLogListRaw(requestParameters: ApiCookLogListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['recipe'] != null) { + queryParameters['recipe'] = requestParameters['recipe']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/cook-log/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedCookLogListFromJSON(jsonValue)); + } + + /** + */ + async apiCookLogList(requestParameters: ApiCookLogListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCookLogListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCookLogPartialUpdateRaw(requestParameters: ApiCookLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCookLogPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/cook-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedCookLogToJSON(requestParameters['patchedCookLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CookLogFromJSON(jsonValue)); + } + + /** + */ + async apiCookLogPartialUpdate(requestParameters: ApiCookLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCookLogPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCookLogRetrieveRaw(requestParameters: ApiCookLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCookLogRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/cook-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CookLogFromJSON(jsonValue)); + } + + /** + */ + async apiCookLogRetrieve(requestParameters: ApiCookLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCookLogRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCookLogUpdateRaw(requestParameters: ApiCookLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCookLogUpdate().' + ); + } + + if (requestParameters['cookLog'] == null) { + throw new runtime.RequiredError( + 'cookLog', + 'Required parameter "cookLog" was null or undefined when calling apiCookLogUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/cook-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: CookLogToJSON(requestParameters['cookLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CookLogFromJSON(jsonValue)); + } + + /** + */ + async apiCookLogUpdate(requestParameters: ApiCookLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCookLogUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCustomFilterCreateRaw(requestParameters: ApiCustomFilterCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['customFilter'] == null) { + throw new runtime.RequiredError( + 'customFilter', + 'Required parameter "customFilter" was null or undefined when calling apiCustomFilterCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/custom-filter/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: CustomFilterToJSON(requestParameters['customFilter']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CustomFilterFromJSON(jsonValue)); + } + + /** + */ + async apiCustomFilterCreate(requestParameters: ApiCustomFilterCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCustomFilterCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCustomFilterDestroyRaw(requestParameters: ApiCustomFilterDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCustomFilterDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/custom-filter/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiCustomFilterDestroy(requestParameters: ApiCustomFilterDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiCustomFilterDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiCustomFilterListRaw(requestParameters: ApiCustomFilterListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/custom-filter/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedCustomFilterListFromJSON(jsonValue)); + } + + /** + */ + async apiCustomFilterList(requestParameters: ApiCustomFilterListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCustomFilterListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCustomFilterPartialUpdateRaw(requestParameters: ApiCustomFilterPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCustomFilterPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/custom-filter/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedCustomFilterToJSON(requestParameters['patchedCustomFilter']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CustomFilterFromJSON(jsonValue)); + } + + /** + */ + async apiCustomFilterPartialUpdate(requestParameters: ApiCustomFilterPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCustomFilterPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCustomFilterRetrieveRaw(requestParameters: ApiCustomFilterRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCustomFilterRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/custom-filter/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CustomFilterFromJSON(jsonValue)); + } + + /** + */ + async apiCustomFilterRetrieve(requestParameters: ApiCustomFilterRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCustomFilterRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiCustomFilterUpdateRaw(requestParameters: ApiCustomFilterUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiCustomFilterUpdate().' + ); + } + + if (requestParameters['customFilter'] == null) { + throw new runtime.RequiredError( + 'customFilter', + 'Required parameter "customFilter" was null or undefined when calling apiCustomFilterUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/custom-filter/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: CustomFilterToJSON(requestParameters['customFilter']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => CustomFilterFromJSON(jsonValue)); + } + + /** + */ + async apiCustomFilterUpdate(requestParameters: ApiCustomFilterUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiCustomFilterUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * function to download a user file securely (wrapping as zip to prevent any context based XSS problems) temporary solution until a real file manager is implemented + */ + async apiDownloadFileRetrieveRaw(requestParameters: ApiDownloadFileRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['fileId'] == null) { + throw new runtime.RequiredError( + 'fileId', + 'Required parameter "fileId" was null or undefined when calling apiDownloadFileRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/download-file/{fileId}/`.replace(`{${"fileId"}}`, encodeURIComponent(String(requestParameters['fileId']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * function to download a user file securely (wrapping as zip to prevent any context based XSS problems) temporary solution until a real file manager is implemented + */ + async apiDownloadFileRetrieve(requestParameters: ApiDownloadFileRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiDownloadFileRetrieveRaw(requestParameters, initOverrides); + } + + /** + */ + async apiExportLogCreateRaw(requestParameters: ApiExportLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['exportLog'] == null) { + throw new runtime.RequiredError( + 'exportLog', + 'Required parameter "exportLog" was null or undefined when calling apiExportLogCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/export-log/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ExportLogToJSON(requestParameters['exportLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ExportLogFromJSON(jsonValue)); + } + + /** + */ + async apiExportLogCreate(requestParameters: ApiExportLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiExportLogCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiExportLogDestroyRaw(requestParameters: ApiExportLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiExportLogDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/export-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiExportLogDestroy(requestParameters: ApiExportLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiExportLogDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiExportLogListRaw(requestParameters: ApiExportLogListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/export-log/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedExportLogListFromJSON(jsonValue)); + } + + /** + */ + async apiExportLogList(requestParameters: ApiExportLogListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiExportLogListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiExportLogPartialUpdateRaw(requestParameters: ApiExportLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiExportLogPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/export-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedExportLogToJSON(requestParameters['patchedExportLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ExportLogFromJSON(jsonValue)); + } + + /** + */ + async apiExportLogPartialUpdate(requestParameters: ApiExportLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiExportLogPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiExportLogRetrieveRaw(requestParameters: ApiExportLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiExportLogRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/export-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ExportLogFromJSON(jsonValue)); + } + + /** + */ + async apiExportLogRetrieve(requestParameters: ApiExportLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiExportLogRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiExportLogUpdateRaw(requestParameters: ApiExportLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiExportLogUpdate().' + ); + } + + if (requestParameters['exportLog'] == null) { + throw new runtime.RequiredError( + 'exportLog', + 'Required parameter "exportLog" was null or undefined when calling apiExportLogUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/export-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: ExportLogToJSON(requestParameters['exportLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ExportLogFromJSON(jsonValue)); + } + + /** + */ + async apiExportLogUpdate(requestParameters: ApiExportLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiExportLogUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodCreateRaw(requestParameters: ApiFoodCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['food'] == null) { + throw new runtime.RequiredError( + 'food', + 'Required parameter "food" was null or undefined when calling apiFoodCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: FoodToJSON(requestParameters['food']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + */ + async apiFoodCreate(requestParameters: ApiFoodCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodDestroyRaw(requestParameters: ApiFoodDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiFoodDestroy(requestParameters: ApiFoodDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiFoodDestroyRaw(requestParameters, initOverrides); + } + + /** + * updates the food with all possible data from the FDC Api if properties with a fdc_id already exist they will be overridden, if existing properties don\'t have a fdc_id they won\'t be changed + */ + async apiFoodFdcCreateRaw(requestParameters: ApiFoodFdcCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodFdcCreate().' + ); + } + + if (requestParameters['food'] == null) { + throw new runtime.RequiredError( + 'food', + 'Required parameter "food" was null or undefined when calling apiFoodFdcCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/fdc/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: FoodToJSON(requestParameters['food']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + * updates the food with all possible data from the FDC Api if properties with a fdc_id already exist they will be overridden, if existing properties don\'t have a fdc_id they won\'t be changed + */ + async apiFoodFdcCreate(requestParameters: ApiFoodFdcCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodFdcCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodInheritFieldListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-inherit-field/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FoodInheritFieldFromJSON)); + } + + /** + */ + async apiFoodInheritFieldList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiFoodInheritFieldListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodInheritFieldRetrieveRaw(requestParameters: ApiFoodInheritFieldRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodInheritFieldRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-inherit-field/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodInheritFieldFromJSON(jsonValue)); + } + + /** + */ + async apiFoodInheritFieldRetrieve(requestParameters: ApiFoodInheritFieldRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodInheritFieldRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodListRaw(requestParameters: ApiFoodListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['root'] != null) { + queryParameters['root'] = requestParameters['root']; + } + + if (requestParameters['tree'] != null) { + queryParameters['tree'] = requestParameters['tree']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedFoodListFromJSON(jsonValue)); + } + + /** + */ + async apiFoodList(requestParameters: ApiFoodListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodMergeUpdateRaw(requestParameters: ApiFoodMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodMergeUpdate().' + ); + } + + if (requestParameters['target'] == null) { + throw new runtime.RequiredError( + 'target', + 'Required parameter "target" was null or undefined when calling apiFoodMergeUpdate().' + ); + } + + if (requestParameters['food'] == null) { + throw new runtime.RequiredError( + 'food', + 'Required parameter "food" was null or undefined when calling apiFoodMergeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/merge/{target}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"target"}}`, encodeURIComponent(String(requestParameters['target']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: FoodToJSON(requestParameters['food']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + */ + async apiFoodMergeUpdate(requestParameters: ApiFoodMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodMergeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodMoveUpdateRaw(requestParameters: ApiFoodMoveUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodMoveUpdate().' + ); + } + + if (requestParameters['parent'] == null) { + throw new runtime.RequiredError( + 'parent', + 'Required parameter "parent" was null or undefined when calling apiFoodMoveUpdate().' + ); + } + + if (requestParameters['food'] == null) { + throw new runtime.RequiredError( + 'food', + 'Required parameter "food" was null or undefined when calling apiFoodMoveUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/move/{parent}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"parent"}}`, encodeURIComponent(String(requestParameters['parent']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: FoodToJSON(requestParameters['food']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + */ + async apiFoodMoveUpdate(requestParameters: ApiFoodMoveUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodMoveUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPartialUpdateRaw(requestParameters: ApiFoodPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedFoodToJSON(requestParameters['patchedFood']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPartialUpdate(requestParameters: ApiFoodPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyCreateRaw(requestParameters: ApiFoodPropertyCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['property'] == null) { + throw new runtime.RequiredError( + 'property', + 'Required parameter "property" was null or undefined when calling apiFoodPropertyCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: PropertyToJSON(requestParameters['property']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyCreate(requestParameters: ApiFoodPropertyCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyDestroyRaw(requestParameters: ApiFoodPropertyDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiFoodPropertyDestroy(requestParameters: ApiFoodPropertyDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiFoodPropertyDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiFoodPropertyListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(PropertyFromJSON)); + } + + /** + */ + async apiFoodPropertyList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiFoodPropertyListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyPartialUpdateRaw(requestParameters: ApiFoodPropertyPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedPropertyToJSON(requestParameters['patchedProperty']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyPartialUpdate(requestParameters: ApiFoodPropertyPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyRetrieveRaw(requestParameters: ApiFoodPropertyRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyRetrieve(requestParameters: ApiFoodPropertyRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyTypeCreateRaw(requestParameters: ApiFoodPropertyTypeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['propertyType'] == null) { + throw new runtime.RequiredError( + 'propertyType', + 'Required parameter "propertyType" was null or undefined when calling apiFoodPropertyTypeCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property-type/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: PropertyTypeToJSON(requestParameters['propertyType']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyTypeFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyTypeCreate(requestParameters: ApiFoodPropertyTypeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyTypeCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyTypeDestroyRaw(requestParameters: ApiFoodPropertyTypeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyTypeDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiFoodPropertyTypeDestroy(requestParameters: ApiFoodPropertyTypeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiFoodPropertyTypeDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiFoodPropertyTypeListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property-type/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(PropertyTypeFromJSON)); + } + + /** + */ + async apiFoodPropertyTypeList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiFoodPropertyTypeListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyTypePartialUpdateRaw(requestParameters: ApiFoodPropertyTypePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyTypePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedPropertyTypeToJSON(requestParameters['patchedPropertyType']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyTypeFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyTypePartialUpdate(requestParameters: ApiFoodPropertyTypePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyTypePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyTypeRetrieveRaw(requestParameters: ApiFoodPropertyTypeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyTypeRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyTypeFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyTypeRetrieve(requestParameters: ApiFoodPropertyTypeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyTypeRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyTypeUpdateRaw(requestParameters: ApiFoodPropertyTypeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyTypeUpdate().' + ); + } + + if (requestParameters['propertyType'] == null) { + throw new runtime.RequiredError( + 'propertyType', + 'Required parameter "propertyType" was null or undefined when calling apiFoodPropertyTypeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: PropertyTypeToJSON(requestParameters['propertyType']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyTypeFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyTypeUpdate(requestParameters: ApiFoodPropertyTypeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyTypeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodPropertyUpdateRaw(requestParameters: ApiFoodPropertyUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodPropertyUpdate().' + ); + } + + if (requestParameters['property'] == null) { + throw new runtime.RequiredError( + 'property', + 'Required parameter "property" was null or undefined when calling apiFoodPropertyUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food-property/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: PropertyToJSON(requestParameters['property']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PropertyFromJSON(jsonValue)); + } + + /** + */ + async apiFoodPropertyUpdate(requestParameters: ApiFoodPropertyUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodPropertyUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodRetrieveRaw(requestParameters: ApiFoodRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + */ + async apiFoodRetrieve(requestParameters: ApiFoodRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodShoppingUpdateRaw(requestParameters: ApiFoodShoppingUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodShoppingUpdate().' + ); + } + + if (requestParameters['foodShoppingUpdate'] == null) { + throw new runtime.RequiredError( + 'foodShoppingUpdate', + 'Required parameter "foodShoppingUpdate" was null or undefined when calling apiFoodShoppingUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/shopping/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: FoodShoppingUpdateToJSON(requestParameters['foodShoppingUpdate']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodShoppingUpdateFromJSON(jsonValue)); + } + + /** + */ + async apiFoodShoppingUpdate(requestParameters: ApiFoodShoppingUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodShoppingUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiFoodUpdateRaw(requestParameters: ApiFoodUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiFoodUpdate().' + ); + } + + if (requestParameters['food'] == null) { + throw new runtime.RequiredError( + 'food', + 'Required parameter "food" was null or undefined when calling apiFoodUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/food/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: FoodToJSON(requestParameters['food']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => FoodFromJSON(jsonValue)); + } + + /** + */ + async apiFoodUpdate(requestParameters: ApiFoodUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiFoodUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiGroupListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/group/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GroupFromJSON)); + } + + /** + */ + async apiGroupList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiGroupListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiGroupRetrieveRaw(requestParameters: ApiGroupRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiGroupRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/group/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => GroupFromJSON(jsonValue)); + } + + /** + */ + async apiGroupRetrieve(requestParameters: ApiGroupRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiGroupRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * function to handle files passed by application importer + */ + async apiImportCreateRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * function to handle files passed by application importer + */ + async apiImportCreate(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiImportCreateRaw(initOverrides); + } + + /** + */ + async apiImportLogCreateRaw(requestParameters: ApiImportLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['importLog'] == null) { + throw new runtime.RequiredError( + 'importLog', + 'Required parameter "importLog" was null or undefined when calling apiImportLogCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import-log/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ImportLogToJSON(requestParameters['importLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ImportLogFromJSON(jsonValue)); + } + + /** + */ + async apiImportLogCreate(requestParameters: ApiImportLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiImportLogCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiImportLogDestroyRaw(requestParameters: ApiImportLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiImportLogDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiImportLogDestroy(requestParameters: ApiImportLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiImportLogDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiImportLogListRaw(requestParameters: ApiImportLogListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import-log/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedImportLogListFromJSON(jsonValue)); + } + + /** + */ + async apiImportLogList(requestParameters: ApiImportLogListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiImportLogListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiImportLogPartialUpdateRaw(requestParameters: ApiImportLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiImportLogPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedImportLogToJSON(requestParameters['patchedImportLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ImportLogFromJSON(jsonValue)); + } + + /** + */ + async apiImportLogPartialUpdate(requestParameters: ApiImportLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiImportLogPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiImportLogRetrieveRaw(requestParameters: ApiImportLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiImportLogRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ImportLogFromJSON(jsonValue)); + } + + /** + */ + async apiImportLogRetrieve(requestParameters: ApiImportLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiImportLogRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiImportLogUpdateRaw(requestParameters: ApiImportLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiImportLogUpdate().' + ); + } + + if (requestParameters['importLog'] == null) { + throw new runtime.RequiredError( + 'importLog', + 'Required parameter "importLog" was null or undefined when calling apiImportLogUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/import-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: ImportLogToJSON(requestParameters['importLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ImportLogFromJSON(jsonValue)); + } + + /** + */ + async apiImportLogUpdate(requestParameters: ApiImportLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiImportLogUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiIngredientCreateRaw(requestParameters: ApiIngredientCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['ingredient'] == null) { + throw new runtime.RequiredError( + 'ingredient', + 'Required parameter "ingredient" was null or undefined when calling apiIngredientCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/ingredient/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: IngredientToJSON(requestParameters['ingredient']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IngredientFromJSON(jsonValue)); + } + + /** + */ + async apiIngredientCreate(requestParameters: ApiIngredientCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiIngredientCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiIngredientDestroyRaw(requestParameters: ApiIngredientDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiIngredientDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/ingredient/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiIngredientDestroy(requestParameters: ApiIngredientDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiIngredientDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiIngredientListRaw(requestParameters: ApiIngredientListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/ingredient/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedIngredientListFromJSON(jsonValue)); + } + + /** + */ + async apiIngredientList(requestParameters: ApiIngredientListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiIngredientListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiIngredientPartialUpdateRaw(requestParameters: ApiIngredientPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiIngredientPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/ingredient/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedIngredientToJSON(requestParameters['patchedIngredient']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IngredientFromJSON(jsonValue)); + } + + /** + */ + async apiIngredientPartialUpdate(requestParameters: ApiIngredientPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiIngredientPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiIngredientRetrieveRaw(requestParameters: ApiIngredientRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiIngredientRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/ingredient/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IngredientFromJSON(jsonValue)); + } + + /** + */ + async apiIngredientRetrieve(requestParameters: ApiIngredientRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiIngredientRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiIngredientUpdateRaw(requestParameters: ApiIngredientUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiIngredientUpdate().' + ); + } + + if (requestParameters['ingredient'] == null) { + throw new runtime.RequiredError( + 'ingredient', + 'Required parameter "ingredient" was null or undefined when calling apiIngredientUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/ingredient/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: IngredientToJSON(requestParameters['ingredient']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IngredientFromJSON(jsonValue)); + } + + /** + */ + async apiIngredientUpdate(requestParameters: ApiIngredientUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiIngredientUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiInviteLinkCreateRaw(requestParameters: ApiInviteLinkCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['inviteLink'] == null) { + throw new runtime.RequiredError( + 'inviteLink', + 'Required parameter "inviteLink" was null or undefined when calling apiInviteLinkCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/invite-link/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: InviteLinkToJSON(requestParameters['inviteLink']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => InviteLinkFromJSON(jsonValue)); + } + + /** + */ + async apiInviteLinkCreate(requestParameters: ApiInviteLinkCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiInviteLinkCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiInviteLinkDestroyRaw(requestParameters: ApiInviteLinkDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiInviteLinkDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/invite-link/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiInviteLinkDestroy(requestParameters: ApiInviteLinkDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiInviteLinkDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiInviteLinkListRaw(requestParameters: ApiInviteLinkListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/invite-link/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(InviteLinkFromJSON)); + } + + /** + */ + async apiInviteLinkList(requestParameters: ApiInviteLinkListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiInviteLinkListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiInviteLinkPartialUpdateRaw(requestParameters: ApiInviteLinkPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiInviteLinkPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/invite-link/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedInviteLinkToJSON(requestParameters['patchedInviteLink']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => InviteLinkFromJSON(jsonValue)); + } + + /** + */ + async apiInviteLinkPartialUpdate(requestParameters: ApiInviteLinkPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiInviteLinkPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiInviteLinkRetrieveRaw(requestParameters: ApiInviteLinkRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiInviteLinkRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/invite-link/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => InviteLinkFromJSON(jsonValue)); + } + + /** + */ + async apiInviteLinkRetrieve(requestParameters: ApiInviteLinkRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiInviteLinkRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiInviteLinkUpdateRaw(requestParameters: ApiInviteLinkUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiInviteLinkUpdate().' + ); + } + + if (requestParameters['inviteLink'] == null) { + throw new runtime.RequiredError( + 'inviteLink', + 'Required parameter "inviteLink" was null or undefined when calling apiInviteLinkUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/invite-link/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: InviteLinkToJSON(requestParameters['inviteLink']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => InviteLinkFromJSON(jsonValue)); + } + + /** + */ + async apiInviteLinkUpdate(requestParameters: ApiInviteLinkUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiInviteLinkUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordCreateRaw(requestParameters: ApiKeywordCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['keyword'] == null) { + throw new runtime.RequiredError( + 'keyword', + 'Required parameter "keyword" was null or undefined when calling apiKeywordCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: KeywordToJSON(requestParameters['keyword']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => KeywordFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordCreate(requestParameters: ApiKeywordCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordDestroyRaw(requestParameters: ApiKeywordDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiKeywordDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiKeywordDestroy(requestParameters: ApiKeywordDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiKeywordDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiKeywordListRaw(requestParameters: ApiKeywordListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['root'] != null) { + queryParameters['root'] = requestParameters['root']; + } + + if (requestParameters['tree'] != null) { + queryParameters['tree'] = requestParameters['tree']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedKeywordListFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordList(requestParameters: ApiKeywordListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordMergeUpdateRaw(requestParameters: ApiKeywordMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiKeywordMergeUpdate().' + ); + } + + if (requestParameters['target'] == null) { + throw new runtime.RequiredError( + 'target', + 'Required parameter "target" was null or undefined when calling apiKeywordMergeUpdate().' + ); + } + + if (requestParameters['keyword'] == null) { + throw new runtime.RequiredError( + 'keyword', + 'Required parameter "keyword" was null or undefined when calling apiKeywordMergeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/{id}/merge/{target}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"target"}}`, encodeURIComponent(String(requestParameters['target']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: KeywordToJSON(requestParameters['keyword']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => KeywordFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordMergeUpdate(requestParameters: ApiKeywordMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordMergeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordMoveUpdateRaw(requestParameters: ApiKeywordMoveUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiKeywordMoveUpdate().' + ); + } + + if (requestParameters['parent'] == null) { + throw new runtime.RequiredError( + 'parent', + 'Required parameter "parent" was null or undefined when calling apiKeywordMoveUpdate().' + ); + } + + if (requestParameters['keyword'] == null) { + throw new runtime.RequiredError( + 'keyword', + 'Required parameter "keyword" was null or undefined when calling apiKeywordMoveUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/{id}/move/{parent}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"parent"}}`, encodeURIComponent(String(requestParameters['parent']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: KeywordToJSON(requestParameters['keyword']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => KeywordFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordMoveUpdate(requestParameters: ApiKeywordMoveUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordMoveUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordPartialUpdateRaw(requestParameters: ApiKeywordPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiKeywordPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedKeywordToJSON(requestParameters['patchedKeyword']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => KeywordFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordPartialUpdate(requestParameters: ApiKeywordPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordRetrieveRaw(requestParameters: ApiKeywordRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiKeywordRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => KeywordFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordRetrieve(requestParameters: ApiKeywordRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiKeywordUpdateRaw(requestParameters: ApiKeywordUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiKeywordUpdate().' + ); + } + + if (requestParameters['keyword'] == null) { + throw new runtime.RequiredError( + 'keyword', + 'Required parameter "keyword" was null or undefined when calling apiKeywordUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/keyword/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: KeywordToJSON(requestParameters['keyword']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => KeywordFromJSON(jsonValue)); + } + + /** + */ + async apiKeywordUpdate(requestParameters: ApiKeywordUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiKeywordUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanCreateRaw(requestParameters: ApiMealPlanCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['mealPlan'] == null) { + throw new runtime.RequiredError( + 'mealPlan', + 'Required parameter "mealPlan" was null or undefined when calling apiMealPlanCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: MealPlanToJSON(requestParameters['mealPlan']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealPlanFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanCreate(requestParameters: ApiMealPlanCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealPlanCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanDestroyRaw(requestParameters: ApiMealPlanDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealPlanDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanDestroy(requestParameters: ApiMealPlanDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiMealPlanDestroyRaw(requestParameters, initOverrides); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanIcalRetrieveRaw(requestParameters: ApiMealPlanIcalRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['fromDate'] != null) { + queryParameters['from_date'] = requestParameters['fromDate']; + } + + if (requestParameters['mealType'] != null) { + queryParameters['meal_type'] = requestParameters['mealType']; + } + + if (requestParameters['toDate'] != null) { + queryParameters['to_date'] = requestParameters['toDate']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/ical/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + if (this.isJsonMime(response.headers.get('content-type'))) { + return new runtime.JSONApiResponse(response); + } else { + return new runtime.TextApiResponse(response) as any; + } + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanIcalRetrieve(requestParameters: ApiMealPlanIcalRetrieveRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealPlanIcalRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanListRaw(requestParameters: ApiMealPlanListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['fromDate'] != null) { + queryParameters['from_date'] = requestParameters['fromDate']; + } + + if (requestParameters['mealType'] != null) { + queryParameters['meal_type'] = requestParameters['mealType']; + } + + if (requestParameters['toDate'] != null) { + queryParameters['to_date'] = requestParameters['toDate']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(MealPlanFromJSON)); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanList(requestParameters: ApiMealPlanListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiMealPlanListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanPartialUpdateRaw(requestParameters: ApiMealPlanPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealPlanPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedMealPlanToJSON(requestParameters['patchedMealPlan']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealPlanFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanPartialUpdate(requestParameters: ApiMealPlanPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealPlanPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanRetrieveRaw(requestParameters: ApiMealPlanRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealPlanRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealPlanFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanRetrieve(requestParameters: ApiMealPlanRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealPlanRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanUpdateRaw(requestParameters: ApiMealPlanUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealPlanUpdate().' + ); + } + + if (requestParameters['mealPlan'] == null) { + throw new runtime.RequiredError( + 'mealPlan', + 'Required parameter "mealPlan" was null or undefined when calling apiMealPlanUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-plan/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: MealPlanToJSON(requestParameters['mealPlan']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealPlanFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **from_date**: filter from (inclusive) a certain date onward - **to_date**: filter upward to (inclusive) certain date - **meal_type**: filter meal plans based on meal_type ID + */ + async apiMealPlanUpdate(requestParameters: ApiMealPlanUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealPlanUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeCreateRaw(requestParameters: ApiMealTypeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['mealType'] == null) { + throw new runtime.RequiredError( + 'mealType', + 'Required parameter "mealType" was null or undefined when calling apiMealTypeCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-type/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: MealTypeToJSON(requestParameters['mealType']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealTypeFromJSON(jsonValue)); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeCreate(requestParameters: ApiMealTypeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealTypeCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeDestroyRaw(requestParameters: ApiMealTypeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealTypeDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeDestroy(requestParameters: ApiMealTypeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiMealTypeDestroyRaw(requestParameters, initOverrides); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-type/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(MealTypeFromJSON)); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiMealTypeListRaw(initOverrides); + return await response.value(); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypePartialUpdateRaw(requestParameters: ApiMealTypePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealTypePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedMealTypeToJSON(requestParameters['patchedMealType']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealTypeFromJSON(jsonValue)); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypePartialUpdate(requestParameters: ApiMealTypePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealTypePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeRetrieveRaw(requestParameters: ApiMealTypeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealTypeRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealTypeFromJSON(jsonValue)); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeRetrieve(requestParameters: ApiMealTypeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealTypeRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeUpdateRaw(requestParameters: ApiMealTypeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiMealTypeUpdate().' + ); + } + + if (requestParameters['mealType'] == null) { + throw new runtime.RequiredError( + 'mealType', + 'Required parameter "mealType" was null or undefined when calling apiMealTypeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/meal-type/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: MealTypeToJSON(requestParameters['mealType']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MealTypeFromJSON(jsonValue)); + } + + /** + * returns list of meal types created by the requesting user ordered by the order field. + */ + async apiMealTypeUpdate(requestParameters: ApiMealTypeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiMealTypeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiPlanIcalRetrieveRaw(requestParameters: ApiPlanIcalRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['fromDate'] == null) { + throw new runtime.RequiredError( + 'fromDate', + 'Required parameter "fromDate" was null or undefined when calling apiPlanIcalRetrieve().' + ); + } + + if (requestParameters['toDate'] == null) { + throw new runtime.RequiredError( + 'toDate', + 'Required parameter "toDate" was null or undefined when calling apiPlanIcalRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/plan-ical/{fromDate}/{toDate}/`.replace(`{${"fromDate"}}`, encodeURIComponent(String(requestParameters['fromDate']))).replace(`{${"toDate"}}`, encodeURIComponent(String(requestParameters['toDate']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiPlanIcalRetrieve(requestParameters: ApiPlanIcalRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiPlanIcalRetrieveRaw(requestParameters, initOverrides); + } + + /** + */ + async apiRecipeBookCreateRaw(requestParameters: ApiRecipeBookCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['recipeBook'] == null) { + throw new runtime.RequiredError( + 'recipeBook', + 'Required parameter "recipeBook" was null or undefined when calling apiRecipeBookCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: RecipeBookToJSON(requestParameters['recipeBook']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeBookCreate(requestParameters: ApiRecipeBookCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeBookDestroyRaw(requestParameters: ApiRecipeBookDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiRecipeBookDestroy(requestParameters: ApiRecipeBookDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiRecipeBookDestroyRaw(requestParameters, initOverrides); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryCreateRaw(requestParameters: ApiRecipeBookEntryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['recipeBookEntry'] == null) { + throw new runtime.RequiredError( + 'recipeBookEntry', + 'Required parameter "recipeBookEntry" was null or undefined when calling apiRecipeBookEntryCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book-entry/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: RecipeBookEntryToJSON(requestParameters['recipeBookEntry']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookEntryFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryCreate(requestParameters: ApiRecipeBookEntryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookEntryCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryDestroyRaw(requestParameters: ApiRecipeBookEntryDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookEntryDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryDestroy(requestParameters: ApiRecipeBookEntryDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiRecipeBookEntryDestroyRaw(requestParameters, initOverrides); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book-entry/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(RecipeBookEntryFromJSON)); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiRecipeBookEntryListRaw(initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryPartialUpdateRaw(requestParameters: ApiRecipeBookEntryPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookEntryPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedRecipeBookEntryToJSON(requestParameters['patchedRecipeBookEntry']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookEntryFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryPartialUpdate(requestParameters: ApiRecipeBookEntryPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookEntryPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryRetrieveRaw(requestParameters: ApiRecipeBookEntryRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookEntryRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookEntryFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryRetrieve(requestParameters: ApiRecipeBookEntryRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookEntryRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryUpdateRaw(requestParameters: ApiRecipeBookEntryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookEntryUpdate().' + ); + } + + if (requestParameters['recipeBookEntry'] == null) { + throw new runtime.RequiredError( + 'recipeBookEntry', + 'Required parameter "recipeBookEntry" was null or undefined when calling apiRecipeBookEntryUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: RecipeBookEntryToJSON(requestParameters['recipeBookEntry']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookEntryFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **recipe**: id of recipe - only return books for that recipe - **book**: id of book - only return recipes in that book + */ + async apiRecipeBookEntryUpdate(requestParameters: ApiRecipeBookEntryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookEntryUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeBookListRaw(requestParameters: ApiRecipeBookListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(RecipeBookFromJSON)); + } + + /** + */ + async apiRecipeBookList(requestParameters: ApiRecipeBookListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiRecipeBookListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeBookPartialUpdateRaw(requestParameters: ApiRecipeBookPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedRecipeBookToJSON(requestParameters['patchedRecipeBook']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeBookPartialUpdate(requestParameters: ApiRecipeBookPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeBookRetrieveRaw(requestParameters: ApiRecipeBookRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeBookRetrieve(requestParameters: ApiRecipeBookRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeBookUpdateRaw(requestParameters: ApiRecipeBookUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeBookUpdate().' + ); + } + + if (requestParameters['recipeBook'] == null) { + throw new runtime.RequiredError( + 'recipeBook', + 'Required parameter "recipeBook" was null or undefined when calling apiRecipeBookUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-book/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: RecipeBookToJSON(requestParameters['recipeBook']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeBookFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeBookUpdate(requestParameters: ApiRecipeBookUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeBookUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeCreateRaw(requestParameters: ApiRecipeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['recipe'] == null) { + throw new runtime.RequiredError( + 'recipe', + 'Required parameter "recipe" was null or undefined when calling apiRecipeCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: RecipeToJSON(requestParameters['recipe']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeCreate(requestParameters: ApiRecipeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeDestroyRaw(requestParameters: ApiRecipeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiRecipeDestroy(requestParameters: ApiRecipeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiRecipeDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiRecipeFlatListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/flat/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(RecipeFlatFromJSON)); + } + + /** + */ + async apiRecipeFlatList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiRecipeFlatListRaw(initOverrides); + return await response.value(); + } + + /** + * function to retrieve a recipe from a given url or source string :param request: standard request with additional post parameters - url: url to use for importing recipe - data: if no url is given recipe is imported from provided source data - (optional) bookmarklet: id of bookmarklet import to use, overrides URL and data attributes :return: JsonResponse containing the parsed json and images + */ + async apiRecipeFromSourceCreateRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe-from-source/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * function to retrieve a recipe from a given url or source string :param request: standard request with additional post parameters - url: url to use for importing recipe - data: if no url is given recipe is imported from provided source data - (optional) bookmarklet: id of bookmarklet import to use, overrides URL and data attributes :return: JsonResponse containing the parsed json and images + */ + async apiRecipeFromSourceCreate(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiRecipeFromSourceCreateRaw(initOverrides); + } + + /** + */ + async apiRecipeImageUpdateRaw(requestParameters: ApiRecipeImageUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeImageUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const consumes: runtime.Consume[] = [ + { contentType: 'multipart/form-data' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['image'] != null) { + formParams.append('image', requestParameters['image'] as any); + } + + if (requestParameters['imageUrl'] != null) { + formParams.append('image_url', requestParameters['imageUrl'] as any); + } + + const response = await this.request({ + path: `/api/recipe/{id}/image/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeImageFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeImageUpdate(requestParameters: ApiRecipeImageUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeImageUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeListRaw(requestParameters: ApiRecipeListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['books'] != null) { + queryParameters['books'] = requestParameters['books']; + } + + if (requestParameters['booksAnd'] != null) { + queryParameters['books_and'] = requestParameters['booksAnd']; + } + + if (requestParameters['booksAndNot'] != null) { + queryParameters['books_and_not'] = requestParameters['booksAndNot']; + } + + if (requestParameters['booksOr'] != null) { + queryParameters['books_or'] = requestParameters['booksOr']; + } + + if (requestParameters['booksOrNot'] != null) { + queryParameters['books_or_not'] = requestParameters['booksOrNot']; + } + + if (requestParameters['cookedon'] != null) { + queryParameters['cookedon'] = requestParameters['cookedon']; + } + + if (requestParameters['createdon'] != null) { + queryParameters['createdon'] = requestParameters['createdon']; + } + + if (requestParameters['foods'] != null) { + queryParameters['foods'] = requestParameters['foods']; + } + + if (requestParameters['foodsAnd'] != null) { + queryParameters['foods_and'] = requestParameters['foodsAnd']; + } + + if (requestParameters['foodsAndNot'] != null) { + queryParameters['foods_and_not'] = requestParameters['foodsAndNot']; + } + + if (requestParameters['foodsOr'] != null) { + queryParameters['foods_or'] = requestParameters['foodsOr']; + } + + if (requestParameters['foodsOrNot'] != null) { + queryParameters['foods_or_not'] = requestParameters['foodsOrNot']; + } + + if (requestParameters['internal'] != null) { + queryParameters['internal'] = requestParameters['internal']; + } + + if (requestParameters['keywords'] != null) { + queryParameters['keywords'] = requestParameters['keywords']; + } + + if (requestParameters['keywordsAnd'] != null) { + queryParameters['keywords_and'] = requestParameters['keywordsAnd']; + } + + if (requestParameters['keywordsAndNot'] != null) { + queryParameters['keywords_and_not'] = requestParameters['keywordsAndNot']; + } + + if (requestParameters['keywordsOr'] != null) { + queryParameters['keywords_or'] = requestParameters['keywordsOr']; + } + + if (requestParameters['keywordsOrNot'] != null) { + queryParameters['keywords_or_not'] = requestParameters['keywordsOrNot']; + } + + if (requestParameters['makenow'] != null) { + queryParameters['makenow'] = requestParameters['makenow']; + } + + if (requestParameters['_new'] != null) { + queryParameters['new'] = requestParameters['_new']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['rating'] != null) { + queryParameters['rating'] = requestParameters['rating']; + } + + if (requestParameters['timescooked'] != null) { + queryParameters['timescooked'] = requestParameters['timescooked']; + } + + if (requestParameters['units'] != null) { + queryParameters['units'] = requestParameters['units']; + } + + if (requestParameters['updatedon'] != null) { + queryParameters['updatedon'] = requestParameters['updatedon']; + } + + if (requestParameters['viewedon'] != null) { + queryParameters['viewedon'] = requestParameters['viewedon']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedRecipeOverviewListFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeList(requestParameters: ApiRecipeListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipePartialUpdateRaw(requestParameters: ApiRecipePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedRecipeToJSON(requestParameters['patchedRecipe']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeFromJSON(jsonValue)); + } + + /** + */ + async apiRecipePartialUpdate(requestParameters: ApiRecipePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeRelatedRetrieveRaw(requestParameters: ApiRecipeRelatedRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeRelatedRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/{id}/related/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeSimpleFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeRelatedRetrieve(requestParameters: ApiRecipeRelatedRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeRelatedRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeRetrieveRaw(requestParameters: ApiRecipeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeRetrieve(requestParameters: ApiRecipeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeShoppingUpdateRaw(requestParameters: ApiRecipeShoppingUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeShoppingUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/{id}/shopping/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: RecipeShoppingUpdateToJSON(requestParameters['recipeShoppingUpdate']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeShoppingUpdateFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeShoppingUpdate(requestParameters: ApiRecipeShoppingUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeShoppingUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiRecipeUpdateRaw(requestParameters: ApiRecipeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiRecipeUpdate().' + ); + } + + if (requestParameters['recipe'] == null) { + throw new runtime.RequiredError( + 'recipe', + 'Required parameter "recipe" was null or undefined when calling apiRecipeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: RecipeToJSON(requestParameters['recipe']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => RecipeFromJSON(jsonValue)); + } + + /** + */ + async apiRecipeUpdate(requestParameters: ApiRecipeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiRecipeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * function to reset inheritance from api, see food method for docs + */ + async apiResetFoodInheritanceRetrieveRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/reset-food-inheritance/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * function to reset inheritance from api, see food method for docs + */ + async apiResetFoodInheritanceRetrieve(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiResetFoodInheritanceRetrieveRaw(initOverrides); + } + + /** + */ + async apiShareLinkRetrieveRaw(requestParameters: ApiShareLinkRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShareLinkRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/share-link/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiShareLinkRetrieve(requestParameters: ApiShareLinkRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiShareLinkRetrieveRaw(requestParameters, initOverrides); + } + + /** + */ + async apiShoppingListEntryBulkCreateRaw(requestParameters: ApiShoppingListEntryBulkCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['shoppingListEntryBulk'] == null) { + throw new runtime.RequiredError( + 'shoppingListEntryBulk', + 'Required parameter "shoppingListEntryBulk" was null or undefined when calling apiShoppingListEntryBulkCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/bulk/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ShoppingListEntryBulkToJSON(requestParameters['shoppingListEntryBulk']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListEntryBulkFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListEntryBulkCreate(requestParameters: ApiShoppingListEntryBulkCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListEntryBulkCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListEntryCreateRaw(requestParameters: ApiShoppingListEntryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['shoppingListEntry'] == null) { + throw new runtime.RequiredError( + 'shoppingListEntry', + 'Required parameter "shoppingListEntry" was null or undefined when calling apiShoppingListEntryCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ShoppingListEntryToJSON(requestParameters['shoppingListEntry']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListEntryFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListEntryCreate(requestParameters: ApiShoppingListEntryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListEntryCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListEntryDestroyRaw(requestParameters: ApiShoppingListEntryDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListEntryDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiShoppingListEntryDestroy(requestParameters: ApiShoppingListEntryDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiShoppingListEntryDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiShoppingListEntryListRaw(requestParameters: ApiShoppingListEntryListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['checked'] != null) { + queryParameters['checked'] = requestParameters['checked']; + } + + if (requestParameters['id'] != null) { + queryParameters['id'] = requestParameters['id']; + } + + if (requestParameters['supermarket'] != null) { + queryParameters['supermarket'] = requestParameters['supermarket']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ShoppingListEntryFromJSON)); + } + + /** + */ + async apiShoppingListEntryList(requestParameters: ApiShoppingListEntryListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiShoppingListEntryListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListEntryPartialUpdateRaw(requestParameters: ApiShoppingListEntryPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListEntryPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedShoppingListEntryToJSON(requestParameters['patchedShoppingListEntry']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListEntryFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListEntryPartialUpdate(requestParameters: ApiShoppingListEntryPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListEntryPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListEntryRetrieveRaw(requestParameters: ApiShoppingListEntryRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListEntryRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListEntryFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListEntryRetrieve(requestParameters: ApiShoppingListEntryRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListEntryRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListEntryUpdateRaw(requestParameters: ApiShoppingListEntryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListEntryUpdate().' + ); + } + + if (requestParameters['shoppingListEntry'] == null) { + throw new runtime.RequiredError( + 'shoppingListEntry', + 'Required parameter "shoppingListEntry" was null or undefined when calling apiShoppingListEntryUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-entry/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: ShoppingListEntryToJSON(requestParameters['shoppingListEntry']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListEntryFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListEntryUpdate(requestParameters: ApiShoppingListEntryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListEntryUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListRecipeCreateRaw(requestParameters: ApiShoppingListRecipeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['shoppingListRecipe'] == null) { + throw new runtime.RequiredError( + 'shoppingListRecipe', + 'Required parameter "shoppingListRecipe" was null or undefined when calling apiShoppingListRecipeCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-recipe/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ShoppingListRecipeToJSON(requestParameters['shoppingListRecipe']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListRecipeFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListRecipeCreate(requestParameters: ApiShoppingListRecipeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListRecipeCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListRecipeDestroyRaw(requestParameters: ApiShoppingListRecipeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListRecipeDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiShoppingListRecipeDestroy(requestParameters: ApiShoppingListRecipeDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiShoppingListRecipeDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiShoppingListRecipeListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-recipe/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ShoppingListRecipeFromJSON)); + } + + /** + */ + async apiShoppingListRecipeList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiShoppingListRecipeListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListRecipePartialUpdateRaw(requestParameters: ApiShoppingListRecipePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListRecipePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedShoppingListRecipeToJSON(requestParameters['patchedShoppingListRecipe']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListRecipeFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListRecipePartialUpdate(requestParameters: ApiShoppingListRecipePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListRecipePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListRecipeRetrieveRaw(requestParameters: ApiShoppingListRecipeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListRecipeRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListRecipeFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListRecipeRetrieve(requestParameters: ApiShoppingListRecipeRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListRecipeRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiShoppingListRecipeUpdateRaw(requestParameters: ApiShoppingListRecipeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiShoppingListRecipeUpdate().' + ); + } + + if (requestParameters['shoppingListRecipe'] == null) { + throw new runtime.RequiredError( + 'shoppingListRecipe', + 'Required parameter "shoppingListRecipe" was null or undefined when calling apiShoppingListRecipeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/shopping-list-recipe/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: ShoppingListRecipeToJSON(requestParameters['shoppingListRecipe']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ShoppingListRecipeFromJSON(jsonValue)); + } + + /** + */ + async apiShoppingListRecipeUpdate(requestParameters: ApiShoppingListRecipeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiShoppingListRecipeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSpaceListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/space/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SpaceFromJSON)); + } + + /** + */ + async apiSpaceList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiSpaceListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiSpacePartialUpdateRaw(requestParameters: ApiSpacePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSpacePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/space/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedSpaceToJSON(requestParameters['patchedSpace']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SpaceFromJSON(jsonValue)); + } + + /** + */ + async apiSpacePartialUpdate(requestParameters: ApiSpacePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSpacePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSpaceRetrieveRaw(requestParameters: ApiSpaceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSpaceRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/space/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SpaceFromJSON(jsonValue)); + } + + /** + */ + async apiSpaceRetrieve(requestParameters: ApiSpaceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSpaceRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStepCreateRaw(requestParameters: ApiStepCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['step'] == null) { + throw new runtime.RequiredError( + 'step', + 'Required parameter "step" was null or undefined when calling apiStepCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/step/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: StepToJSON(requestParameters['step']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StepFromJSON(jsonValue)); + } + + /** + */ + async apiStepCreate(requestParameters: ApiStepCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStepCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStepDestroyRaw(requestParameters: ApiStepDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStepDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/step/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiStepDestroy(requestParameters: ApiStepDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiStepDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiStepListRaw(requestParameters: ApiStepListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['recipe'] != null) { + queryParameters['recipe'] = requestParameters['recipe']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/step/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedStepListFromJSON(jsonValue)); + } + + /** + */ + async apiStepList(requestParameters: ApiStepListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStepListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStepPartialUpdateRaw(requestParameters: ApiStepPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStepPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/step/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedStepToJSON(requestParameters['patchedStep']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StepFromJSON(jsonValue)); + } + + /** + */ + async apiStepPartialUpdate(requestParameters: ApiStepPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStepPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStepRetrieveRaw(requestParameters: ApiStepRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStepRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/step/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StepFromJSON(jsonValue)); + } + + /** + */ + async apiStepRetrieve(requestParameters: ApiStepRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStepRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStepUpdateRaw(requestParameters: ApiStepUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStepUpdate().' + ); + } + + if (requestParameters['step'] == null) { + throw new runtime.RequiredError( + 'step', + 'Required parameter "step" was null or undefined when calling apiStepUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/step/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: StepToJSON(requestParameters['step']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StepFromJSON(jsonValue)); + } + + /** + */ + async apiStepUpdate(requestParameters: ApiStepUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStepUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStorageCreateRaw(requestParameters: ApiStorageCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['storage'] == null) { + throw new runtime.RequiredError( + 'storage', + 'Required parameter "storage" was null or undefined when calling apiStorageCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/storage/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: StorageToJSON(requestParameters['storage']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StorageFromJSON(jsonValue)); + } + + /** + */ + async apiStorageCreate(requestParameters: ApiStorageCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStorageCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStorageDestroyRaw(requestParameters: ApiStorageDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStorageDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/storage/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiStorageDestroy(requestParameters: ApiStorageDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiStorageDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiStorageListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/storage/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(StorageFromJSON)); + } + + /** + */ + async apiStorageList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiStorageListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiStoragePartialUpdateRaw(requestParameters: ApiStoragePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStoragePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/storage/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedStorageToJSON(requestParameters['patchedStorage']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StorageFromJSON(jsonValue)); + } + + /** + */ + async apiStoragePartialUpdate(requestParameters: ApiStoragePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStoragePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStorageRetrieveRaw(requestParameters: ApiStorageRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStorageRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/storage/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StorageFromJSON(jsonValue)); + } + + /** + */ + async apiStorageRetrieve(requestParameters: ApiStorageRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStorageRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiStorageUpdateRaw(requestParameters: ApiStorageUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiStorageUpdate().' + ); + } + + if (requestParameters['storage'] == null) { + throw new runtime.RequiredError( + 'storage', + 'Required parameter "storage" was null or undefined when calling apiStorageUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/storage/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: StorageToJSON(requestParameters['storage']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => StorageFromJSON(jsonValue)); + } + + /** + */ + async apiStorageUpdate(requestParameters: ApiStorageUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiStorageUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryCreateRaw(requestParameters: ApiSupermarketCategoryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['supermarketCategory'] == null) { + throw new runtime.RequiredError( + 'supermarketCategory', + 'Required parameter "supermarketCategory" was null or undefined when calling apiSupermarketCategoryCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SupermarketCategoryToJSON(requestParameters['supermarketCategory']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryCreate(requestParameters: ApiSupermarketCategoryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryDestroyRaw(requestParameters: ApiSupermarketCategoryDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiSupermarketCategoryDestroy(requestParameters: ApiSupermarketCategoryDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiSupermarketCategoryDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiSupermarketCategoryListRaw(requestParameters: ApiSupermarketCategoryListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SupermarketCategoryFromJSON)); + } + + /** + */ + async apiSupermarketCategoryList(requestParameters: ApiSupermarketCategoryListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiSupermarketCategoryListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryMergeUpdateRaw(requestParameters: ApiSupermarketCategoryMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryMergeUpdate().' + ); + } + + if (requestParameters['target'] == null) { + throw new runtime.RequiredError( + 'target', + 'Required parameter "target" was null or undefined when calling apiSupermarketCategoryMergeUpdate().' + ); + } + + if (requestParameters['supermarketCategory'] == null) { + throw new runtime.RequiredError( + 'supermarketCategory', + 'Required parameter "supermarketCategory" was null or undefined when calling apiSupermarketCategoryMergeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/{id}/merge/{target}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"target"}}`, encodeURIComponent(String(requestParameters['target']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: SupermarketCategoryToJSON(requestParameters['supermarketCategory']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryMergeUpdate(requestParameters: ApiSupermarketCategoryMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryMergeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryPartialUpdateRaw(requestParameters: ApiSupermarketCategoryPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedSupermarketCategoryToJSON(requestParameters['patchedSupermarketCategory']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryPartialUpdate(requestParameters: ApiSupermarketCategoryPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryRelationCreateRaw(requestParameters: ApiSupermarketCategoryRelationCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['supermarketCategoryRelation'] == null) { + throw new runtime.RequiredError( + 'supermarketCategoryRelation', + 'Required parameter "supermarketCategoryRelation" was null or undefined when calling apiSupermarketCategoryRelationCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category-relation/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SupermarketCategoryRelationToJSON(requestParameters['supermarketCategoryRelation']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryRelationFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryRelationCreate(requestParameters: ApiSupermarketCategoryRelationCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryRelationCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryRelationDestroyRaw(requestParameters: ApiSupermarketCategoryRelationDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryRelationDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category-relation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiSupermarketCategoryRelationDestroy(requestParameters: ApiSupermarketCategoryRelationDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiSupermarketCategoryRelationDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiSupermarketCategoryRelationListRaw(requestParameters: ApiSupermarketCategoryRelationListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category-relation/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedSupermarketCategoryRelationListFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryRelationList(requestParameters: ApiSupermarketCategoryRelationListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryRelationListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryRelationPartialUpdateRaw(requestParameters: ApiSupermarketCategoryRelationPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryRelationPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category-relation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedSupermarketCategoryRelationToJSON(requestParameters['patchedSupermarketCategoryRelation']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryRelationFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryRelationPartialUpdate(requestParameters: ApiSupermarketCategoryRelationPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryRelationPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryRelationRetrieveRaw(requestParameters: ApiSupermarketCategoryRelationRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryRelationRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category-relation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryRelationFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryRelationRetrieve(requestParameters: ApiSupermarketCategoryRelationRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryRelationRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryRelationUpdateRaw(requestParameters: ApiSupermarketCategoryRelationUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryRelationUpdate().' + ); + } + + if (requestParameters['supermarketCategoryRelation'] == null) { + throw new runtime.RequiredError( + 'supermarketCategoryRelation', + 'Required parameter "supermarketCategoryRelation" was null or undefined when calling apiSupermarketCategoryRelationUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category-relation/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: SupermarketCategoryRelationToJSON(requestParameters['supermarketCategoryRelation']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryRelationFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryRelationUpdate(requestParameters: ApiSupermarketCategoryRelationUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryRelationUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryRetrieveRaw(requestParameters: ApiSupermarketCategoryRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryRetrieve(requestParameters: ApiSupermarketCategoryRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCategoryUpdateRaw(requestParameters: ApiSupermarketCategoryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketCategoryUpdate().' + ); + } + + if (requestParameters['supermarketCategory'] == null) { + throw new runtime.RequiredError( + 'supermarketCategory', + 'Required parameter "supermarketCategory" was null or undefined when calling apiSupermarketCategoryUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket-category/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: SupermarketCategoryToJSON(requestParameters['supermarketCategory']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketCategoryFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCategoryUpdate(requestParameters: ApiSupermarketCategoryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCategoryUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketCreateRaw(requestParameters: ApiSupermarketCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['supermarket'] == null) { + throw new runtime.RequiredError( + 'supermarket', + 'Required parameter "supermarket" was null or undefined when calling apiSupermarketCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SupermarketToJSON(requestParameters['supermarket']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketCreate(requestParameters: ApiSupermarketCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketDestroyRaw(requestParameters: ApiSupermarketDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiSupermarketDestroy(requestParameters: ApiSupermarketDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiSupermarketDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiSupermarketListRaw(requestParameters: ApiSupermarketListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SupermarketFromJSON)); + } + + /** + */ + async apiSupermarketList(requestParameters: ApiSupermarketListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiSupermarketListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketPartialUpdateRaw(requestParameters: ApiSupermarketPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedSupermarketToJSON(requestParameters['patchedSupermarket']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketPartialUpdate(requestParameters: ApiSupermarketPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketRetrieveRaw(requestParameters: ApiSupermarketRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketRetrieve(requestParameters: ApiSupermarketRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSupermarketUpdateRaw(requestParameters: ApiSupermarketUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSupermarketUpdate().' + ); + } + + if (requestParameters['supermarket'] == null) { + throw new runtime.RequiredError( + 'supermarket', + 'Required parameter "supermarket" was null or undefined when calling apiSupermarketUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/supermarket/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: SupermarketToJSON(requestParameters['supermarket']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SupermarketFromJSON(jsonValue)); + } + + /** + */ + async apiSupermarketUpdate(requestParameters: ApiSupermarketUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSupermarketUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * api endpoint to switch space function + */ + async apiSwitchActiveSpaceRetrieveRaw(requestParameters: ApiSwitchActiveSpaceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['spaceId'] == null) { + throw new runtime.RequiredError( + 'spaceId', + 'Required parameter "spaceId" was null or undefined when calling apiSwitchActiveSpaceRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/switch-active-space/{spaceId}/`.replace(`{${"spaceId"}}`, encodeURIComponent(String(requestParameters['spaceId']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * api endpoint to switch space function + */ + async apiSwitchActiveSpaceRetrieve(requestParameters: ApiSwitchActiveSpaceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiSwitchActiveSpaceRetrieveRaw(requestParameters, initOverrides); + } + + /** + */ + async apiSyncCreateRaw(requestParameters: ApiSyncCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['sync'] == null) { + throw new runtime.RequiredError( + 'sync', + 'Required parameter "sync" was null or undefined when calling apiSyncCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SyncToJSON(requestParameters['sync']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SyncFromJSON(jsonValue)); + } + + /** + */ + async apiSyncCreate(requestParameters: ApiSyncCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSyncCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSyncDestroyRaw(requestParameters: ApiSyncDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSyncDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiSyncDestroy(requestParameters: ApiSyncDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiSyncDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiSyncListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SyncFromJSON)); + } + + /** + */ + async apiSyncList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiSyncListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiSyncLogListRaw(requestParameters: ApiSyncLogListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync-log/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedSyncLogListFromJSON(jsonValue)); + } + + /** + */ + async apiSyncLogList(requestParameters: ApiSyncLogListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSyncLogListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSyncLogRetrieveRaw(requestParameters: ApiSyncLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSyncLogRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SyncLogFromJSON(jsonValue)); + } + + /** + */ + async apiSyncLogRetrieve(requestParameters: ApiSyncLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSyncLogRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSyncPartialUpdateRaw(requestParameters: ApiSyncPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSyncPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedSyncToJSON(requestParameters['patchedSync']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SyncFromJSON(jsonValue)); + } + + /** + */ + async apiSyncPartialUpdate(requestParameters: ApiSyncPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSyncPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSyncRetrieveRaw(requestParameters: ApiSyncRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSyncRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SyncFromJSON(jsonValue)); + } + + /** + */ + async apiSyncRetrieve(requestParameters: ApiSyncRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSyncRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiSyncUpdateRaw(requestParameters: ApiSyncUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiSyncUpdate().' + ); + } + + if (requestParameters['sync'] == null) { + throw new runtime.RequiredError( + 'sync', + 'Required parameter "sync" was null or undefined when calling apiSyncUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/sync/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: SyncToJSON(requestParameters['sync']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SyncFromJSON(jsonValue)); + } + + /** + */ + async apiSyncUpdate(requestParameters: ApiSyncUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiSyncUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitConversionCreateRaw(requestParameters: ApiUnitConversionCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['unitConversion'] == null) { + throw new runtime.RequiredError( + 'unitConversion', + 'Required parameter "unitConversion" was null or undefined when calling apiUnitConversionCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit-conversion/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: UnitConversionToJSON(requestParameters['unitConversion']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitConversionFromJSON(jsonValue)); + } + + /** + */ + async apiUnitConversionCreate(requestParameters: ApiUnitConversionCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitConversionCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitConversionDestroyRaw(requestParameters: ApiUnitConversionDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitConversionDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit-conversion/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiUnitConversionDestroy(requestParameters: ApiUnitConversionDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiUnitConversionDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiUnitConversionListRaw(requestParameters: ApiUnitConversionListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['foodId'] != null) { + queryParameters['food_id'] = requestParameters['foodId']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit-conversion/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UnitConversionFromJSON)); + } + + /** + */ + async apiUnitConversionList(requestParameters: ApiUnitConversionListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiUnitConversionListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitConversionPartialUpdateRaw(requestParameters: ApiUnitConversionPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitConversionPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit-conversion/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedUnitConversionToJSON(requestParameters['patchedUnitConversion']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitConversionFromJSON(jsonValue)); + } + + /** + */ + async apiUnitConversionPartialUpdate(requestParameters: ApiUnitConversionPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitConversionPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitConversionRetrieveRaw(requestParameters: ApiUnitConversionRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitConversionRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit-conversion/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitConversionFromJSON(jsonValue)); + } + + /** + */ + async apiUnitConversionRetrieve(requestParameters: ApiUnitConversionRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitConversionRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitConversionUpdateRaw(requestParameters: ApiUnitConversionUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitConversionUpdate().' + ); + } + + if (requestParameters['unitConversion'] == null) { + throw new runtime.RequiredError( + 'unitConversion', + 'Required parameter "unitConversion" was null or undefined when calling apiUnitConversionUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit-conversion/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: UnitConversionToJSON(requestParameters['unitConversion']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitConversionFromJSON(jsonValue)); + } + + /** + */ + async apiUnitConversionUpdate(requestParameters: ApiUnitConversionUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitConversionUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitCreateRaw(requestParameters: ApiUnitCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['unit'] == null) { + throw new runtime.RequiredError( + 'unit', + 'Required parameter "unit" was null or undefined when calling apiUnitCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: UnitToJSON(requestParameters['unit']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitFromJSON(jsonValue)); + } + + /** + */ + async apiUnitCreate(requestParameters: ApiUnitCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitDestroyRaw(requestParameters: ApiUnitDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiUnitDestroy(requestParameters: ApiUnitDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiUnitDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiUnitListRaw(requestParameters: ApiUnitListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedUnitListFromJSON(jsonValue)); + } + + /** + */ + async apiUnitList(requestParameters: ApiUnitListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitMergeUpdateRaw(requestParameters: ApiUnitMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitMergeUpdate().' + ); + } + + if (requestParameters['target'] == null) { + throw new runtime.RequiredError( + 'target', + 'Required parameter "target" was null or undefined when calling apiUnitMergeUpdate().' + ); + } + + if (requestParameters['unit'] == null) { + throw new runtime.RequiredError( + 'unit', + 'Required parameter "unit" was null or undefined when calling apiUnitMergeUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/{id}/merge/{target}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"target"}}`, encodeURIComponent(String(requestParameters['target']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: UnitToJSON(requestParameters['unit']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitFromJSON(jsonValue)); + } + + /** + */ + async apiUnitMergeUpdate(requestParameters: ApiUnitMergeUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitMergeUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitPartialUpdateRaw(requestParameters: ApiUnitPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedUnitToJSON(requestParameters['patchedUnit']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitFromJSON(jsonValue)); + } + + /** + */ + async apiUnitPartialUpdate(requestParameters: ApiUnitPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitRetrieveRaw(requestParameters: ApiUnitRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitFromJSON(jsonValue)); + } + + /** + */ + async apiUnitRetrieve(requestParameters: ApiUnitRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUnitUpdateRaw(requestParameters: ApiUnitUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUnitUpdate().' + ); + } + + if (requestParameters['unit'] == null) { + throw new runtime.RequiredError( + 'unit', + 'Required parameter "unit" was null or undefined when calling apiUnitUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/unit/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: UnitToJSON(requestParameters['unit']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UnitFromJSON(jsonValue)); + } + + /** + */ + async apiUnitUpdate(requestParameters: ApiUnitUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUnitUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserFileCreateRaw(requestParameters: ApiUserFileCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserFileCreate().' + ); + } + + if (requestParameters['name'] == null) { + throw new runtime.RequiredError( + 'name', + 'Required parameter "name" was null or undefined when calling apiUserFileCreate().' + ); + } + + if (requestParameters['file'] == null) { + throw new runtime.RequiredError( + 'file', + 'Required parameter "file" was null or undefined when calling apiUserFileCreate().' + ); + } + + if (requestParameters['fileDownload'] == null) { + throw new runtime.RequiredError( + 'fileDownload', + 'Required parameter "fileDownload" was null or undefined when calling apiUserFileCreate().' + ); + } + + if (requestParameters['preview'] == null) { + throw new runtime.RequiredError( + 'preview', + 'Required parameter "preview" was null or undefined when calling apiUserFileCreate().' + ); + } + + if (requestParameters['fileSizeKb'] == null) { + throw new runtime.RequiredError( + 'fileSizeKb', + 'Required parameter "fileSizeKb" was null or undefined when calling apiUserFileCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const consumes: runtime.Consume[] = [ + { contentType: 'multipart/form-data' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['id'] != null) { + formParams.append('id', requestParameters['id'] as any); + } + + if (requestParameters['name'] != null) { + formParams.append('name', requestParameters['name'] as any); + } + + if (requestParameters['file'] != null) { + formParams.append('file', requestParameters['file'] as any); + } + + if (requestParameters['fileDownload'] != null) { + formParams.append('file_download', requestParameters['fileDownload'] as any); + } + + if (requestParameters['preview'] != null) { + formParams.append('preview', requestParameters['preview'] as any); + } + + if (requestParameters['fileSizeKb'] != null) { + formParams.append('file_size_kb', requestParameters['fileSizeKb'] as any); + } + + const response = await this.request({ + path: `/api/user-file/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserFileFromJSON(jsonValue)); + } + + /** + */ + async apiUserFileCreate(requestParameters: ApiUserFileCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserFileCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserFileDestroyRaw(requestParameters: ApiUserFileDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserFileDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-file/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiUserFileDestroy(requestParameters: ApiUserFileDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiUserFileDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiUserFileListRaw(requestParameters: ApiUserFileListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + if (requestParameters['limit'] != null) { + queryParameters['limit'] = requestParameters['limit']; + } + + if (requestParameters['query'] != null) { + queryParameters['query'] = requestParameters['query']; + } + + if (requestParameters['random'] != null) { + queryParameters['random'] = requestParameters['random']; + } + + if (requestParameters['updatedAt'] != null) { + queryParameters['updated_at'] = requestParameters['updatedAt']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-file/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserFileFromJSON)); + } + + /** + */ + async apiUserFileList(requestParameters: ApiUserFileListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiUserFileListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserFilePartialUpdateRaw(requestParameters: ApiUserFilePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserFilePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const consumes: runtime.Consume[] = [ + { contentType: 'multipart/form-data' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['id2'] != null) { + formParams.append('id', requestParameters['id2'] as any); + } + + if (requestParameters['name'] != null) { + formParams.append('name', requestParameters['name'] as any); + } + + if (requestParameters['file'] != null) { + formParams.append('file', requestParameters['file'] as any); + } + + if (requestParameters['fileDownload'] != null) { + formParams.append('file_download', requestParameters['fileDownload'] as any); + } + + if (requestParameters['preview'] != null) { + formParams.append('preview', requestParameters['preview'] as any); + } + + if (requestParameters['fileSizeKb'] != null) { + formParams.append('file_size_kb', requestParameters['fileSizeKb'] as any); + } + + const response = await this.request({ + path: `/api/user-file/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserFileFromJSON(jsonValue)); + } + + /** + */ + async apiUserFilePartialUpdate(requestParameters: ApiUserFilePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserFilePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserFileRetrieveRaw(requestParameters: ApiUserFileRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserFileRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-file/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserFileFromJSON(jsonValue)); + } + + /** + */ + async apiUserFileRetrieve(requestParameters: ApiUserFileRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserFileRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserFileUpdateRaw(requestParameters: ApiUserFileUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserFileUpdate().' + ); + } + + if (requestParameters['id2'] == null) { + throw new runtime.RequiredError( + 'id2', + 'Required parameter "id2" was null or undefined when calling apiUserFileUpdate().' + ); + } + + if (requestParameters['name'] == null) { + throw new runtime.RequiredError( + 'name', + 'Required parameter "name" was null or undefined when calling apiUserFileUpdate().' + ); + } + + if (requestParameters['file'] == null) { + throw new runtime.RequiredError( + 'file', + 'Required parameter "file" was null or undefined when calling apiUserFileUpdate().' + ); + } + + if (requestParameters['fileDownload'] == null) { + throw new runtime.RequiredError( + 'fileDownload', + 'Required parameter "fileDownload" was null or undefined when calling apiUserFileUpdate().' + ); + } + + if (requestParameters['preview'] == null) { + throw new runtime.RequiredError( + 'preview', + 'Required parameter "preview" was null or undefined when calling apiUserFileUpdate().' + ); + } + + if (requestParameters['fileSizeKb'] == null) { + throw new runtime.RequiredError( + 'fileSizeKb', + 'Required parameter "fileSizeKb" was null or undefined when calling apiUserFileUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const consumes: runtime.Consume[] = [ + { contentType: 'multipart/form-data' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['id2'] != null) { + formParams.append('id', requestParameters['id2'] as any); + } + + if (requestParameters['name'] != null) { + formParams.append('name', requestParameters['name'] as any); + } + + if (requestParameters['file'] != null) { + formParams.append('file', requestParameters['file'] as any); + } + + if (requestParameters['fileDownload'] != null) { + formParams.append('file_download', requestParameters['fileDownload'] as any); + } + + if (requestParameters['preview'] != null) { + formParams.append('preview', requestParameters['preview'] as any); + } + + if (requestParameters['fileSizeKb'] != null) { + formParams.append('file_size_kb', requestParameters['fileSizeKb'] as any); + } + + const response = await this.request({ + path: `/api/user-file/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserFileFromJSON(jsonValue)); + } + + /** + */ + async apiUserFileUpdate(requestParameters: ApiUserFileUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserFileUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **filter_list**: array of user id\'s to get names for + */ + async apiUserListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserFromJSON)); + } + + /** + * list: optional parameters - **filter_list**: array of user id\'s to get names for + */ + async apiUserList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiUserListRaw(initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **filter_list**: array of user id\'s to get names for + */ + async apiUserPartialUpdateRaw(requestParameters: ApiUserPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedUserToJSON(requestParameters['patchedUser']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **filter_list**: array of user id\'s to get names for + */ + async apiUserPartialUpdate(requestParameters: ApiUserPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserPreferenceListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-preference/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserPreferenceFromJSON)); + } + + /** + */ + async apiUserPreferenceList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.apiUserPreferenceListRaw(initOverrides); + return await response.value(); + } + + /** + */ + async apiUserPreferencePartialUpdateRaw(requestParameters: ApiUserPreferencePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['user'] == null) { + throw new runtime.RequiredError( + 'user', + 'Required parameter "user" was null or undefined when calling apiUserPreferencePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-preference/{user}/`.replace(`{${"user"}}`, encodeURIComponent(String(requestParameters['user']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedUserPreferenceToJSON(requestParameters['patchedUserPreference']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserPreferenceFromJSON(jsonValue)); + } + + /** + */ + async apiUserPreferencePartialUpdate(requestParameters: ApiUserPreferencePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserPreferencePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserPreferenceRetrieveRaw(requestParameters: ApiUserPreferenceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['user'] == null) { + throw new runtime.RequiredError( + 'user', + 'Required parameter "user" was null or undefined when calling apiUserPreferenceRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-preference/{user}/`.replace(`{${"user"}}`, encodeURIComponent(String(requestParameters['user']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserPreferenceFromJSON(jsonValue)); + } + + /** + */ + async apiUserPreferenceRetrieve(requestParameters: ApiUserPreferenceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserPreferenceRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * list: optional parameters - **filter_list**: array of user id\'s to get names for + */ + async apiUserRetrieveRaw(requestParameters: ApiUserRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserFromJSON(jsonValue)); + } + + /** + * list: optional parameters - **filter_list**: array of user id\'s to get names for + */ + async apiUserRetrieve(requestParameters: ApiUserRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserSpaceDestroyRaw(requestParameters: ApiUserSpaceDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserSpaceDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-space/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiUserSpaceDestroy(requestParameters: ApiUserSpaceDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiUserSpaceDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiUserSpaceListRaw(requestParameters: ApiUserSpaceListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-space/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedUserSpaceListFromJSON(jsonValue)); + } + + /** + */ + async apiUserSpaceList(requestParameters: ApiUserSpaceListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserSpaceListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserSpacePartialUpdateRaw(requestParameters: ApiUserSpacePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserSpacePartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-space/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedUserSpaceToJSON(requestParameters['patchedUserSpace']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserSpaceFromJSON(jsonValue)); + } + + /** + */ + async apiUserSpacePartialUpdate(requestParameters: ApiUserSpacePartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserSpacePartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiUserSpaceRetrieveRaw(requestParameters: ApiUserSpaceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiUserSpaceRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/user-space/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => UserSpaceFromJSON(jsonValue)); + } + + /** + */ + async apiUserSpaceRetrieve(requestParameters: ApiUserSpaceRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiUserSpaceRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiViewLogCreateRaw(requestParameters: ApiViewLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['viewLog'] == null) { + throw new runtime.RequiredError( + 'viewLog', + 'Required parameter "viewLog" was null or undefined when calling apiViewLogCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/view-log/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ViewLogToJSON(requestParameters['viewLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ViewLogFromJSON(jsonValue)); + } + + /** + */ + async apiViewLogCreate(requestParameters: ApiViewLogCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiViewLogCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiViewLogDestroyRaw(requestParameters: ApiViewLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiViewLogDestroy().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/view-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiViewLogDestroy(requestParameters: ApiViewLogDestroyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiViewLogDestroyRaw(requestParameters, initOverrides); + } + + /** + */ + async apiViewLogListRaw(requestParameters: ApiViewLogListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + if (requestParameters['pageSize'] != null) { + queryParameters['page_size'] = requestParameters['pageSize']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/view-log/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => PaginatedViewLogListFromJSON(jsonValue)); + } + + /** + */ + async apiViewLogList(requestParameters: ApiViewLogListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiViewLogListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiViewLogPartialUpdateRaw(requestParameters: ApiViewLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiViewLogPartialUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/view-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: PatchedViewLogToJSON(requestParameters['patchedViewLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ViewLogFromJSON(jsonValue)); + } + + /** + */ + async apiViewLogPartialUpdate(requestParameters: ApiViewLogPartialUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiViewLogPartialUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiViewLogRetrieveRaw(requestParameters: ApiViewLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiViewLogRetrieve().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/view-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ViewLogFromJSON(jsonValue)); + } + + /** + */ + async apiViewLogRetrieve(requestParameters: ApiViewLogRetrieveRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiViewLogRetrieveRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async apiViewLogUpdateRaw(requestParameters: ApiViewLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['id'] == null) { + throw new runtime.RequiredError( + 'id', + 'Required parameter "id" was null or undefined when calling apiViewLogUpdate().' + ); + } + + if (requestParameters['viewLog'] == null) { + throw new runtime.RequiredError( + 'viewLog', + 'Required parameter "viewLog" was null or undefined when calling apiViewLogUpdate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api/view-log/{id}/`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), + method: 'PUT', + headers: headerParameters, + query: queryParameters, + body: ViewLogToJSON(requestParameters['viewLog']), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => ViewLogFromJSON(jsonValue)); + } + + /** + */ + async apiViewLogUpdate(requestParameters: ApiViewLogUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiViewLogUpdateRaw(requestParameters, initOverrides); + return await response.value(); + } + +} + +/** + * @export + */ +export const ApiAutomationListTypeEnum = { + DescriptionReplace: 'DESCRIPTION_REPLACE', + FoodAlias: 'FOOD_ALIAS', + FoodReplace: 'FOOD_REPLACE', + InstructionReplace: 'INSTRUCTION_REPLACE', + KeywordAlias: 'KEYWORD_ALIAS', + NameReplace: 'NAME_REPLACE', + NeverUnit: 'NEVER_UNIT', + TransposeWords: 'TRANSPOSE_WORDS', + UnitAlias: 'UNIT_ALIAS', + UnitReplace: 'UNIT_REPLACE' +} as const; +export type ApiAutomationListTypeEnum = typeof ApiAutomationListTypeEnum[keyof typeof ApiAutomationListTypeEnum]; diff --git a/vue3/apis/ApiImportOpenDataApi.ts b/vue3/apis/ApiImportOpenDataApi.ts new file mode 100644 index 000000000..ae4e47044 --- /dev/null +++ b/vue3/apis/ApiImportOpenDataApi.ts @@ -0,0 +1,77 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; + +/** + * + */ +export class ApiImportOpenDataApi extends runtime.BaseAPI { + + /** + */ + async apiImportOpenDataCreateRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api-import-open-data/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiImportOpenDataCreate(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiImportOpenDataCreateRaw(initOverrides); + } + + /** + */ + async apiImportOpenDataRetrieveRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const response = await this.request({ + path: `/api-import-open-data/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async apiImportOpenDataRetrieve(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.apiImportOpenDataRetrieveRaw(initOverrides); + } + +} diff --git a/vue3/apis/ApiTokenAuthApi.ts b/vue3/apis/ApiTokenAuthApi.ts new file mode 100644 index 000000000..066ad9400 --- /dev/null +++ b/vue3/apis/ApiTokenAuthApi.ts @@ -0,0 +1,114 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + AuthToken, +} from '../models/index'; +import { + AuthTokenFromJSON, + AuthTokenToJSON, +} from '../models/index'; + +export interface ApiTokenAuthCreateRequest { + username: string; + password: string; + token: string; +} + +/** + * + */ +export class ApiTokenAuthApi extends runtime.BaseAPI { + + /** + */ + async apiTokenAuthCreateRaw(requestParameters: ApiTokenAuthCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['username'] == null) { + throw new runtime.RequiredError( + 'username', + 'Required parameter "username" was null or undefined when calling apiTokenAuthCreate().' + ); + } + + if (requestParameters['password'] == null) { + throw new runtime.RequiredError( + 'password', + 'Required parameter "password" was null or undefined when calling apiTokenAuthCreate().' + ); + } + + if (requestParameters['token'] == null) { + throw new runtime.RequiredError( + 'token', + 'Required parameter "token" was null or undefined when calling apiTokenAuthCreate().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication + } + + const consumes: runtime.Consume[] = [ + { contentType: 'application/x-www-form-urlencoded' }, + { contentType: 'multipart/form-data' }, + { contentType: 'application/json' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['username'] != null) { + formParams.append('username', requestParameters['username'] as any); + } + + if (requestParameters['password'] != null) { + formParams.append('password', requestParameters['password'] as any); + } + + if (requestParameters['token'] != null) { + formParams.append('token', requestParameters['token'] as any); + } + + const response = await this.request({ + path: `/api-token-auth/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AuthTokenFromJSON(jsonValue)); + } + + /** + */ + async apiTokenAuthCreate(requestParameters: ApiTokenAuthCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.apiTokenAuthCreateRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/vue3/apis/index.ts b/vue3/apis/index.ts new file mode 100644 index 000000000..c0bfc0f51 --- /dev/null +++ b/vue3/apis/index.ts @@ -0,0 +1,5 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './ApiApi'; +export * from './ApiImportOpenDataApi'; +export * from './ApiTokenAuthApi'; diff --git a/vue3/index.ts b/vue3/index.ts new file mode 100644 index 000000000..bebe8bbbe --- /dev/null +++ b/vue3/index.ts @@ -0,0 +1,5 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './runtime'; +export * from './apis/index'; +export * from './models/index'; diff --git a/vue3/models/AccessToken.ts b/vue3/models/AccessToken.ts new file mode 100644 index 000000000..82bf70220 --- /dev/null +++ b/vue3/models/AccessToken.ts @@ -0,0 +1,101 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface AccessToken + */ +export interface AccessToken { + /** + * + * @type {number} + * @memberof AccessToken + */ + readonly id: number; + /** + * + * @type {string} + * @memberof AccessToken + */ + readonly token: string; + /** + * + * @type {Date} + * @memberof AccessToken + */ + expires: Date; + /** + * + * @type {string} + * @memberof AccessToken + */ + scope?: string; + /** + * + * @type {Date} + * @memberof AccessToken + */ + readonly created: Date; + /** + * + * @type {Date} + * @memberof AccessToken + */ + readonly updated: Date; +} + +/** + * Check if a given object implements the AccessToken interface. + */ +export function instanceOfAccessToken(value: object): boolean { + if (!('id' in value)) return false; + if (!('token' in value)) return false; + if (!('expires' in value)) return false; + if (!('created' in value)) return false; + if (!('updated' in value)) return false; + return true; +} + +export function AccessTokenFromJSON(json: any): AccessToken { + return AccessTokenFromJSONTyped(json, false); +} + +export function AccessTokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): AccessToken { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'token': json['token'], + 'expires': (new Date(json['expires'])), + 'scope': json['scope'] == null ? undefined : json['scope'], + 'created': (new Date(json['created'])), + 'updated': (new Date(json['updated'])), + }; +} + +export function AccessTokenToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'expires': ((value['expires']).toISOString()), + 'scope': value['scope'], + }; +} + diff --git a/vue3/models/AuthToken.ts b/vue3/models/AuthToken.ts new file mode 100644 index 000000000..222c4bee2 --- /dev/null +++ b/vue3/models/AuthToken.ts @@ -0,0 +1,78 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface AuthToken + */ +export interface AuthToken { + /** + * + * @type {string} + * @memberof AuthToken + */ + username: string; + /** + * + * @type {string} + * @memberof AuthToken + */ + password: string; + /** + * + * @type {string} + * @memberof AuthToken + */ + readonly token: string; +} + +/** + * Check if a given object implements the AuthToken interface. + */ +export function instanceOfAuthToken(value: object): boolean { + if (!('username' in value)) return false; + if (!('password' in value)) return false; + if (!('token' in value)) return false; + return true; +} + +export function AuthTokenFromJSON(json: any): AuthToken { + return AuthTokenFromJSONTyped(json, false); +} + +export function AuthTokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): AuthToken { + if (json == null) { + return json; + } + return { + + 'username': json['username'], + 'password': json['password'], + 'token': json['token'], + }; +} + +export function AuthTokenToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'username': value['username'], + 'password': value['password'], + }; +} + diff --git a/vue3/models/Automation.ts b/vue3/models/Automation.ts new file mode 100644 index 000000000..ec1b43054 --- /dev/null +++ b/vue3/models/Automation.ts @@ -0,0 +1,140 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { TypeEnum } from './TypeEnum'; +import { + TypeEnumFromJSON, + TypeEnumFromJSONTyped, + TypeEnumToJSON, +} from './TypeEnum'; + +/** + * + * @export + * @interface Automation + */ +export interface Automation { + /** + * + * @type {number} + * @memberof Automation + */ + readonly id: number; + /** + * + * @type {TypeEnum} + * @memberof Automation + */ + type: TypeEnum; + /** + * + * @type {string} + * @memberof Automation + */ + name?: string; + /** + * + * @type {string} + * @memberof Automation + */ + description?: string; + /** + * + * @type {string} + * @memberof Automation + */ + param1?: string; + /** + * + * @type {string} + * @memberof Automation + */ + param2?: string; + /** + * + * @type {string} + * @memberof Automation + */ + param3?: string; + /** + * + * @type {number} + * @memberof Automation + */ + order?: number; + /** + * + * @type {boolean} + * @memberof Automation + */ + disabled?: boolean; + /** + * + * @type {number} + * @memberof Automation + */ + readonly createdBy: number; +} + +/** + * Check if a given object implements the Automation interface. + */ +export function instanceOfAutomation(value: object): boolean { + if (!('id' in value)) return false; + if (!('type' in value)) return false; + if (!('createdBy' in value)) return false; + return true; +} + +export function AutomationFromJSON(json: any): Automation { + return AutomationFromJSONTyped(json, false); +} + +export function AutomationFromJSONTyped(json: any, ignoreDiscriminator: boolean): Automation { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'type': TypeEnumFromJSON(json['type']), + 'name': json['name'] == null ? undefined : json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'param1': json['param_1'] == null ? undefined : json['param_1'], + 'param2': json['param_2'] == null ? undefined : json['param_2'], + 'param3': json['param_3'] == null ? undefined : json['param_3'], + 'order': json['order'] == null ? undefined : json['order'], + 'disabled': json['disabled'] == null ? undefined : json['disabled'], + 'createdBy': json['created_by'], + }; +} + +export function AutomationToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'type': TypeEnumToJSON(value['type']), + 'name': value['name'], + 'description': value['description'], + 'param_1': value['param1'], + 'param_2': value['param2'], + 'param_3': value['param3'], + 'order': value['order'], + 'disabled': value['disabled'], + }; +} + diff --git a/vue3/models/BookmarkletImport.ts b/vue3/models/BookmarkletImport.ts new file mode 100644 index 000000000..942f16f45 --- /dev/null +++ b/vue3/models/BookmarkletImport.ts @@ -0,0 +1,93 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface BookmarkletImport + */ +export interface BookmarkletImport { + /** + * + * @type {number} + * @memberof BookmarkletImport + */ + readonly id: number; + /** + * + * @type {string} + * @memberof BookmarkletImport + */ + url?: string; + /** + * + * @type {string} + * @memberof BookmarkletImport + */ + html: string; + /** + * + * @type {number} + * @memberof BookmarkletImport + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof BookmarkletImport + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the BookmarkletImport interface. + */ +export function instanceOfBookmarkletImport(value: object): boolean { + if (!('id' in value)) return false; + if (!('html' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function BookmarkletImportFromJSON(json: any): BookmarkletImport { + return BookmarkletImportFromJSONTyped(json, false); +} + +export function BookmarkletImportFromJSONTyped(json: any, ignoreDiscriminator: boolean): BookmarkletImport { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'url': json['url'] == null ? undefined : json['url'], + 'html': json['html'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function BookmarkletImportToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'url': value['url'], + 'html': value['html'], + }; +} + diff --git a/vue3/models/BookmarkletImportList.ts b/vue3/models/BookmarkletImportList.ts new file mode 100644 index 000000000..4238eb967 --- /dev/null +++ b/vue3/models/BookmarkletImportList.ts @@ -0,0 +1,84 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface BookmarkletImportList + */ +export interface BookmarkletImportList { + /** + * + * @type {number} + * @memberof BookmarkletImportList + */ + readonly id: number; + /** + * + * @type {string} + * @memberof BookmarkletImportList + */ + url?: string; + /** + * + * @type {number} + * @memberof BookmarkletImportList + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof BookmarkletImportList + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the BookmarkletImportList interface. + */ +export function instanceOfBookmarkletImportList(value: object): boolean { + if (!('id' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function BookmarkletImportListFromJSON(json: any): BookmarkletImportList { + return BookmarkletImportListFromJSONTyped(json, false); +} + +export function BookmarkletImportListFromJSONTyped(json: any, ignoreDiscriminator: boolean): BookmarkletImportList { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'url': json['url'] == null ? undefined : json['url'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function BookmarkletImportListToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'url': value['url'], + }; +} + diff --git a/vue3/models/ConnectorConfigConfig.ts b/vue3/models/ConnectorConfigConfig.ts new file mode 100644 index 000000000..321aef807 --- /dev/null +++ b/vue3/models/ConnectorConfigConfig.ts @@ -0,0 +1,133 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ConnectorConfigConfig + */ +export interface ConnectorConfigConfig { + /** + * + * @type {number} + * @memberof ConnectorConfigConfig + */ + readonly id: number; + /** + * + * @type {string} + * @memberof ConnectorConfigConfig + */ + name: string; + /** + * + * @type {string} + * @memberof ConnectorConfigConfig + */ + url?: string; + /** + * + * @type {string} + * @memberof ConnectorConfigConfig + */ + token?: string; + /** + * + * @type {string} + * @memberof ConnectorConfigConfig + */ + todoEntity?: string; + /** + * Is Connector Enabled + * @type {boolean} + * @memberof ConnectorConfigConfig + */ + enabled?: boolean; + /** + * + * @type {boolean} + * @memberof ConnectorConfigConfig + */ + onShoppingListEntryCreatedEnabled?: boolean; + /** + * + * @type {boolean} + * @memberof ConnectorConfigConfig + */ + onShoppingListEntryUpdatedEnabled?: boolean; + /** + * + * @type {boolean} + * @memberof ConnectorConfigConfig + */ + onShoppingListEntryDeletedEnabled?: boolean; + /** + * + * @type {number} + * @memberof ConnectorConfigConfig + */ + readonly createdBy: number; +} + +/** + * Check if a given object implements the ConnectorConfigConfig interface. + */ +export function instanceOfConnectorConfigConfig(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('createdBy' in value)) return false; + return true; +} + +export function ConnectorConfigConfigFromJSON(json: any): ConnectorConfigConfig { + return ConnectorConfigConfigFromJSONTyped(json, false); +} + +export function ConnectorConfigConfigFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConnectorConfigConfig { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'url': json['url'] == null ? undefined : json['url'], + 'token': json['token'] == null ? undefined : json['token'], + 'todoEntity': json['todo_entity'] == null ? undefined : json['todo_entity'], + 'enabled': json['enabled'] == null ? undefined : json['enabled'], + 'onShoppingListEntryCreatedEnabled': json['on_shopping_list_entry_created_enabled'] == null ? undefined : json['on_shopping_list_entry_created_enabled'], + 'onShoppingListEntryUpdatedEnabled': json['on_shopping_list_entry_updated_enabled'] == null ? undefined : json['on_shopping_list_entry_updated_enabled'], + 'onShoppingListEntryDeletedEnabled': json['on_shopping_list_entry_deleted_enabled'] == null ? undefined : json['on_shopping_list_entry_deleted_enabled'], + 'createdBy': json['created_by'], + }; +} + +export function ConnectorConfigConfigToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'url': value['url'], + 'token': value['token'], + 'todo_entity': value['todoEntity'], + 'enabled': value['enabled'], + 'on_shopping_list_entry_created_enabled': value['onShoppingListEntryCreatedEnabled'], + 'on_shopping_list_entry_updated_enabled': value['onShoppingListEntryUpdatedEnabled'], + 'on_shopping_list_entry_deleted_enabled': value['onShoppingListEntryDeletedEnabled'], + }; +} + diff --git a/vue3/models/CookLog.ts b/vue3/models/CookLog.ts new file mode 100644 index 000000000..4f549e29c --- /dev/null +++ b/vue3/models/CookLog.ts @@ -0,0 +1,124 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * + * @export + * @interface CookLog + */ +export interface CookLog { + /** + * + * @type {number} + * @memberof CookLog + */ + readonly id: number; + /** + * + * @type {number} + * @memberof CookLog + */ + recipe: number; + /** + * + * @type {number} + * @memberof CookLog + */ + servings?: number; + /** + * + * @type {number} + * @memberof CookLog + */ + rating?: number; + /** + * + * @type {string} + * @memberof CookLog + */ + comment?: string; + /** + * + * @type {User} + * @memberof CookLog + */ + readonly createdBy: User; + /** + * + * @type {Date} + * @memberof CookLog + */ + createdAt?: Date; + /** + * + * @type {Date} + * @memberof CookLog + */ + readonly updatedAt: Date; +} + +/** + * Check if a given object implements the CookLog interface. + */ +export function instanceOfCookLog(value: object): boolean { + if (!('id' in value)) return false; + if (!('recipe' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('updatedAt' in value)) return false; + return true; +} + +export function CookLogFromJSON(json: any): CookLog { + return CookLogFromJSONTyped(json, false); +} + +export function CookLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): CookLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'recipe': json['recipe'], + 'servings': json['servings'] == null ? undefined : json['servings'], + 'rating': json['rating'] == null ? undefined : json['rating'], + 'comment': json['comment'] == null ? undefined : json['comment'], + 'createdBy': UserFromJSON(json['created_by']), + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + }; +} + +export function CookLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'recipe': value['recipe'], + 'servings': value['servings'], + 'rating': value['rating'], + 'comment': value['comment'], + 'created_at': value['createdAt'] == null ? undefined : ((value['createdAt']).toISOString()), + }; +} + diff --git a/vue3/models/CustomFilter.ts b/vue3/models/CustomFilter.ts new file mode 100644 index 000000000..899a32e48 --- /dev/null +++ b/vue3/models/CustomFilter.ts @@ -0,0 +1,101 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface CustomFilter + */ +export interface CustomFilter { + /** + * + * @type {number} + * @memberof CustomFilter + */ + readonly id: number; + /** + * + * @type {string} + * @memberof CustomFilter + */ + name: string; + /** + * + * @type {string} + * @memberof CustomFilter + */ + search: string; + /** + * + * @type {Array} + * @memberof CustomFilter + */ + shared?: Array; + /** + * + * @type {number} + * @memberof CustomFilter + */ + readonly createdBy: number; +} + +/** + * Check if a given object implements the CustomFilter interface. + */ +export function instanceOfCustomFilter(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('search' in value)) return false; + if (!('createdBy' in value)) return false; + return true; +} + +export function CustomFilterFromJSON(json: any): CustomFilter { + return CustomFilterFromJSONTyped(json, false); +} + +export function CustomFilterFromJSONTyped(json: any, ignoreDiscriminator: boolean): CustomFilter { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'search': json['search'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + 'createdBy': json['created_by'], + }; +} + +export function CustomFilterToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'search': value['search'], + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + }; +} + diff --git a/vue3/models/DefaultPageEnum.ts b/vue3/models/DefaultPageEnum.ts new file mode 100644 index 000000000..d56795fce --- /dev/null +++ b/vue3/models/DefaultPageEnum.ts @@ -0,0 +1,47 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `SEARCH` - Search + * * `PLAN` - Meal-Plan + * * `BOOKS` - Books + * * `SHOPPING` - Shopping + * @export + */ +export const DefaultPageEnum = { + Search: 'SEARCH', + Plan: 'PLAN', + Books: 'BOOKS', + Shopping: 'SHOPPING' +} as const; +export type DefaultPageEnum = typeof DefaultPageEnum[keyof typeof DefaultPageEnum]; + + +export function instanceOfDefaultPageEnum(value: any): boolean { + return Object.values(DefaultPageEnum).includes(value); +} + +export function DefaultPageEnumFromJSON(json: any): DefaultPageEnum { + return DefaultPageEnumFromJSONTyped(json, false); +} + +export function DefaultPageEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): DefaultPageEnum { + return json as DefaultPageEnum; +} + +export function DefaultPageEnumToJSON(value?: DefaultPageEnum | null): any { + return value as any; +} + diff --git a/vue3/models/DeleteEnum.ts b/vue3/models/DeleteEnum.ts new file mode 100644 index 000000000..78ff997b6 --- /dev/null +++ b/vue3/models/DeleteEnum.ts @@ -0,0 +1,41 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `true` - true + * @export + */ +export const DeleteEnum = { + True: 'true' +} as const; +export type DeleteEnum = typeof DeleteEnum[keyof typeof DeleteEnum]; + + +export function instanceOfDeleteEnum(value: any): boolean { + return Object.values(DeleteEnum).includes(value); +} + +export function DeleteEnumFromJSON(json: any): DeleteEnum { + return DeleteEnumFromJSONTyped(json, false); +} + +export function DeleteEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): DeleteEnum { + return json as DeleteEnum; +} + +export function DeleteEnumToJSON(value?: DeleteEnum | null): any { + return value as any; +} + diff --git a/vue3/models/ExportLog.ts b/vue3/models/ExportLog.ts new file mode 100644 index 000000000..f640b53b7 --- /dev/null +++ b/vue3/models/ExportLog.ts @@ -0,0 +1,133 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ExportLog + */ +export interface ExportLog { + /** + * + * @type {number} + * @memberof ExportLog + */ + readonly id: number; + /** + * + * @type {string} + * @memberof ExportLog + */ + type: string; + /** + * + * @type {string} + * @memberof ExportLog + */ + msg?: string; + /** + * + * @type {boolean} + * @memberof ExportLog + */ + running?: boolean; + /** + * + * @type {number} + * @memberof ExportLog + */ + totalRecipes?: number; + /** + * + * @type {number} + * @memberof ExportLog + */ + exportedRecipes?: number; + /** + * + * @type {number} + * @memberof ExportLog + */ + cacheDuration?: number; + /** + * + * @type {boolean} + * @memberof ExportLog + */ + possiblyNotExpired?: boolean; + /** + * + * @type {number} + * @memberof ExportLog + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof ExportLog + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the ExportLog interface. + */ +export function instanceOfExportLog(value: object): boolean { + if (!('id' in value)) return false; + if (!('type' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function ExportLogFromJSON(json: any): ExportLog { + return ExportLogFromJSONTyped(json, false); +} + +export function ExportLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): ExportLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'type': json['type'], + 'msg': json['msg'] == null ? undefined : json['msg'], + 'running': json['running'] == null ? undefined : json['running'], + 'totalRecipes': json['total_recipes'] == null ? undefined : json['total_recipes'], + 'exportedRecipes': json['exported_recipes'] == null ? undefined : json['exported_recipes'], + 'cacheDuration': json['cache_duration'] == null ? undefined : json['cache_duration'], + 'possiblyNotExpired': json['possibly_not_expired'] == null ? undefined : json['possibly_not_expired'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function ExportLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'type': value['type'], + 'msg': value['msg'], + 'running': value['running'], + 'total_recipes': value['totalRecipes'], + 'exported_recipes': value['exportedRecipes'], + 'cache_duration': value['cacheDuration'], + 'possibly_not_expired': value['possiblyNotExpired'], + }; +} + diff --git a/vue3/models/Food.ts b/vue3/models/Food.ts new file mode 100644 index 000000000..dcf293bee --- /dev/null +++ b/vue3/models/Food.ts @@ -0,0 +1,317 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { FoodInheritField } from './FoodInheritField'; +import { + FoodInheritFieldFromJSON, + FoodInheritFieldFromJSONTyped, + FoodInheritFieldToJSON, +} from './FoodInheritField'; +import type { FoodSimple } from './FoodSimple'; +import { + FoodSimpleFromJSON, + FoodSimpleFromJSONTyped, + FoodSimpleToJSON, +} from './FoodSimple'; +import type { Property } from './Property'; +import { + PropertyFromJSON, + PropertyFromJSONTyped, + PropertyToJSON, +} from './Property'; +import type { RecipeSimple } from './RecipeSimple'; +import { + RecipeSimpleFromJSON, + RecipeSimpleFromJSONTyped, + RecipeSimpleToJSON, +} from './RecipeSimple'; +import type { SupermarketCategory } from './SupermarketCategory'; +import { + SupermarketCategoryFromJSON, + SupermarketCategoryFromJSONTyped, + SupermarketCategoryToJSON, +} from './SupermarketCategory'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface Food + */ +export interface Food { + /** + * + * @type {number} + * @memberof Food + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Food + */ + name: string; + /** + * + * @type {string} + * @memberof Food + */ + pluralName?: string; + /** + * + * @type {string} + * @memberof Food + */ + description?: string; + /** + * + * @type {string} + * @memberof Food + */ + readonly shopping: string; + /** + * + * @type {RecipeSimple} + * @memberof Food + */ + recipe?: RecipeSimple; + /** + * + * @type {string} + * @memberof Food + */ + url?: string; + /** + * + * @type {Array} + * @memberof Food + */ + properties?: Array; + /** + * + * @type {number} + * @memberof Food + */ + propertiesFoodAmount?: number; + /** + * + * @type {Unit} + * @memberof Food + */ + propertiesFoodUnit?: Unit; + /** + * + * @type {number} + * @memberof Food + */ + fdcId?: number; + /** + * + * @type {boolean} + * @memberof Food + */ + foodOnhand?: boolean; + /** + * + * @type {SupermarketCategory} + * @memberof Food + */ + supermarketCategory?: SupermarketCategory; + /** + * + * @type {number} + * @memberof Food + */ + readonly parent: number; + /** + * + * @type {number} + * @memberof Food + */ + readonly numchild: number; + /** + * + * @type {Array} + * @memberof Food + */ + inheritFields?: Array; + /** + * Returns a string representation of a tree node and it's ancestors, + * e.g. 'Cuisine > Asian > Chinese > Catonese'. + * @type {string} + * @memberof Food + */ + readonly fullName: string; + /** + * + * @type {boolean} + * @memberof Food + */ + ignoreShopping?: boolean; + /** + * + * @type {Array} + * @memberof Food + */ + substitute?: Array; + /** + * + * @type {boolean} + * @memberof Food + */ + substituteSiblings?: boolean; + /** + * + * @type {boolean} + * @memberof Food + */ + substituteChildren?: boolean; + /** + * + * @type {boolean} + * @memberof Food + */ + readonly substituteOnhand: boolean; + /** + * + * @type {Array} + * @memberof Food + */ + childInheritFields?: Array; + /** + * + * @type {string} + * @memberof Food + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the Food interface. + */ +export function instanceOfFood(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('shopping' in value)) return false; + if (!('parent' in value)) return false; + if (!('numchild' in value)) return false; + if (!('fullName' in value)) return false; + if (!('substituteOnhand' in value)) return false; + return true; +} + +export function FoodFromJSON(json: any): Food { + return FoodFromJSONTyped(json, false); +} + +export function FoodFromJSONTyped(json: any, ignoreDiscriminator: boolean): Food { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'pluralName': json['plural_name'] == null ? undefined : json['plural_name'], + 'description': json['description'] == null ? undefined : json['description'], + 'shopping': json['shopping'], + 'recipe': json['recipe'] == null ? undefined : RecipeSimpleFromJSON(json['recipe']), + 'url': json['url'] == null ? undefined : json['url'], + 'properties': json['properties'] == null ? undefined : ((json['properties'] as Array).map(PropertyFromJSON)), + 'propertiesFoodAmount': json['properties_food_amount'] == null ? undefined : json['properties_food_amount'], + 'propertiesFoodUnit': json['properties_food_unit'] == null ? undefined : UnitFromJSON(json['properties_food_unit']), + 'fdcId': json['fdc_id'] == null ? undefined : json['fdc_id'], + 'foodOnhand': json['food_onhand'] == null ? undefined : json['food_onhand'], + 'supermarketCategory': json['supermarket_category'] == null ? undefined : SupermarketCategoryFromJSON(json['supermarket_category']), + 'parent': json['parent'], + 'numchild': json['numchild'], + 'inheritFields': json['inherit_fields'] == null ? undefined : ((json['inherit_fields'] as Array).map(FoodInheritFieldFromJSON)), + 'fullName': json['full_name'], + 'ignoreShopping': json['ignore_shopping'] == null ? undefined : json['ignore_shopping'], + 'substitute': json['substitute'] == null ? undefined : ((json['substitute'] as Array).map(FoodSimpleFromJSON)), + 'substituteSiblings': json['substitute_siblings'] == null ? undefined : json['substitute_siblings'], + 'substituteChildren': json['substitute_children'] == null ? undefined : json['substitute_children'], + 'substituteOnhand': json['substitute_onhand'], + 'childInheritFields': json['child_inherit_fields'] == null ? undefined : ((json['child_inherit_fields'] as Array).map(FoodInheritFieldFromJSON)), + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function FoodToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'plural_name': value['pluralName'], + 'description': value['description'], + 'recipe': RecipeSimpleToJSON(value['recipe']), + 'url': value['url'], + 'properties': value['properties'] == null ? undefined : ((value['properties'] as Array).map(PropertyToJSON)), + 'properties_food_amount': value['propertiesFoodAmount'], + 'properties_food_unit': UnitToJSON(value['propertiesFoodUnit']), + 'fdc_id': value['fdcId'], + 'food_onhand': value['foodOnhand'], + 'supermarket_category': SupermarketCategoryToJSON(value['supermarketCategory']), + 'inherit_fields': value['inheritFields'] == null ? undefined : ((value['inheritFields'] as Array).map(FoodInheritFieldToJSON)), + 'ignore_shopping': value['ignoreShopping'], + 'substitute': value['substitute'] == null ? undefined : ((value['substitute'] as Array).map(FoodSimpleToJSON)), + 'substitute_siblings': value['substituteSiblings'], + 'substitute_children': value['substituteChildren'], + 'child_inherit_fields': value['childInheritFields'] == null ? undefined : ((value['childInheritFields'] as Array).map(FoodInheritFieldToJSON)), + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/FoodInheritField.ts b/vue3/models/FoodInheritField.ts new file mode 100644 index 000000000..75feb2c65 --- /dev/null +++ b/vue3/models/FoodInheritField.ts @@ -0,0 +1,110 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface FoodInheritField + */ +export interface FoodInheritField { + /** + * + * @type {number} + * @memberof FoodInheritField + */ + readonly id: number; + /** + * + * @type {string} + * @memberof FoodInheritField + */ + name?: string; + /** + * + * @type {string} + * @memberof FoodInheritField + */ + field?: string; +} + +/** + * Check if a given object implements the FoodInheritField interface. + */ +export function instanceOfFoodInheritField(value: object): boolean { + if (!('id' in value)) return false; + return true; +} + +export function FoodInheritFieldFromJSON(json: any): FoodInheritField { + return FoodInheritFieldFromJSONTyped(json, false); +} + +export function FoodInheritFieldFromJSONTyped(json: any, ignoreDiscriminator: boolean): FoodInheritField { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'field': json['field'] == null ? undefined : json['field'], + }; +} + +export function FoodInheritFieldToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'field': value['field'], + }; +} + diff --git a/vue3/models/FoodShoppingUpdate.ts b/vue3/models/FoodShoppingUpdate.ts new file mode 100644 index 000000000..63be5b4f8 --- /dev/null +++ b/vue3/models/FoodShoppingUpdate.ts @@ -0,0 +1,94 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { DeleteEnum } from './DeleteEnum'; +import { + DeleteEnumFromJSON, + DeleteEnumFromJSONTyped, + DeleteEnumToJSON, +} from './DeleteEnum'; + +/** + * + * @export + * @interface FoodShoppingUpdate + */ +export interface FoodShoppingUpdate { + /** + * + * @type {number} + * @memberof FoodShoppingUpdate + */ + readonly id: number; + /** + * Amount of food to add to the shopping list + * @type {number} + * @memberof FoodShoppingUpdate + */ + amount?: number; + /** + * ID of unit to use for the shopping list + * @type {number} + * @memberof FoodShoppingUpdate + */ + unit?: number; + /** + * When set to true will delete all food from active shopping lists. + * + * * `true` - true + * @type {DeleteEnum} + * @memberof FoodShoppingUpdate + */ + _delete: DeleteEnum | null; +} + +/** + * Check if a given object implements the FoodShoppingUpdate interface. + */ +export function instanceOfFoodShoppingUpdate(value: object): boolean { + if (!('id' in value)) return false; + if (!('_delete' in value)) return false; + return true; +} + +export function FoodShoppingUpdateFromJSON(json: any): FoodShoppingUpdate { + return FoodShoppingUpdateFromJSONTyped(json, false); +} + +export function FoodShoppingUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): FoodShoppingUpdate { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'amount': json['amount'] == null ? undefined : json['amount'], + 'unit': json['unit'] == null ? undefined : json['unit'], + '_delete': DeleteEnumFromJSON(json['delete']), + }; +} + +export function FoodShoppingUpdateToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'amount': value['amount'], + 'unit': value['unit'], + 'delete': DeleteEnumToJSON(value['_delete']), + }; +} + diff --git a/vue3/models/FoodSimple.ts b/vue3/models/FoodSimple.ts new file mode 100644 index 000000000..2729f2a11 --- /dev/null +++ b/vue3/models/FoodSimple.ts @@ -0,0 +1,77 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface FoodSimple + */ +export interface FoodSimple { + /** + * + * @type {number} + * @memberof FoodSimple + */ + readonly id: number; + /** + * + * @type {string} + * @memberof FoodSimple + */ + name: string; + /** + * + * @type {string} + * @memberof FoodSimple + */ + pluralName?: string; +} + +/** + * Check if a given object implements the FoodSimple interface. + */ +export function instanceOfFoodSimple(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + return true; +} + +export function FoodSimpleFromJSON(json: any): FoodSimple { + return FoodSimpleFromJSONTyped(json, false); +} + +export function FoodSimpleFromJSONTyped(json: any, ignoreDiscriminator: boolean): FoodSimple { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'pluralName': json['plural_name'] == null ? undefined : json['plural_name'], + }; +} + +export function FoodSimpleToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'plural_name': value['pluralName'], + }; +} + diff --git a/vue3/models/Group.ts b/vue3/models/Group.ts new file mode 100644 index 000000000..6748449d8 --- /dev/null +++ b/vue3/models/Group.ts @@ -0,0 +1,103 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface Group + */ +export interface Group { + /** + * + * @type {number} + * @memberof Group + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Group + */ + name: string; +} + +/** + * Check if a given object implements the Group interface. + */ +export function instanceOfGroup(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + return true; +} + +export function GroupFromJSON(json: any): Group { + return GroupFromJSONTyped(json, false); +} + +export function GroupFromJSONTyped(json: any, ignoreDiscriminator: boolean): Group { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + }; +} + +export function GroupToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + }; +} + diff --git a/vue3/models/ImportLog.ts b/vue3/models/ImportLog.ts new file mode 100644 index 000000000..3906bdef4 --- /dev/null +++ b/vue3/models/ImportLog.ts @@ -0,0 +1,132 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Keyword } from './Keyword'; +import { + KeywordFromJSON, + KeywordFromJSONTyped, + KeywordToJSON, +} from './Keyword'; + +/** + * + * @export + * @interface ImportLog + */ +export interface ImportLog { + /** + * + * @type {number} + * @memberof ImportLog + */ + readonly id: number; + /** + * + * @type {string} + * @memberof ImportLog + */ + type: string; + /** + * + * @type {string} + * @memberof ImportLog + */ + msg?: string; + /** + * + * @type {boolean} + * @memberof ImportLog + */ + running?: boolean; + /** + * + * @type {Keyword} + * @memberof ImportLog + */ + readonly keyword: Keyword; + /** + * + * @type {number} + * @memberof ImportLog + */ + totalRecipes?: number; + /** + * + * @type {number} + * @memberof ImportLog + */ + importedRecipes?: number; + /** + * + * @type {number} + * @memberof ImportLog + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof ImportLog + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the ImportLog interface. + */ +export function instanceOfImportLog(value: object): boolean { + if (!('id' in value)) return false; + if (!('type' in value)) return false; + if (!('keyword' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function ImportLogFromJSON(json: any): ImportLog { + return ImportLogFromJSONTyped(json, false); +} + +export function ImportLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): ImportLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'type': json['type'], + 'msg': json['msg'] == null ? undefined : json['msg'], + 'running': json['running'] == null ? undefined : json['running'], + 'keyword': KeywordFromJSON(json['keyword']), + 'totalRecipes': json['total_recipes'] == null ? undefined : json['total_recipes'], + 'importedRecipes': json['imported_recipes'] == null ? undefined : json['imported_recipes'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function ImportLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'type': value['type'], + 'msg': value['msg'], + 'running': value['running'], + 'total_recipes': value['totalRecipes'], + 'imported_recipes': value['importedRecipes'], + }; +} + diff --git a/vue3/models/Ingredient.ts b/vue3/models/Ingredient.ts new file mode 100644 index 000000000..e5a53d27f --- /dev/null +++ b/vue3/models/Ingredient.ts @@ -0,0 +1,172 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * Adds nested create feature + * @export + * @interface Ingredient + */ +export interface Ingredient { + /** + * + * @type {number} + * @memberof Ingredient + */ + readonly id: number; + /** + * + * @type {Food} + * @memberof Ingredient + */ + food: Food | null; + /** + * + * @type {Unit} + * @memberof Ingredient + */ + unit: Unit | null; + /** + * + * @type {number} + * @memberof Ingredient + */ + amount: number; + /** + * + * @type {Array} + * @memberof Ingredient + */ + readonly conversions: Array; + /** + * + * @type {string} + * @memberof Ingredient + */ + note?: string; + /** + * + * @type {number} + * @memberof Ingredient + */ + order?: number; + /** + * + * @type {boolean} + * @memberof Ingredient + */ + isHeader?: boolean; + /** + * + * @type {boolean} + * @memberof Ingredient + */ + noAmount?: boolean; + /** + * + * @type {string} + * @memberof Ingredient + */ + originalText?: string; + /** + * + * @type {Array} + * @memberof Ingredient + */ + readonly usedInRecipes: Array; + /** + * + * @type {boolean} + * @memberof Ingredient + */ + alwaysUsePluralUnit?: boolean; + /** + * + * @type {boolean} + * @memberof Ingredient + */ + alwaysUsePluralFood?: boolean; +} + +/** + * Check if a given object implements the Ingredient interface. + */ +export function instanceOfIngredient(value: object): boolean { + if (!('id' in value)) return false; + if (!('food' in value)) return false; + if (!('unit' in value)) return false; + if (!('amount' in value)) return false; + if (!('conversions' in value)) return false; + if (!('usedInRecipes' in value)) return false; + return true; +} + +export function IngredientFromJSON(json: any): Ingredient { + return IngredientFromJSONTyped(json, false); +} + +export function IngredientFromJSONTyped(json: any, ignoreDiscriminator: boolean): Ingredient { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'food': FoodFromJSON(json['food']), + 'unit': UnitFromJSON(json['unit']), + 'amount': json['amount'], + 'conversions': json['conversions'], + 'note': json['note'] == null ? undefined : json['note'], + 'order': json['order'] == null ? undefined : json['order'], + 'isHeader': json['is_header'] == null ? undefined : json['is_header'], + 'noAmount': json['no_amount'] == null ? undefined : json['no_amount'], + 'originalText': json['original_text'] == null ? undefined : json['original_text'], + 'usedInRecipes': json['used_in_recipes'], + 'alwaysUsePluralUnit': json['always_use_plural_unit'] == null ? undefined : json['always_use_plural_unit'], + 'alwaysUsePluralFood': json['always_use_plural_food'] == null ? undefined : json['always_use_plural_food'], + }; +} + +export function IngredientToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'food': FoodToJSON(value['food']), + 'unit': UnitToJSON(value['unit']), + 'amount': value['amount'], + 'note': value['note'], + 'order': value['order'], + 'is_header': value['isHeader'], + 'no_amount': value['noAmount'], + 'original_text': value['originalText'], + 'always_use_plural_unit': value['alwaysUsePluralUnit'], + 'always_use_plural_food': value['alwaysUsePluralFood'], + }; +} + diff --git a/vue3/models/InviteLink.ts b/vue3/models/InviteLink.ts new file mode 100644 index 000000000..8c9ed8ed4 --- /dev/null +++ b/vue3/models/InviteLink.ts @@ -0,0 +1,140 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Group } from './Group'; +import { + GroupFromJSON, + GroupFromJSONTyped, + GroupToJSON, +} from './Group'; + +/** + * Adds nested create feature + * @export + * @interface InviteLink + */ +export interface InviteLink { + /** + * + * @type {number} + * @memberof InviteLink + */ + readonly id: number; + /** + * + * @type {string} + * @memberof InviteLink + */ + readonly uuid: string; + /** + * + * @type {string} + * @memberof InviteLink + */ + email?: string; + /** + * + * @type {Group} + * @memberof InviteLink + */ + group: Group; + /** + * + * @type {Date} + * @memberof InviteLink + */ + validUntil?: Date; + /** + * + * @type {number} + * @memberof InviteLink + */ + usedBy?: number; + /** + * + * @type {boolean} + * @memberof InviteLink + */ + reusable?: boolean; + /** + * + * @type {string} + * @memberof InviteLink + */ + internalNote?: string; + /** + * + * @type {number} + * @memberof InviteLink + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof InviteLink + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the InviteLink interface. + */ +export function instanceOfInviteLink(value: object): boolean { + if (!('id' in value)) return false; + if (!('uuid' in value)) return false; + if (!('group' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function InviteLinkFromJSON(json: any): InviteLink { + return InviteLinkFromJSONTyped(json, false); +} + +export function InviteLinkFromJSONTyped(json: any, ignoreDiscriminator: boolean): InviteLink { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'uuid': json['uuid'], + 'email': json['email'] == null ? undefined : json['email'], + 'group': GroupFromJSON(json['group']), + 'validUntil': json['valid_until'] == null ? undefined : (new Date(json['valid_until'])), + 'usedBy': json['used_by'] == null ? undefined : json['used_by'], + 'reusable': json['reusable'] == null ? undefined : json['reusable'], + 'internalNote': json['internal_note'] == null ? undefined : json['internal_note'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function InviteLinkToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'email': value['email'], + 'group': GroupToJSON(value['group']), + 'valid_until': value['validUntil'] == null ? undefined : ((value['validUntil']).toISOString().substring(0,10)), + 'used_by': value['usedBy'], + 'reusable': value['reusable'], + 'internal_note': value['internalNote'], + }; +} + diff --git a/vue3/models/Keyword.ts b/vue3/models/Keyword.ts new file mode 100644 index 000000000..53f6e85d9 --- /dev/null +++ b/vue3/models/Keyword.ts @@ -0,0 +1,160 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface Keyword + */ +export interface Keyword { + /** + * + * @type {number} + * @memberof Keyword + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Keyword + */ + name: string; + /** + * + * @type {string} + * @memberof Keyword + */ + readonly label: string; + /** + * + * @type {string} + * @memberof Keyword + */ + description?: string; + /** + * + * @type {number} + * @memberof Keyword + */ + readonly parent: number; + /** + * + * @type {number} + * @memberof Keyword + */ + readonly numchild: number; + /** + * + * @type {Date} + * @memberof Keyword + */ + readonly createdAt: Date; + /** + * + * @type {Date} + * @memberof Keyword + */ + readonly updatedAt: Date; + /** + * Returns a string representation of a tree node and it's ancestors, + * e.g. 'Cuisine > Asian > Chinese > Catonese'. + * @type {string} + * @memberof Keyword + */ + readonly fullName: string; +} + +/** + * Check if a given object implements the Keyword interface. + */ +export function instanceOfKeyword(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('label' in value)) return false; + if (!('parent' in value)) return false; + if (!('numchild' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('updatedAt' in value)) return false; + if (!('fullName' in value)) return false; + return true; +} + +export function KeywordFromJSON(json: any): Keyword { + return KeywordFromJSONTyped(json, false); +} + +export function KeywordFromJSONTyped(json: any, ignoreDiscriminator: boolean): Keyword { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'label': json['label'], + 'description': json['description'] == null ? undefined : json['description'], + 'parent': json['parent'], + 'numchild': json['numchild'], + 'createdAt': (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + 'fullName': json['full_name'], + }; +} + +export function KeywordToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + }; +} + diff --git a/vue3/models/KeywordLabel.ts b/vue3/models/KeywordLabel.ts new file mode 100644 index 000000000..62ec4f554 --- /dev/null +++ b/vue3/models/KeywordLabel.ts @@ -0,0 +1,68 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface KeywordLabel + */ +export interface KeywordLabel { + /** + * + * @type {number} + * @memberof KeywordLabel + */ + readonly id: number; + /** + * + * @type {string} + * @memberof KeywordLabel + */ + readonly label: string; +} + +/** + * Check if a given object implements the KeywordLabel interface. + */ +export function instanceOfKeywordLabel(value: object): boolean { + if (!('id' in value)) return false; + if (!('label' in value)) return false; + return true; +} + +export function KeywordLabelFromJSON(json: any): KeywordLabel { + return KeywordLabelFromJSONTyped(json, false); +} + +export function KeywordLabelFromJSONTyped(json: any, ignoreDiscriminator: boolean): KeywordLabel { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'label': json['label'], + }; +} + +export function KeywordLabelToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + }; +} + diff --git a/vue3/models/MealPlan.ts b/vue3/models/MealPlan.ts new file mode 100644 index 000000000..2672533b0 --- /dev/null +++ b/vue3/models/MealPlan.ts @@ -0,0 +1,186 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { MealType } from './MealType'; +import { + MealTypeFromJSON, + MealTypeFromJSONTyped, + MealTypeToJSON, +} from './MealType'; +import type { RecipeOverview } from './RecipeOverview'; +import { + RecipeOverviewFromJSON, + RecipeOverviewFromJSONTyped, + RecipeOverviewToJSON, +} from './RecipeOverview'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface MealPlan + */ +export interface MealPlan { + /** + * + * @type {number} + * @memberof MealPlan + */ + readonly id: number; + /** + * + * @type {string} + * @memberof MealPlan + */ + title?: string; + /** + * + * @type {RecipeOverview} + * @memberof MealPlan + */ + recipe?: RecipeOverview; + /** + * + * @type {number} + * @memberof MealPlan + */ + servings: number; + /** + * + * @type {string} + * @memberof MealPlan + */ + note?: string; + /** + * + * @type {string} + * @memberof MealPlan + */ + readonly noteMarkdown: string; + /** + * + * @type {Date} + * @memberof MealPlan + */ + fromDate: Date; + /** + * + * @type {Date} + * @memberof MealPlan + */ + toDate?: Date; + /** + * + * @type {MealType} + * @memberof MealPlan + */ + mealType: MealType; + /** + * + * @type {number} + * @memberof MealPlan + */ + readonly createdBy: number; + /** + * + * @type {Array} + * @memberof MealPlan + */ + shared?: Array; + /** + * + * @type {string} + * @memberof MealPlan + */ + readonly recipeName: string; + /** + * + * @type {string} + * @memberof MealPlan + */ + readonly mealTypeName: string; + /** + * + * @type {boolean} + * @memberof MealPlan + */ + readonly shopping: boolean; +} + +/** + * Check if a given object implements the MealPlan interface. + */ +export function instanceOfMealPlan(value: object): boolean { + if (!('id' in value)) return false; + if (!('servings' in value)) return false; + if (!('noteMarkdown' in value)) return false; + if (!('fromDate' in value)) return false; + if (!('mealType' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('recipeName' in value)) return false; + if (!('mealTypeName' in value)) return false; + if (!('shopping' in value)) return false; + return true; +} + +export function MealPlanFromJSON(json: any): MealPlan { + return MealPlanFromJSONTyped(json, false); +} + +export function MealPlanFromJSONTyped(json: any, ignoreDiscriminator: boolean): MealPlan { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'title': json['title'] == null ? undefined : json['title'], + 'recipe': json['recipe'] == null ? undefined : RecipeOverviewFromJSON(json['recipe']), + 'servings': json['servings'], + 'note': json['note'] == null ? undefined : json['note'], + 'noteMarkdown': json['note_markdown'], + 'fromDate': (new Date(json['from_date'])), + 'toDate': json['to_date'] == null ? undefined : (new Date(json['to_date'])), + 'mealType': MealTypeFromJSON(json['meal_type']), + 'createdBy': json['created_by'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + 'recipeName': json['recipe_name'], + 'mealTypeName': json['meal_type_name'], + 'shopping': json['shopping'], + }; +} + +export function MealPlanToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'title': value['title'], + 'recipe': RecipeOverviewToJSON(value['recipe']), + 'servings': value['servings'], + 'note': value['note'], + 'from_date': ((value['fromDate']).toISOString().substring(0,10)), + 'to_date': value['toDate'] == null ? undefined : ((value['toDate']).toISOString().substring(0,10)), + 'meal_type': MealTypeToJSON(value['mealType']), + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + }; +} + diff --git a/vue3/models/MealType.ts b/vue3/models/MealType.ts new file mode 100644 index 000000000..bfe95d1df --- /dev/null +++ b/vue3/models/MealType.ts @@ -0,0 +1,101 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface MealType + */ +export interface MealType { + /** + * + * @type {number} + * @memberof MealType + */ + readonly id: number; + /** + * + * @type {string} + * @memberof MealType + */ + name: string; + /** + * + * @type {number} + * @memberof MealType + */ + order?: number; + /** + * + * @type {string} + * @memberof MealType + */ + color?: string; + /** + * + * @type {boolean} + * @memberof MealType + */ + _default?: boolean; + /** + * + * @type {number} + * @memberof MealType + */ + readonly createdBy: number; +} + +/** + * Check if a given object implements the MealType interface. + */ +export function instanceOfMealType(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('createdBy' in value)) return false; + return true; +} + +export function MealTypeFromJSON(json: any): MealType { + return MealTypeFromJSONTyped(json, false); +} + +export function MealTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): MealType { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'order': json['order'] == null ? undefined : json['order'], + 'color': json['color'] == null ? undefined : json['color'], + '_default': json['default'] == null ? undefined : json['default'], + 'createdBy': json['created_by'], + }; +} + +export function MealTypeToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'order': value['order'], + 'color': value['color'], + 'default': value['_default'], + }; +} + diff --git a/vue3/models/MethodEnum.ts b/vue3/models/MethodEnum.ts new file mode 100644 index 000000000..5bfff5364 --- /dev/null +++ b/vue3/models/MethodEnum.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `DB` - Dropbox + * * `NEXTCLOUD` - Nextcloud + * * `LOCAL` - Local + * @export + */ +export const MethodEnum = { + Db: 'DB', + Nextcloud: 'NEXTCLOUD', + Local: 'LOCAL' +} as const; +export type MethodEnum = typeof MethodEnum[keyof typeof MethodEnum]; + + +export function instanceOfMethodEnum(value: any): boolean { + return Object.values(MethodEnum).includes(value); +} + +export function MethodEnumFromJSON(json: any): MethodEnum { + return MethodEnumFromJSONTyped(json, false); +} + +export function MethodEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): MethodEnum { + return json as MethodEnum; +} + +export function MethodEnumToJSON(value?: MethodEnum | null): any { + return value as any; +} + diff --git a/vue3/models/NutritionInformation.ts b/vue3/models/NutritionInformation.ts new file mode 100644 index 000000000..7dd303398 --- /dev/null +++ b/vue3/models/NutritionInformation.ts @@ -0,0 +1,104 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface NutritionInformation + */ +export interface NutritionInformation { + /** + * + * @type {number} + * @memberof NutritionInformation + */ + readonly id: number; + /** + * + * @type {number} + * @memberof NutritionInformation + */ + carbohydrates: number; + /** + * + * @type {number} + * @memberof NutritionInformation + */ + fats: number; + /** + * + * @type {number} + * @memberof NutritionInformation + */ + proteins: number; + /** + * + * @type {number} + * @memberof NutritionInformation + */ + calories: number; + /** + * + * @type {string} + * @memberof NutritionInformation + */ + source?: string; +} + +/** + * Check if a given object implements the NutritionInformation interface. + */ +export function instanceOfNutritionInformation(value: object): boolean { + if (!('id' in value)) return false; + if (!('carbohydrates' in value)) return false; + if (!('fats' in value)) return false; + if (!('proteins' in value)) return false; + if (!('calories' in value)) return false; + return true; +} + +export function NutritionInformationFromJSON(json: any): NutritionInformation { + return NutritionInformationFromJSONTyped(json, false); +} + +export function NutritionInformationFromJSONTyped(json: any, ignoreDiscriminator: boolean): NutritionInformation { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'carbohydrates': json['carbohydrates'], + 'fats': json['fats'], + 'proteins': json['proteins'], + 'calories': json['calories'], + 'source': json['source'] == null ? undefined : json['source'], + }; +} + +export function NutritionInformationToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'carbohydrates': value['carbohydrates'], + 'fats': value['fats'], + 'proteins': value['proteins'], + 'calories': value['calories'], + 'source': value['source'], + }; +} + diff --git a/vue3/models/PaginatedAutomationList.ts b/vue3/models/PaginatedAutomationList.ts new file mode 100644 index 000000000..c32fecc89 --- /dev/null +++ b/vue3/models/PaginatedAutomationList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Automation } from './Automation'; +import { + AutomationFromJSON, + AutomationFromJSONTyped, + AutomationToJSON, +} from './Automation'; + +/** + * + * @export + * @interface PaginatedAutomationList + */ +export interface PaginatedAutomationList { + /** + * + * @type {number} + * @memberof PaginatedAutomationList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedAutomationList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedAutomationList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedAutomationList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedAutomationList interface. + */ +export function instanceOfPaginatedAutomationList(value: object): boolean { + return true; +} + +export function PaginatedAutomationListFromJSON(json: any): PaginatedAutomationList { + return PaginatedAutomationListFromJSONTyped(json, false); +} + +export function PaginatedAutomationListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedAutomationList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(AutomationFromJSON)), + }; +} + +export function PaginatedAutomationListToJSON(value?: PaginatedAutomationList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(AutomationToJSON)), + }; +} + diff --git a/vue3/models/PaginatedCookLogList.ts b/vue3/models/PaginatedCookLogList.ts new file mode 100644 index 000000000..bda0d6e33 --- /dev/null +++ b/vue3/models/PaginatedCookLogList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { CookLog } from './CookLog'; +import { + CookLogFromJSON, + CookLogFromJSONTyped, + CookLogToJSON, +} from './CookLog'; + +/** + * + * @export + * @interface PaginatedCookLogList + */ +export interface PaginatedCookLogList { + /** + * + * @type {number} + * @memberof PaginatedCookLogList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedCookLogList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedCookLogList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedCookLogList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedCookLogList interface. + */ +export function instanceOfPaginatedCookLogList(value: object): boolean { + return true; +} + +export function PaginatedCookLogListFromJSON(json: any): PaginatedCookLogList { + return PaginatedCookLogListFromJSONTyped(json, false); +} + +export function PaginatedCookLogListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedCookLogList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(CookLogFromJSON)), + }; +} + +export function PaginatedCookLogListToJSON(value?: PaginatedCookLogList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(CookLogToJSON)), + }; +} + diff --git a/vue3/models/PaginatedCustomFilterList.ts b/vue3/models/PaginatedCustomFilterList.ts new file mode 100644 index 000000000..94c574699 --- /dev/null +++ b/vue3/models/PaginatedCustomFilterList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { CustomFilter } from './CustomFilter'; +import { + CustomFilterFromJSON, + CustomFilterFromJSONTyped, + CustomFilterToJSON, +} from './CustomFilter'; + +/** + * + * @export + * @interface PaginatedCustomFilterList + */ +export interface PaginatedCustomFilterList { + /** + * + * @type {number} + * @memberof PaginatedCustomFilterList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedCustomFilterList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedCustomFilterList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedCustomFilterList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedCustomFilterList interface. + */ +export function instanceOfPaginatedCustomFilterList(value: object): boolean { + return true; +} + +export function PaginatedCustomFilterListFromJSON(json: any): PaginatedCustomFilterList { + return PaginatedCustomFilterListFromJSONTyped(json, false); +} + +export function PaginatedCustomFilterListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedCustomFilterList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(CustomFilterFromJSON)), + }; +} + +export function PaginatedCustomFilterListToJSON(value?: PaginatedCustomFilterList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(CustomFilterToJSON)), + }; +} + diff --git a/vue3/models/PaginatedExportLogList.ts b/vue3/models/PaginatedExportLogList.ts new file mode 100644 index 000000000..5b916332b --- /dev/null +++ b/vue3/models/PaginatedExportLogList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { ExportLog } from './ExportLog'; +import { + ExportLogFromJSON, + ExportLogFromJSONTyped, + ExportLogToJSON, +} from './ExportLog'; + +/** + * + * @export + * @interface PaginatedExportLogList + */ +export interface PaginatedExportLogList { + /** + * + * @type {number} + * @memberof PaginatedExportLogList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedExportLogList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedExportLogList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedExportLogList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedExportLogList interface. + */ +export function instanceOfPaginatedExportLogList(value: object): boolean { + return true; +} + +export function PaginatedExportLogListFromJSON(json: any): PaginatedExportLogList { + return PaginatedExportLogListFromJSONTyped(json, false); +} + +export function PaginatedExportLogListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedExportLogList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(ExportLogFromJSON)), + }; +} + +export function PaginatedExportLogListToJSON(value?: PaginatedExportLogList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(ExportLogToJSON)), + }; +} + diff --git a/vue3/models/PaginatedFoodList.ts b/vue3/models/PaginatedFoodList.ts new file mode 100644 index 000000000..1533963ae --- /dev/null +++ b/vue3/models/PaginatedFoodList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; + +/** + * + * @export + * @interface PaginatedFoodList + */ +export interface PaginatedFoodList { + /** + * + * @type {number} + * @memberof PaginatedFoodList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedFoodList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedFoodList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedFoodList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedFoodList interface. + */ +export function instanceOfPaginatedFoodList(value: object): boolean { + return true; +} + +export function PaginatedFoodListFromJSON(json: any): PaginatedFoodList { + return PaginatedFoodListFromJSONTyped(json, false); +} + +export function PaginatedFoodListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedFoodList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(FoodFromJSON)), + }; +} + +export function PaginatedFoodListToJSON(value?: PaginatedFoodList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(FoodToJSON)), + }; +} + diff --git a/vue3/models/PaginatedImportLogList.ts b/vue3/models/PaginatedImportLogList.ts new file mode 100644 index 000000000..d3a02c0f6 --- /dev/null +++ b/vue3/models/PaginatedImportLogList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { ImportLog } from './ImportLog'; +import { + ImportLogFromJSON, + ImportLogFromJSONTyped, + ImportLogToJSON, +} from './ImportLog'; + +/** + * + * @export + * @interface PaginatedImportLogList + */ +export interface PaginatedImportLogList { + /** + * + * @type {number} + * @memberof PaginatedImportLogList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedImportLogList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedImportLogList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedImportLogList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedImportLogList interface. + */ +export function instanceOfPaginatedImportLogList(value: object): boolean { + return true; +} + +export function PaginatedImportLogListFromJSON(json: any): PaginatedImportLogList { + return PaginatedImportLogListFromJSONTyped(json, false); +} + +export function PaginatedImportLogListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedImportLogList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(ImportLogFromJSON)), + }; +} + +export function PaginatedImportLogListToJSON(value?: PaginatedImportLogList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(ImportLogToJSON)), + }; +} + diff --git a/vue3/models/PaginatedIngredientList.ts b/vue3/models/PaginatedIngredientList.ts new file mode 100644 index 000000000..9170e637a --- /dev/null +++ b/vue3/models/PaginatedIngredientList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Ingredient } from './Ingredient'; +import { + IngredientFromJSON, + IngredientFromJSONTyped, + IngredientToJSON, +} from './Ingredient'; + +/** + * + * @export + * @interface PaginatedIngredientList + */ +export interface PaginatedIngredientList { + /** + * + * @type {number} + * @memberof PaginatedIngredientList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedIngredientList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedIngredientList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedIngredientList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedIngredientList interface. + */ +export function instanceOfPaginatedIngredientList(value: object): boolean { + return true; +} + +export function PaginatedIngredientListFromJSON(json: any): PaginatedIngredientList { + return PaginatedIngredientListFromJSONTyped(json, false); +} + +export function PaginatedIngredientListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedIngredientList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(IngredientFromJSON)), + }; +} + +export function PaginatedIngredientListToJSON(value?: PaginatedIngredientList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(IngredientToJSON)), + }; +} + diff --git a/vue3/models/PaginatedKeywordList.ts b/vue3/models/PaginatedKeywordList.ts new file mode 100644 index 000000000..c707fb406 --- /dev/null +++ b/vue3/models/PaginatedKeywordList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Keyword } from './Keyword'; +import { + KeywordFromJSON, + KeywordFromJSONTyped, + KeywordToJSON, +} from './Keyword'; + +/** + * + * @export + * @interface PaginatedKeywordList + */ +export interface PaginatedKeywordList { + /** + * + * @type {number} + * @memberof PaginatedKeywordList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedKeywordList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedKeywordList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedKeywordList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedKeywordList interface. + */ +export function instanceOfPaginatedKeywordList(value: object): boolean { + return true; +} + +export function PaginatedKeywordListFromJSON(json: any): PaginatedKeywordList { + return PaginatedKeywordListFromJSONTyped(json, false); +} + +export function PaginatedKeywordListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedKeywordList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(KeywordFromJSON)), + }; +} + +export function PaginatedKeywordListToJSON(value?: PaginatedKeywordList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(KeywordToJSON)), + }; +} + diff --git a/vue3/models/PaginatedRecipeOverviewList.ts b/vue3/models/PaginatedRecipeOverviewList.ts new file mode 100644 index 000000000..d1e6ee757 --- /dev/null +++ b/vue3/models/PaginatedRecipeOverviewList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { RecipeOverview } from './RecipeOverview'; +import { + RecipeOverviewFromJSON, + RecipeOverviewFromJSONTyped, + RecipeOverviewToJSON, +} from './RecipeOverview'; + +/** + * + * @export + * @interface PaginatedRecipeOverviewList + */ +export interface PaginatedRecipeOverviewList { + /** + * + * @type {number} + * @memberof PaginatedRecipeOverviewList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedRecipeOverviewList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedRecipeOverviewList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedRecipeOverviewList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedRecipeOverviewList interface. + */ +export function instanceOfPaginatedRecipeOverviewList(value: object): boolean { + return true; +} + +export function PaginatedRecipeOverviewListFromJSON(json: any): PaginatedRecipeOverviewList { + return PaginatedRecipeOverviewListFromJSONTyped(json, false); +} + +export function PaginatedRecipeOverviewListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedRecipeOverviewList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(RecipeOverviewFromJSON)), + }; +} + +export function PaginatedRecipeOverviewListToJSON(value?: PaginatedRecipeOverviewList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(RecipeOverviewToJSON)), + }; +} + diff --git a/vue3/models/PaginatedStepList.ts b/vue3/models/PaginatedStepList.ts new file mode 100644 index 000000000..815e25bf8 --- /dev/null +++ b/vue3/models/PaginatedStepList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Step } from './Step'; +import { + StepFromJSON, + StepFromJSONTyped, + StepToJSON, +} from './Step'; + +/** + * + * @export + * @interface PaginatedStepList + */ +export interface PaginatedStepList { + /** + * + * @type {number} + * @memberof PaginatedStepList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedStepList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedStepList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedStepList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedStepList interface. + */ +export function instanceOfPaginatedStepList(value: object): boolean { + return true; +} + +export function PaginatedStepListFromJSON(json: any): PaginatedStepList { + return PaginatedStepListFromJSONTyped(json, false); +} + +export function PaginatedStepListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedStepList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(StepFromJSON)), + }; +} + +export function PaginatedStepListToJSON(value?: PaginatedStepList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(StepToJSON)), + }; +} + diff --git a/vue3/models/PaginatedSupermarketCategoryRelationList.ts b/vue3/models/PaginatedSupermarketCategoryRelationList.ts new file mode 100644 index 000000000..63ed0c0dd --- /dev/null +++ b/vue3/models/PaginatedSupermarketCategoryRelationList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SupermarketCategoryRelation } from './SupermarketCategoryRelation'; +import { + SupermarketCategoryRelationFromJSON, + SupermarketCategoryRelationFromJSONTyped, + SupermarketCategoryRelationToJSON, +} from './SupermarketCategoryRelation'; + +/** + * + * @export + * @interface PaginatedSupermarketCategoryRelationList + */ +export interface PaginatedSupermarketCategoryRelationList { + /** + * + * @type {number} + * @memberof PaginatedSupermarketCategoryRelationList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedSupermarketCategoryRelationList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedSupermarketCategoryRelationList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedSupermarketCategoryRelationList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedSupermarketCategoryRelationList interface. + */ +export function instanceOfPaginatedSupermarketCategoryRelationList(value: object): boolean { + return true; +} + +export function PaginatedSupermarketCategoryRelationListFromJSON(json: any): PaginatedSupermarketCategoryRelationList { + return PaginatedSupermarketCategoryRelationListFromJSONTyped(json, false); +} + +export function PaginatedSupermarketCategoryRelationListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedSupermarketCategoryRelationList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(SupermarketCategoryRelationFromJSON)), + }; +} + +export function PaginatedSupermarketCategoryRelationListToJSON(value?: PaginatedSupermarketCategoryRelationList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(SupermarketCategoryRelationToJSON)), + }; +} + diff --git a/vue3/models/PaginatedSyncLogList.ts b/vue3/models/PaginatedSyncLogList.ts new file mode 100644 index 000000000..8702fceb8 --- /dev/null +++ b/vue3/models/PaginatedSyncLogList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SyncLog } from './SyncLog'; +import { + SyncLogFromJSON, + SyncLogFromJSONTyped, + SyncLogToJSON, +} from './SyncLog'; + +/** + * + * @export + * @interface PaginatedSyncLogList + */ +export interface PaginatedSyncLogList { + /** + * + * @type {number} + * @memberof PaginatedSyncLogList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedSyncLogList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedSyncLogList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedSyncLogList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedSyncLogList interface. + */ +export function instanceOfPaginatedSyncLogList(value: object): boolean { + return true; +} + +export function PaginatedSyncLogListFromJSON(json: any): PaginatedSyncLogList { + return PaginatedSyncLogListFromJSONTyped(json, false); +} + +export function PaginatedSyncLogListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedSyncLogList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(SyncLogFromJSON)), + }; +} + +export function PaginatedSyncLogListToJSON(value?: PaginatedSyncLogList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(SyncLogToJSON)), + }; +} + diff --git a/vue3/models/PaginatedUnitList.ts b/vue3/models/PaginatedUnitList.ts new file mode 100644 index 000000000..829dcce31 --- /dev/null +++ b/vue3/models/PaginatedUnitList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * + * @export + * @interface PaginatedUnitList + */ +export interface PaginatedUnitList { + /** + * + * @type {number} + * @memberof PaginatedUnitList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedUnitList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedUnitList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedUnitList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedUnitList interface. + */ +export function instanceOfPaginatedUnitList(value: object): boolean { + return true; +} + +export function PaginatedUnitListFromJSON(json: any): PaginatedUnitList { + return PaginatedUnitListFromJSONTyped(json, false); +} + +export function PaginatedUnitListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedUnitList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(UnitFromJSON)), + }; +} + +export function PaginatedUnitListToJSON(value?: PaginatedUnitList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(UnitToJSON)), + }; +} + diff --git a/vue3/models/PaginatedUserSpaceList.ts b/vue3/models/PaginatedUserSpaceList.ts new file mode 100644 index 000000000..06ed9b417 --- /dev/null +++ b/vue3/models/PaginatedUserSpaceList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { UserSpace } from './UserSpace'; +import { + UserSpaceFromJSON, + UserSpaceFromJSONTyped, + UserSpaceToJSON, +} from './UserSpace'; + +/** + * + * @export + * @interface PaginatedUserSpaceList + */ +export interface PaginatedUserSpaceList { + /** + * + * @type {number} + * @memberof PaginatedUserSpaceList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedUserSpaceList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedUserSpaceList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedUserSpaceList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedUserSpaceList interface. + */ +export function instanceOfPaginatedUserSpaceList(value: object): boolean { + return true; +} + +export function PaginatedUserSpaceListFromJSON(json: any): PaginatedUserSpaceList { + return PaginatedUserSpaceListFromJSONTyped(json, false); +} + +export function PaginatedUserSpaceListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedUserSpaceList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(UserSpaceFromJSON)), + }; +} + +export function PaginatedUserSpaceListToJSON(value?: PaginatedUserSpaceList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(UserSpaceToJSON)), + }; +} + diff --git a/vue3/models/PaginatedViewLogList.ts b/vue3/models/PaginatedViewLogList.ts new file mode 100644 index 000000000..80714af6c --- /dev/null +++ b/vue3/models/PaginatedViewLogList.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { ViewLog } from './ViewLog'; +import { + ViewLogFromJSON, + ViewLogFromJSONTyped, + ViewLogToJSON, +} from './ViewLog'; + +/** + * + * @export + * @interface PaginatedViewLogList + */ +export interface PaginatedViewLogList { + /** + * + * @type {number} + * @memberof PaginatedViewLogList + */ + count?: number; + /** + * + * @type {string} + * @memberof PaginatedViewLogList + */ + next?: string; + /** + * + * @type {string} + * @memberof PaginatedViewLogList + */ + previous?: string; + /** + * + * @type {Array} + * @memberof PaginatedViewLogList + */ + results?: Array; +} + +/** + * Check if a given object implements the PaginatedViewLogList interface. + */ +export function instanceOfPaginatedViewLogList(value: object): boolean { + return true; +} + +export function PaginatedViewLogListFromJSON(json: any): PaginatedViewLogList { + return PaginatedViewLogListFromJSONTyped(json, false); +} + +export function PaginatedViewLogListFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaginatedViewLogList { + if (json == null) { + return json; + } + return { + + 'count': json['count'] == null ? undefined : json['count'], + 'next': json['next'] == null ? undefined : json['next'], + 'previous': json['previous'] == null ? undefined : json['previous'], + 'results': json['results'] == null ? undefined : ((json['results'] as Array).map(ViewLogFromJSON)), + }; +} + +export function PaginatedViewLogListToJSON(value?: PaginatedViewLogList | null): any { + if (value == null) { + return value; + } + return { + + 'count': value['count'], + 'next': value['next'], + 'previous': value['previous'], + 'results': value['results'] == null ? undefined : ((value['results'] as Array).map(ViewLogToJSON)), + }; +} + diff --git a/vue3/models/PatchedAccessToken.ts b/vue3/models/PatchedAccessToken.ts new file mode 100644 index 000000000..eaf7c37e9 --- /dev/null +++ b/vue3/models/PatchedAccessToken.ts @@ -0,0 +1,96 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedAccessToken + */ +export interface PatchedAccessToken { + /** + * + * @type {number} + * @memberof PatchedAccessToken + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedAccessToken + */ + readonly token?: string; + /** + * + * @type {Date} + * @memberof PatchedAccessToken + */ + expires?: Date; + /** + * + * @type {string} + * @memberof PatchedAccessToken + */ + scope?: string; + /** + * + * @type {Date} + * @memberof PatchedAccessToken + */ + readonly created?: Date; + /** + * + * @type {Date} + * @memberof PatchedAccessToken + */ + readonly updated?: Date; +} + +/** + * Check if a given object implements the PatchedAccessToken interface. + */ +export function instanceOfPatchedAccessToken(value: object): boolean { + return true; +} + +export function PatchedAccessTokenFromJSON(json: any): PatchedAccessToken { + return PatchedAccessTokenFromJSONTyped(json, false); +} + +export function PatchedAccessTokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedAccessToken { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'token': json['token'] == null ? undefined : json['token'], + 'expires': json['expires'] == null ? undefined : (new Date(json['expires'])), + 'scope': json['scope'] == null ? undefined : json['scope'], + 'created': json['created'] == null ? undefined : (new Date(json['created'])), + 'updated': json['updated'] == null ? undefined : (new Date(json['updated'])), + }; +} + +export function PatchedAccessTokenToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'expires': value['expires'] == null ? undefined : ((value['expires']).toISOString()), + 'scope': value['scope'], + }; +} + diff --git a/vue3/models/PatchedAutomation.ts b/vue3/models/PatchedAutomation.ts new file mode 100644 index 000000000..1242e80c3 --- /dev/null +++ b/vue3/models/PatchedAutomation.ts @@ -0,0 +1,137 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { TypeEnum } from './TypeEnum'; +import { + TypeEnumFromJSON, + TypeEnumFromJSONTyped, + TypeEnumToJSON, +} from './TypeEnum'; + +/** + * + * @export + * @interface PatchedAutomation + */ +export interface PatchedAutomation { + /** + * + * @type {number} + * @memberof PatchedAutomation + */ + readonly id?: number; + /** + * + * @type {TypeEnum} + * @memberof PatchedAutomation + */ + type?: TypeEnum; + /** + * + * @type {string} + * @memberof PatchedAutomation + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedAutomation + */ + description?: string; + /** + * + * @type {string} + * @memberof PatchedAutomation + */ + param1?: string; + /** + * + * @type {string} + * @memberof PatchedAutomation + */ + param2?: string; + /** + * + * @type {string} + * @memberof PatchedAutomation + */ + param3?: string; + /** + * + * @type {number} + * @memberof PatchedAutomation + */ + order?: number; + /** + * + * @type {boolean} + * @memberof PatchedAutomation + */ + disabled?: boolean; + /** + * + * @type {number} + * @memberof PatchedAutomation + */ + readonly createdBy?: number; +} + +/** + * Check if a given object implements the PatchedAutomation interface. + */ +export function instanceOfPatchedAutomation(value: object): boolean { + return true; +} + +export function PatchedAutomationFromJSON(json: any): PatchedAutomation { + return PatchedAutomationFromJSONTyped(json, false); +} + +export function PatchedAutomationFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedAutomation { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'type': json['type'] == null ? undefined : TypeEnumFromJSON(json['type']), + 'name': json['name'] == null ? undefined : json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'param1': json['param_1'] == null ? undefined : json['param_1'], + 'param2': json['param_2'] == null ? undefined : json['param_2'], + 'param3': json['param_3'] == null ? undefined : json['param_3'], + 'order': json['order'] == null ? undefined : json['order'], + 'disabled': json['disabled'] == null ? undefined : json['disabled'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + }; +} + +export function PatchedAutomationToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'type': TypeEnumToJSON(value['type']), + 'name': value['name'], + 'description': value['description'], + 'param_1': value['param1'], + 'param_2': value['param2'], + 'param_3': value['param3'], + 'order': value['order'], + 'disabled': value['disabled'], + }; +} + diff --git a/vue3/models/PatchedBookmarkletImport.ts b/vue3/models/PatchedBookmarkletImport.ts new file mode 100644 index 000000000..5ef96ea34 --- /dev/null +++ b/vue3/models/PatchedBookmarkletImport.ts @@ -0,0 +1,89 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedBookmarkletImport + */ +export interface PatchedBookmarkletImport { + /** + * + * @type {number} + * @memberof PatchedBookmarkletImport + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedBookmarkletImport + */ + url?: string; + /** + * + * @type {string} + * @memberof PatchedBookmarkletImport + */ + html?: string; + /** + * + * @type {number} + * @memberof PatchedBookmarkletImport + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedBookmarkletImport + */ + readonly createdAt?: Date; +} + +/** + * Check if a given object implements the PatchedBookmarkletImport interface. + */ +export function instanceOfPatchedBookmarkletImport(value: object): boolean { + return true; +} + +export function PatchedBookmarkletImportFromJSON(json: any): PatchedBookmarkletImport { + return PatchedBookmarkletImportFromJSONTyped(json, false); +} + +export function PatchedBookmarkletImportFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedBookmarkletImport { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'url': json['url'] == null ? undefined : json['url'], + 'html': json['html'] == null ? undefined : json['html'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + }; +} + +export function PatchedBookmarkletImportToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'url': value['url'], + 'html': value['html'], + }; +} + diff --git a/vue3/models/PatchedConnectorConfigConfig.ts b/vue3/models/PatchedConnectorConfigConfig.ts new file mode 100644 index 000000000..e6c0b6ffe --- /dev/null +++ b/vue3/models/PatchedConnectorConfigConfig.ts @@ -0,0 +1,130 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedConnectorConfigConfig + */ +export interface PatchedConnectorConfigConfig { + /** + * + * @type {number} + * @memberof PatchedConnectorConfigConfig + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedConnectorConfigConfig + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedConnectorConfigConfig + */ + url?: string; + /** + * + * @type {string} + * @memberof PatchedConnectorConfigConfig + */ + token?: string; + /** + * + * @type {string} + * @memberof PatchedConnectorConfigConfig + */ + todoEntity?: string; + /** + * Is Connector Enabled + * @type {boolean} + * @memberof PatchedConnectorConfigConfig + */ + enabled?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedConnectorConfigConfig + */ + onShoppingListEntryCreatedEnabled?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedConnectorConfigConfig + */ + onShoppingListEntryUpdatedEnabled?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedConnectorConfigConfig + */ + onShoppingListEntryDeletedEnabled?: boolean; + /** + * + * @type {number} + * @memberof PatchedConnectorConfigConfig + */ + readonly createdBy?: number; +} + +/** + * Check if a given object implements the PatchedConnectorConfigConfig interface. + */ +export function instanceOfPatchedConnectorConfigConfig(value: object): boolean { + return true; +} + +export function PatchedConnectorConfigConfigFromJSON(json: any): PatchedConnectorConfigConfig { + return PatchedConnectorConfigConfigFromJSONTyped(json, false); +} + +export function PatchedConnectorConfigConfigFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedConnectorConfigConfig { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'url': json['url'] == null ? undefined : json['url'], + 'token': json['token'] == null ? undefined : json['token'], + 'todoEntity': json['todo_entity'] == null ? undefined : json['todo_entity'], + 'enabled': json['enabled'] == null ? undefined : json['enabled'], + 'onShoppingListEntryCreatedEnabled': json['on_shopping_list_entry_created_enabled'] == null ? undefined : json['on_shopping_list_entry_created_enabled'], + 'onShoppingListEntryUpdatedEnabled': json['on_shopping_list_entry_updated_enabled'] == null ? undefined : json['on_shopping_list_entry_updated_enabled'], + 'onShoppingListEntryDeletedEnabled': json['on_shopping_list_entry_deleted_enabled'] == null ? undefined : json['on_shopping_list_entry_deleted_enabled'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + }; +} + +export function PatchedConnectorConfigConfigToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'url': value['url'], + 'token': value['token'], + 'todo_entity': value['todoEntity'], + 'enabled': value['enabled'], + 'on_shopping_list_entry_created_enabled': value['onShoppingListEntryCreatedEnabled'], + 'on_shopping_list_entry_updated_enabled': value['onShoppingListEntryUpdatedEnabled'], + 'on_shopping_list_entry_deleted_enabled': value['onShoppingListEntryDeletedEnabled'], + }; +} + diff --git a/vue3/models/PatchedCookLog.ts b/vue3/models/PatchedCookLog.ts new file mode 100644 index 000000000..854cd6ea6 --- /dev/null +++ b/vue3/models/PatchedCookLog.ts @@ -0,0 +1,120 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * + * @export + * @interface PatchedCookLog + */ +export interface PatchedCookLog { + /** + * + * @type {number} + * @memberof PatchedCookLog + */ + readonly id?: number; + /** + * + * @type {number} + * @memberof PatchedCookLog + */ + recipe?: number; + /** + * + * @type {number} + * @memberof PatchedCookLog + */ + servings?: number; + /** + * + * @type {number} + * @memberof PatchedCookLog + */ + rating?: number; + /** + * + * @type {string} + * @memberof PatchedCookLog + */ + comment?: string; + /** + * + * @type {User} + * @memberof PatchedCookLog + */ + readonly createdBy?: User; + /** + * + * @type {Date} + * @memberof PatchedCookLog + */ + createdAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedCookLog + */ + readonly updatedAt?: Date; +} + +/** + * Check if a given object implements the PatchedCookLog interface. + */ +export function instanceOfPatchedCookLog(value: object): boolean { + return true; +} + +export function PatchedCookLogFromJSON(json: any): PatchedCookLog { + return PatchedCookLogFromJSONTyped(json, false); +} + +export function PatchedCookLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedCookLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'recipe': json['recipe'] == null ? undefined : json['recipe'], + 'servings': json['servings'] == null ? undefined : json['servings'], + 'rating': json['rating'] == null ? undefined : json['rating'], + 'comment': json['comment'] == null ? undefined : json['comment'], + 'createdBy': json['created_by'] == null ? undefined : UserFromJSON(json['created_by']), + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': json['updated_at'] == null ? undefined : (new Date(json['updated_at'])), + }; +} + +export function PatchedCookLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'recipe': value['recipe'], + 'servings': value['servings'], + 'rating': value['rating'], + 'comment': value['comment'], + 'created_at': value['createdAt'] == null ? undefined : ((value['createdAt']).toISOString()), + }; +} + diff --git a/vue3/models/PatchedCustomFilter.ts b/vue3/models/PatchedCustomFilter.ts new file mode 100644 index 000000000..2cc0113bb --- /dev/null +++ b/vue3/models/PatchedCustomFilter.ts @@ -0,0 +1,97 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface PatchedCustomFilter + */ +export interface PatchedCustomFilter { + /** + * + * @type {number} + * @memberof PatchedCustomFilter + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedCustomFilter + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedCustomFilter + */ + search?: string; + /** + * + * @type {Array} + * @memberof PatchedCustomFilter + */ + shared?: Array; + /** + * + * @type {number} + * @memberof PatchedCustomFilter + */ + readonly createdBy?: number; +} + +/** + * Check if a given object implements the PatchedCustomFilter interface. + */ +export function instanceOfPatchedCustomFilter(value: object): boolean { + return true; +} + +export function PatchedCustomFilterFromJSON(json: any): PatchedCustomFilter { + return PatchedCustomFilterFromJSONTyped(json, false); +} + +export function PatchedCustomFilterFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedCustomFilter { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'search': json['search'] == null ? undefined : json['search'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + }; +} + +export function PatchedCustomFilterToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'search': value['search'], + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + }; +} + diff --git a/vue3/models/PatchedExportLog.ts b/vue3/models/PatchedExportLog.ts new file mode 100644 index 000000000..94ae95578 --- /dev/null +++ b/vue3/models/PatchedExportLog.ts @@ -0,0 +1,129 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedExportLog + */ +export interface PatchedExportLog { + /** + * + * @type {number} + * @memberof PatchedExportLog + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedExportLog + */ + type?: string; + /** + * + * @type {string} + * @memberof PatchedExportLog + */ + msg?: string; + /** + * + * @type {boolean} + * @memberof PatchedExportLog + */ + running?: boolean; + /** + * + * @type {number} + * @memberof PatchedExportLog + */ + totalRecipes?: number; + /** + * + * @type {number} + * @memberof PatchedExportLog + */ + exportedRecipes?: number; + /** + * + * @type {number} + * @memberof PatchedExportLog + */ + cacheDuration?: number; + /** + * + * @type {boolean} + * @memberof PatchedExportLog + */ + possiblyNotExpired?: boolean; + /** + * + * @type {number} + * @memberof PatchedExportLog + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedExportLog + */ + readonly createdAt?: Date; +} + +/** + * Check if a given object implements the PatchedExportLog interface. + */ +export function instanceOfPatchedExportLog(value: object): boolean { + return true; +} + +export function PatchedExportLogFromJSON(json: any): PatchedExportLog { + return PatchedExportLogFromJSONTyped(json, false); +} + +export function PatchedExportLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedExportLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'type': json['type'] == null ? undefined : json['type'], + 'msg': json['msg'] == null ? undefined : json['msg'], + 'running': json['running'] == null ? undefined : json['running'], + 'totalRecipes': json['total_recipes'] == null ? undefined : json['total_recipes'], + 'exportedRecipes': json['exported_recipes'] == null ? undefined : json['exported_recipes'], + 'cacheDuration': json['cache_duration'] == null ? undefined : json['cache_duration'], + 'possiblyNotExpired': json['possibly_not_expired'] == null ? undefined : json['possibly_not_expired'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + }; +} + +export function PatchedExportLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'type': value['type'], + 'msg': value['msg'], + 'running': value['running'], + 'total_recipes': value['totalRecipes'], + 'exported_recipes': value['exportedRecipes'], + 'cache_duration': value['cacheDuration'], + 'possibly_not_expired': value['possiblyNotExpired'], + }; +} + diff --git a/vue3/models/PatchedFood.ts b/vue3/models/PatchedFood.ts new file mode 100644 index 000000000..359c8a5e6 --- /dev/null +++ b/vue3/models/PatchedFood.ts @@ -0,0 +1,310 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { FoodInheritField } from './FoodInheritField'; +import { + FoodInheritFieldFromJSON, + FoodInheritFieldFromJSONTyped, + FoodInheritFieldToJSON, +} from './FoodInheritField'; +import type { FoodSimple } from './FoodSimple'; +import { + FoodSimpleFromJSON, + FoodSimpleFromJSONTyped, + FoodSimpleToJSON, +} from './FoodSimple'; +import type { Property } from './Property'; +import { + PropertyFromJSON, + PropertyFromJSONTyped, + PropertyToJSON, +} from './Property'; +import type { RecipeSimple } from './RecipeSimple'; +import { + RecipeSimpleFromJSON, + RecipeSimpleFromJSONTyped, + RecipeSimpleToJSON, +} from './RecipeSimple'; +import type { SupermarketCategory } from './SupermarketCategory'; +import { + SupermarketCategoryFromJSON, + SupermarketCategoryFromJSONTyped, + SupermarketCategoryToJSON, +} from './SupermarketCategory'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface PatchedFood + */ +export interface PatchedFood { + /** + * + * @type {number} + * @memberof PatchedFood + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedFood + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedFood + */ + pluralName?: string; + /** + * + * @type {string} + * @memberof PatchedFood + */ + description?: string; + /** + * + * @type {string} + * @memberof PatchedFood + */ + readonly shopping?: string; + /** + * + * @type {RecipeSimple} + * @memberof PatchedFood + */ + recipe?: RecipeSimple; + /** + * + * @type {string} + * @memberof PatchedFood + */ + url?: string; + /** + * + * @type {Array} + * @memberof PatchedFood + */ + properties?: Array; + /** + * + * @type {number} + * @memberof PatchedFood + */ + propertiesFoodAmount?: number; + /** + * + * @type {Unit} + * @memberof PatchedFood + */ + propertiesFoodUnit?: Unit; + /** + * + * @type {number} + * @memberof PatchedFood + */ + fdcId?: number; + /** + * + * @type {boolean} + * @memberof PatchedFood + */ + foodOnhand?: boolean; + /** + * + * @type {SupermarketCategory} + * @memberof PatchedFood + */ + supermarketCategory?: SupermarketCategory; + /** + * + * @type {number} + * @memberof PatchedFood + */ + readonly parent?: number; + /** + * + * @type {number} + * @memberof PatchedFood + */ + readonly numchild?: number; + /** + * + * @type {Array} + * @memberof PatchedFood + */ + inheritFields?: Array; + /** + * Returns a string representation of a tree node and it's ancestors, + * e.g. 'Cuisine > Asian > Chinese > Catonese'. + * @type {string} + * @memberof PatchedFood + */ + readonly fullName?: string; + /** + * + * @type {boolean} + * @memberof PatchedFood + */ + ignoreShopping?: boolean; + /** + * + * @type {Array} + * @memberof PatchedFood + */ + substitute?: Array; + /** + * + * @type {boolean} + * @memberof PatchedFood + */ + substituteSiblings?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedFood + */ + substituteChildren?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedFood + */ + readonly substituteOnhand?: boolean; + /** + * + * @type {Array} + * @memberof PatchedFood + */ + childInheritFields?: Array; + /** + * + * @type {string} + * @memberof PatchedFood + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the PatchedFood interface. + */ +export function instanceOfPatchedFood(value: object): boolean { + return true; +} + +export function PatchedFoodFromJSON(json: any): PatchedFood { + return PatchedFoodFromJSONTyped(json, false); +} + +export function PatchedFoodFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedFood { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'pluralName': json['plural_name'] == null ? undefined : json['plural_name'], + 'description': json['description'] == null ? undefined : json['description'], + 'shopping': json['shopping'] == null ? undefined : json['shopping'], + 'recipe': json['recipe'] == null ? undefined : RecipeSimpleFromJSON(json['recipe']), + 'url': json['url'] == null ? undefined : json['url'], + 'properties': json['properties'] == null ? undefined : ((json['properties'] as Array).map(PropertyFromJSON)), + 'propertiesFoodAmount': json['properties_food_amount'] == null ? undefined : json['properties_food_amount'], + 'propertiesFoodUnit': json['properties_food_unit'] == null ? undefined : UnitFromJSON(json['properties_food_unit']), + 'fdcId': json['fdc_id'] == null ? undefined : json['fdc_id'], + 'foodOnhand': json['food_onhand'] == null ? undefined : json['food_onhand'], + 'supermarketCategory': json['supermarket_category'] == null ? undefined : SupermarketCategoryFromJSON(json['supermarket_category']), + 'parent': json['parent'] == null ? undefined : json['parent'], + 'numchild': json['numchild'] == null ? undefined : json['numchild'], + 'inheritFields': json['inherit_fields'] == null ? undefined : ((json['inherit_fields'] as Array).map(FoodInheritFieldFromJSON)), + 'fullName': json['full_name'] == null ? undefined : json['full_name'], + 'ignoreShopping': json['ignore_shopping'] == null ? undefined : json['ignore_shopping'], + 'substitute': json['substitute'] == null ? undefined : ((json['substitute'] as Array).map(FoodSimpleFromJSON)), + 'substituteSiblings': json['substitute_siblings'] == null ? undefined : json['substitute_siblings'], + 'substituteChildren': json['substitute_children'] == null ? undefined : json['substitute_children'], + 'substituteOnhand': json['substitute_onhand'] == null ? undefined : json['substitute_onhand'], + 'childInheritFields': json['child_inherit_fields'] == null ? undefined : ((json['child_inherit_fields'] as Array).map(FoodInheritFieldFromJSON)), + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function PatchedFoodToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'plural_name': value['pluralName'], + 'description': value['description'], + 'recipe': RecipeSimpleToJSON(value['recipe']), + 'url': value['url'], + 'properties': value['properties'] == null ? undefined : ((value['properties'] as Array).map(PropertyToJSON)), + 'properties_food_amount': value['propertiesFoodAmount'], + 'properties_food_unit': UnitToJSON(value['propertiesFoodUnit']), + 'fdc_id': value['fdcId'], + 'food_onhand': value['foodOnhand'], + 'supermarket_category': SupermarketCategoryToJSON(value['supermarketCategory']), + 'inherit_fields': value['inheritFields'] == null ? undefined : ((value['inheritFields'] as Array).map(FoodInheritFieldToJSON)), + 'ignore_shopping': value['ignoreShopping'], + 'substitute': value['substitute'] == null ? undefined : ((value['substitute'] as Array).map(FoodSimpleToJSON)), + 'substitute_siblings': value['substituteSiblings'], + 'substitute_children': value['substituteChildren'], + 'child_inherit_fields': value['childInheritFields'] == null ? undefined : ((value['childInheritFields'] as Array).map(FoodInheritFieldToJSON)), + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/PatchedImportLog.ts b/vue3/models/PatchedImportLog.ts new file mode 100644 index 000000000..84d551365 --- /dev/null +++ b/vue3/models/PatchedImportLog.ts @@ -0,0 +1,127 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Keyword } from './Keyword'; +import { + KeywordFromJSON, + KeywordFromJSONTyped, + KeywordToJSON, +} from './Keyword'; + +/** + * + * @export + * @interface PatchedImportLog + */ +export interface PatchedImportLog { + /** + * + * @type {number} + * @memberof PatchedImportLog + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedImportLog + */ + type?: string; + /** + * + * @type {string} + * @memberof PatchedImportLog + */ + msg?: string; + /** + * + * @type {boolean} + * @memberof PatchedImportLog + */ + running?: boolean; + /** + * + * @type {Keyword} + * @memberof PatchedImportLog + */ + readonly keyword?: Keyword; + /** + * + * @type {number} + * @memberof PatchedImportLog + */ + totalRecipes?: number; + /** + * + * @type {number} + * @memberof PatchedImportLog + */ + importedRecipes?: number; + /** + * + * @type {number} + * @memberof PatchedImportLog + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedImportLog + */ + readonly createdAt?: Date; +} + +/** + * Check if a given object implements the PatchedImportLog interface. + */ +export function instanceOfPatchedImportLog(value: object): boolean { + return true; +} + +export function PatchedImportLogFromJSON(json: any): PatchedImportLog { + return PatchedImportLogFromJSONTyped(json, false); +} + +export function PatchedImportLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedImportLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'type': json['type'] == null ? undefined : json['type'], + 'msg': json['msg'] == null ? undefined : json['msg'], + 'running': json['running'] == null ? undefined : json['running'], + 'keyword': json['keyword'] == null ? undefined : KeywordFromJSON(json['keyword']), + 'totalRecipes': json['total_recipes'] == null ? undefined : json['total_recipes'], + 'importedRecipes': json['imported_recipes'] == null ? undefined : json['imported_recipes'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + }; +} + +export function PatchedImportLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'type': value['type'], + 'msg': value['msg'], + 'running': value['running'], + 'total_recipes': value['totalRecipes'], + 'imported_recipes': value['importedRecipes'], + }; +} + diff --git a/vue3/models/PatchedIngredient.ts b/vue3/models/PatchedIngredient.ts new file mode 100644 index 000000000..188aeebb9 --- /dev/null +++ b/vue3/models/PatchedIngredient.ts @@ -0,0 +1,166 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * Adds nested create feature + * @export + * @interface PatchedIngredient + */ +export interface PatchedIngredient { + /** + * + * @type {number} + * @memberof PatchedIngredient + */ + readonly id?: number; + /** + * + * @type {Food} + * @memberof PatchedIngredient + */ + food?: Food; + /** + * + * @type {Unit} + * @memberof PatchedIngredient + */ + unit?: Unit; + /** + * + * @type {number} + * @memberof PatchedIngredient + */ + amount?: number; + /** + * + * @type {Array} + * @memberof PatchedIngredient + */ + readonly conversions?: Array; + /** + * + * @type {string} + * @memberof PatchedIngredient + */ + note?: string; + /** + * + * @type {number} + * @memberof PatchedIngredient + */ + order?: number; + /** + * + * @type {boolean} + * @memberof PatchedIngredient + */ + isHeader?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedIngredient + */ + noAmount?: boolean; + /** + * + * @type {string} + * @memberof PatchedIngredient + */ + originalText?: string; + /** + * + * @type {Array} + * @memberof PatchedIngredient + */ + readonly usedInRecipes?: Array; + /** + * + * @type {boolean} + * @memberof PatchedIngredient + */ + alwaysUsePluralUnit?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedIngredient + */ + alwaysUsePluralFood?: boolean; +} + +/** + * Check if a given object implements the PatchedIngredient interface. + */ +export function instanceOfPatchedIngredient(value: object): boolean { + return true; +} + +export function PatchedIngredientFromJSON(json: any): PatchedIngredient { + return PatchedIngredientFromJSONTyped(json, false); +} + +export function PatchedIngredientFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedIngredient { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'food': json['food'] == null ? undefined : FoodFromJSON(json['food']), + 'unit': json['unit'] == null ? undefined : UnitFromJSON(json['unit']), + 'amount': json['amount'] == null ? undefined : json['amount'], + 'conversions': json['conversions'] == null ? undefined : json['conversions'], + 'note': json['note'] == null ? undefined : json['note'], + 'order': json['order'] == null ? undefined : json['order'], + 'isHeader': json['is_header'] == null ? undefined : json['is_header'], + 'noAmount': json['no_amount'] == null ? undefined : json['no_amount'], + 'originalText': json['original_text'] == null ? undefined : json['original_text'], + 'usedInRecipes': json['used_in_recipes'] == null ? undefined : json['used_in_recipes'], + 'alwaysUsePluralUnit': json['always_use_plural_unit'] == null ? undefined : json['always_use_plural_unit'], + 'alwaysUsePluralFood': json['always_use_plural_food'] == null ? undefined : json['always_use_plural_food'], + }; +} + +export function PatchedIngredientToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'food': FoodToJSON(value['food']), + 'unit': UnitToJSON(value['unit']), + 'amount': value['amount'], + 'note': value['note'], + 'order': value['order'], + 'is_header': value['isHeader'], + 'no_amount': value['noAmount'], + 'original_text': value['originalText'], + 'always_use_plural_unit': value['alwaysUsePluralUnit'], + 'always_use_plural_food': value['alwaysUsePluralFood'], + }; +} + diff --git a/vue3/models/PatchedInviteLink.ts b/vue3/models/PatchedInviteLink.ts new file mode 100644 index 000000000..38a45ce6d --- /dev/null +++ b/vue3/models/PatchedInviteLink.ts @@ -0,0 +1,135 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Group } from './Group'; +import { + GroupFromJSON, + GroupFromJSONTyped, + GroupToJSON, +} from './Group'; + +/** + * Adds nested create feature + * @export + * @interface PatchedInviteLink + */ +export interface PatchedInviteLink { + /** + * + * @type {number} + * @memberof PatchedInviteLink + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedInviteLink + */ + readonly uuid?: string; + /** + * + * @type {string} + * @memberof PatchedInviteLink + */ + email?: string; + /** + * + * @type {Group} + * @memberof PatchedInviteLink + */ + group?: Group; + /** + * + * @type {Date} + * @memberof PatchedInviteLink + */ + validUntil?: Date; + /** + * + * @type {number} + * @memberof PatchedInviteLink + */ + usedBy?: number; + /** + * + * @type {boolean} + * @memberof PatchedInviteLink + */ + reusable?: boolean; + /** + * + * @type {string} + * @memberof PatchedInviteLink + */ + internalNote?: string; + /** + * + * @type {number} + * @memberof PatchedInviteLink + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedInviteLink + */ + readonly createdAt?: Date; +} + +/** + * Check if a given object implements the PatchedInviteLink interface. + */ +export function instanceOfPatchedInviteLink(value: object): boolean { + return true; +} + +export function PatchedInviteLinkFromJSON(json: any): PatchedInviteLink { + return PatchedInviteLinkFromJSONTyped(json, false); +} + +export function PatchedInviteLinkFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedInviteLink { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'uuid': json['uuid'] == null ? undefined : json['uuid'], + 'email': json['email'] == null ? undefined : json['email'], + 'group': json['group'] == null ? undefined : GroupFromJSON(json['group']), + 'validUntil': json['valid_until'] == null ? undefined : (new Date(json['valid_until'])), + 'usedBy': json['used_by'] == null ? undefined : json['used_by'], + 'reusable': json['reusable'] == null ? undefined : json['reusable'], + 'internalNote': json['internal_note'] == null ? undefined : json['internal_note'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + }; +} + +export function PatchedInviteLinkToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'email': value['email'], + 'group': GroupToJSON(value['group']), + 'valid_until': value['validUntil'] == null ? undefined : ((value['validUntil']).toISOString().substring(0,10)), + 'used_by': value['usedBy'], + 'reusable': value['reusable'], + 'internal_note': value['internalNote'], + }; +} + diff --git a/vue3/models/PatchedKeyword.ts b/vue3/models/PatchedKeyword.ts new file mode 100644 index 000000000..2b5f90ada --- /dev/null +++ b/vue3/models/PatchedKeyword.ts @@ -0,0 +1,152 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface PatchedKeyword + */ +export interface PatchedKeyword { + /** + * + * @type {number} + * @memberof PatchedKeyword + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedKeyword + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedKeyword + */ + readonly label?: string; + /** + * + * @type {string} + * @memberof PatchedKeyword + */ + description?: string; + /** + * + * @type {number} + * @memberof PatchedKeyword + */ + readonly parent?: number; + /** + * + * @type {number} + * @memberof PatchedKeyword + */ + readonly numchild?: number; + /** + * + * @type {Date} + * @memberof PatchedKeyword + */ + readonly createdAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedKeyword + */ + readonly updatedAt?: Date; + /** + * Returns a string representation of a tree node and it's ancestors, + * e.g. 'Cuisine > Asian > Chinese > Catonese'. + * @type {string} + * @memberof PatchedKeyword + */ + readonly fullName?: string; +} + +/** + * Check if a given object implements the PatchedKeyword interface. + */ +export function instanceOfPatchedKeyword(value: object): boolean { + return true; +} + +export function PatchedKeywordFromJSON(json: any): PatchedKeyword { + return PatchedKeywordFromJSONTyped(json, false); +} + +export function PatchedKeywordFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedKeyword { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'label': json['label'] == null ? undefined : json['label'], + 'description': json['description'] == null ? undefined : json['description'], + 'parent': json['parent'] == null ? undefined : json['parent'], + 'numchild': json['numchild'] == null ? undefined : json['numchild'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': json['updated_at'] == null ? undefined : (new Date(json['updated_at'])), + 'fullName': json['full_name'] == null ? undefined : json['full_name'], + }; +} + +export function PatchedKeywordToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + }; +} + diff --git a/vue3/models/PatchedMealPlan.ts b/vue3/models/PatchedMealPlan.ts new file mode 100644 index 000000000..eaa1c651e --- /dev/null +++ b/vue3/models/PatchedMealPlan.ts @@ -0,0 +1,177 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { MealType } from './MealType'; +import { + MealTypeFromJSON, + MealTypeFromJSONTyped, + MealTypeToJSON, +} from './MealType'; +import type { RecipeOverview } from './RecipeOverview'; +import { + RecipeOverviewFromJSON, + RecipeOverviewFromJSONTyped, + RecipeOverviewToJSON, +} from './RecipeOverview'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface PatchedMealPlan + */ +export interface PatchedMealPlan { + /** + * + * @type {number} + * @memberof PatchedMealPlan + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedMealPlan + */ + title?: string; + /** + * + * @type {RecipeOverview} + * @memberof PatchedMealPlan + */ + recipe?: RecipeOverview; + /** + * + * @type {number} + * @memberof PatchedMealPlan + */ + servings?: number; + /** + * + * @type {string} + * @memberof PatchedMealPlan + */ + note?: string; + /** + * + * @type {string} + * @memberof PatchedMealPlan + */ + readonly noteMarkdown?: string; + /** + * + * @type {Date} + * @memberof PatchedMealPlan + */ + fromDate?: Date; + /** + * + * @type {Date} + * @memberof PatchedMealPlan + */ + toDate?: Date; + /** + * + * @type {MealType} + * @memberof PatchedMealPlan + */ + mealType?: MealType; + /** + * + * @type {number} + * @memberof PatchedMealPlan + */ + readonly createdBy?: number; + /** + * + * @type {Array} + * @memberof PatchedMealPlan + */ + shared?: Array; + /** + * + * @type {string} + * @memberof PatchedMealPlan + */ + readonly recipeName?: string; + /** + * + * @type {string} + * @memberof PatchedMealPlan + */ + readonly mealTypeName?: string; + /** + * + * @type {boolean} + * @memberof PatchedMealPlan + */ + readonly shopping?: boolean; +} + +/** + * Check if a given object implements the PatchedMealPlan interface. + */ +export function instanceOfPatchedMealPlan(value: object): boolean { + return true; +} + +export function PatchedMealPlanFromJSON(json: any): PatchedMealPlan { + return PatchedMealPlanFromJSONTyped(json, false); +} + +export function PatchedMealPlanFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedMealPlan { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'title': json['title'] == null ? undefined : json['title'], + 'recipe': json['recipe'] == null ? undefined : RecipeOverviewFromJSON(json['recipe']), + 'servings': json['servings'] == null ? undefined : json['servings'], + 'note': json['note'] == null ? undefined : json['note'], + 'noteMarkdown': json['note_markdown'] == null ? undefined : json['note_markdown'], + 'fromDate': json['from_date'] == null ? undefined : (new Date(json['from_date'])), + 'toDate': json['to_date'] == null ? undefined : (new Date(json['to_date'])), + 'mealType': json['meal_type'] == null ? undefined : MealTypeFromJSON(json['meal_type']), + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + 'recipeName': json['recipe_name'] == null ? undefined : json['recipe_name'], + 'mealTypeName': json['meal_type_name'] == null ? undefined : json['meal_type_name'], + 'shopping': json['shopping'] == null ? undefined : json['shopping'], + }; +} + +export function PatchedMealPlanToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'title': value['title'], + 'recipe': RecipeOverviewToJSON(value['recipe']), + 'servings': value['servings'], + 'note': value['note'], + 'from_date': value['fromDate'] == null ? undefined : ((value['fromDate']).toISOString().substring(0,10)), + 'to_date': value['toDate'] == null ? undefined : ((value['toDate']).toISOString().substring(0,10)), + 'meal_type': MealTypeToJSON(value['mealType']), + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + }; +} + diff --git a/vue3/models/PatchedMealType.ts b/vue3/models/PatchedMealType.ts new file mode 100644 index 000000000..ba88e8aad --- /dev/null +++ b/vue3/models/PatchedMealType.ts @@ -0,0 +1,98 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface PatchedMealType + */ +export interface PatchedMealType { + /** + * + * @type {number} + * @memberof PatchedMealType + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedMealType + */ + name?: string; + /** + * + * @type {number} + * @memberof PatchedMealType + */ + order?: number; + /** + * + * @type {string} + * @memberof PatchedMealType + */ + color?: string; + /** + * + * @type {boolean} + * @memberof PatchedMealType + */ + _default?: boolean; + /** + * + * @type {number} + * @memberof PatchedMealType + */ + readonly createdBy?: number; +} + +/** + * Check if a given object implements the PatchedMealType interface. + */ +export function instanceOfPatchedMealType(value: object): boolean { + return true; +} + +export function PatchedMealTypeFromJSON(json: any): PatchedMealType { + return PatchedMealTypeFromJSONTyped(json, false); +} + +export function PatchedMealTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedMealType { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'order': json['order'] == null ? undefined : json['order'], + 'color': json['color'] == null ? undefined : json['color'], + '_default': json['default'] == null ? undefined : json['default'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + }; +} + +export function PatchedMealTypeToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'order': value['order'], + 'color': value['color'], + 'default': value['_default'], + }; +} + diff --git a/vue3/models/PatchedProperty.ts b/vue3/models/PatchedProperty.ts new file mode 100644 index 000000000..2e9c3be97 --- /dev/null +++ b/vue3/models/PatchedProperty.ts @@ -0,0 +1,116 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { PropertyType } from './PropertyType'; +import { + PropertyTypeFromJSON, + PropertyTypeFromJSONTyped, + PropertyTypeToJSON, +} from './PropertyType'; + +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface PatchedProperty + */ +export interface PatchedProperty { + /** + * + * @type {number} + * @memberof PatchedProperty + */ + readonly id?: number; + /** + * + * @type {number} + * @memberof PatchedProperty + */ + propertyAmount?: number; + /** + * + * @type {PropertyType} + * @memberof PatchedProperty + */ + propertyType?: PropertyType; +} + +/** + * Check if a given object implements the PatchedProperty interface. + */ +export function instanceOfPatchedProperty(value: object): boolean { + return true; +} + +export function PatchedPropertyFromJSON(json: any): PatchedProperty { + return PatchedPropertyFromJSONTyped(json, false); +} + +export function PatchedPropertyFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedProperty { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'propertyAmount': json['property_amount'] == null ? undefined : json['property_amount'], + 'propertyType': json['property_type'] == null ? undefined : PropertyTypeFromJSON(json['property_type']), + }; +} + +export function PatchedPropertyToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'property_amount': value['propertyAmount'], + 'property_type': PropertyTypeToJSON(value['propertyType']), + }; +} + diff --git a/vue3/models/PatchedPropertyType.ts b/vue3/models/PatchedPropertyType.ts new file mode 100644 index 000000000..f2d895035 --- /dev/null +++ b/vue3/models/PatchedPropertyType.ts @@ -0,0 +1,108 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface PatchedPropertyType + */ +export interface PatchedPropertyType { + /** + * + * @type {number} + * @memberof PatchedPropertyType + */ + id?: number; + /** + * + * @type {string} + * @memberof PatchedPropertyType + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedPropertyType + */ + unit?: string; + /** + * + * @type {string} + * @memberof PatchedPropertyType + */ + description?: string; + /** + * + * @type {number} + * @memberof PatchedPropertyType + */ + order?: number; + /** + * + * @type {string} + * @memberof PatchedPropertyType + */ + openDataSlug?: string; + /** + * + * @type {number} + * @memberof PatchedPropertyType + */ + fdcId?: number; +} + +/** + * Check if a given object implements the PatchedPropertyType interface. + */ +export function instanceOfPatchedPropertyType(value: object): boolean { + return true; +} + +export function PatchedPropertyTypeFromJSON(json: any): PatchedPropertyType { + return PatchedPropertyTypeFromJSONTyped(json, false); +} + +export function PatchedPropertyTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedPropertyType { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'unit': json['unit'] == null ? undefined : json['unit'], + 'description': json['description'] == null ? undefined : json['description'], + 'order': json['order'] == null ? undefined : json['order'], + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + 'fdcId': json['fdc_id'] == null ? undefined : json['fdc_id'], + }; +} + +export function PatchedPropertyTypeToJSON(value?: PatchedPropertyType | null): any { + if (value == null) { + return value; + } + return { + + 'id': value['id'], + 'name': value['name'], + 'unit': value['unit'], + 'description': value['description'], + 'order': value['order'], + 'open_data_slug': value['openDataSlug'], + 'fdc_id': value['fdcId'], + }; +} + diff --git a/vue3/models/PatchedRecipe.ts b/vue3/models/PatchedRecipe.ts new file mode 100644 index 000000000..d14ca8ece --- /dev/null +++ b/vue3/models/PatchedRecipe.ts @@ -0,0 +1,267 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Keyword } from './Keyword'; +import { + KeywordFromJSON, + KeywordFromJSONTyped, + KeywordToJSON, +} from './Keyword'; +import type { NutritionInformation } from './NutritionInformation'; +import { + NutritionInformationFromJSON, + NutritionInformationFromJSONTyped, + NutritionInformationToJSON, +} from './NutritionInformation'; +import type { Property } from './Property'; +import { + PropertyFromJSON, + PropertyFromJSONTyped, + PropertyToJSON, +} from './Property'; +import type { Step } from './Step'; +import { + StepFromJSON, + StepFromJSONTyped, + StepToJSON, +} from './Step'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface PatchedRecipe + */ +export interface PatchedRecipe { + /** + * + * @type {number} + * @memberof PatchedRecipe + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedRecipe + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedRecipe + */ + description?: string; + /** + * + * @type {string} + * @memberof PatchedRecipe + */ + readonly image?: string; + /** + * + * @type {Array} + * @memberof PatchedRecipe + */ + keywords?: Array; + /** + * + * @type {Array} + * @memberof PatchedRecipe + */ + steps?: Array; + /** + * + * @type {number} + * @memberof PatchedRecipe + */ + workingTime?: number; + /** + * + * @type {number} + * @memberof PatchedRecipe + */ + waitingTime?: number; + /** + * + * @type {number} + * @memberof PatchedRecipe + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedRecipe + */ + readonly createdAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedRecipe + */ + readonly updatedAt?: Date; + /** + * + * @type {string} + * @memberof PatchedRecipe + */ + sourceUrl?: string; + /** + * + * @type {boolean} + * @memberof PatchedRecipe + */ + internal?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedRecipe + */ + showIngredientOverview?: boolean; + /** + * + * @type {NutritionInformation} + * @memberof PatchedRecipe + */ + nutrition?: NutritionInformation; + /** + * + * @type {Array} + * @memberof PatchedRecipe + */ + properties?: Array; + /** + * + * @type {any} + * @memberof PatchedRecipe + */ + readonly foodProperties?: any; + /** + * + * @type {number} + * @memberof PatchedRecipe + */ + servings?: number; + /** + * + * @type {string} + * @memberof PatchedRecipe + */ + filePath?: string; + /** + * + * @type {string} + * @memberof PatchedRecipe + */ + servingsText?: string; + /** + * + * @type {number} + * @memberof PatchedRecipe + */ + readonly rating?: number; + /** + * + * @type {Date} + * @memberof PatchedRecipe + */ + readonly lastCooked?: Date; + /** + * + * @type {boolean} + * @memberof PatchedRecipe + */ + _private?: boolean; + /** + * + * @type {Array} + * @memberof PatchedRecipe + */ + shared?: Array; +} + +/** + * Check if a given object implements the PatchedRecipe interface. + */ +export function instanceOfPatchedRecipe(value: object): boolean { + return true; +} + +export function PatchedRecipeFromJSON(json: any): PatchedRecipe { + return PatchedRecipeFromJSONTyped(json, false); +} + +export function PatchedRecipeFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedRecipe { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'image': json['image'] == null ? undefined : json['image'], + 'keywords': json['keywords'] == null ? undefined : ((json['keywords'] as Array).map(KeywordFromJSON)), + 'steps': json['steps'] == null ? undefined : ((json['steps'] as Array).map(StepFromJSON)), + 'workingTime': json['working_time'] == null ? undefined : json['working_time'], + 'waitingTime': json['waiting_time'] == null ? undefined : json['waiting_time'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': json['updated_at'] == null ? undefined : (new Date(json['updated_at'])), + 'sourceUrl': json['source_url'] == null ? undefined : json['source_url'], + 'internal': json['internal'] == null ? undefined : json['internal'], + 'showIngredientOverview': json['show_ingredient_overview'] == null ? undefined : json['show_ingredient_overview'], + 'nutrition': json['nutrition'] == null ? undefined : NutritionInformationFromJSON(json['nutrition']), + 'properties': json['properties'] == null ? undefined : ((json['properties'] as Array).map(PropertyFromJSON)), + 'foodProperties': json['food_properties'] == null ? undefined : json['food_properties'], + 'servings': json['servings'] == null ? undefined : json['servings'], + 'filePath': json['file_path'] == null ? undefined : json['file_path'], + 'servingsText': json['servings_text'] == null ? undefined : json['servings_text'], + 'rating': json['rating'] == null ? undefined : json['rating'], + 'lastCooked': json['last_cooked'] == null ? undefined : (new Date(json['last_cooked'])), + '_private': json['private'] == null ? undefined : json['private'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + }; +} + +export function PatchedRecipeToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + 'keywords': value['keywords'] == null ? undefined : ((value['keywords'] as Array).map(KeywordToJSON)), + 'steps': value['steps'] == null ? undefined : ((value['steps'] as Array).map(StepToJSON)), + 'working_time': value['workingTime'], + 'waiting_time': value['waitingTime'], + 'source_url': value['sourceUrl'], + 'internal': value['internal'], + 'show_ingredient_overview': value['showIngredientOverview'], + 'nutrition': NutritionInformationToJSON(value['nutrition']), + 'properties': value['properties'] == null ? undefined : ((value['properties'] as Array).map(PropertyToJSON)), + 'servings': value['servings'], + 'file_path': value['filePath'], + 'servings_text': value['servingsText'], + 'private': value['_private'], + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + }; +} + diff --git a/vue3/models/PatchedRecipeBook.ts b/vue3/models/PatchedRecipeBook.ts new file mode 100644 index 000000000..037942f33 --- /dev/null +++ b/vue3/models/PatchedRecipeBook.ts @@ -0,0 +1,119 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { CustomFilter } from './CustomFilter'; +import { + CustomFilterFromJSON, + CustomFilterFromJSONTyped, + CustomFilterToJSON, +} from './CustomFilter'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface PatchedRecipeBook + */ +export interface PatchedRecipeBook { + /** + * + * @type {number} + * @memberof PatchedRecipeBook + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedRecipeBook + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedRecipeBook + */ + description?: string; + /** + * + * @type {Array} + * @memberof PatchedRecipeBook + */ + shared?: Array; + /** + * + * @type {number} + * @memberof PatchedRecipeBook + */ + readonly createdBy?: number; + /** + * + * @type {CustomFilter} + * @memberof PatchedRecipeBook + */ + filter?: CustomFilter; + /** + * + * @type {number} + * @memberof PatchedRecipeBook + */ + order?: number; +} + +/** + * Check if a given object implements the PatchedRecipeBook interface. + */ +export function instanceOfPatchedRecipeBook(value: object): boolean { + return true; +} + +export function PatchedRecipeBookFromJSON(json: any): PatchedRecipeBook { + return PatchedRecipeBookFromJSONTyped(json, false); +} + +export function PatchedRecipeBookFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedRecipeBook { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'filter': json['filter'] == null ? undefined : CustomFilterFromJSON(json['filter']), + 'order': json['order'] == null ? undefined : json['order'], + }; +} + +export function PatchedRecipeBookToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + 'filter': CustomFilterToJSON(value['filter']), + 'order': value['order'], + }; +} + diff --git a/vue3/models/PatchedRecipeBookEntry.ts b/vue3/models/PatchedRecipeBookEntry.ts new file mode 100644 index 000000000..cc47d6be1 --- /dev/null +++ b/vue3/models/PatchedRecipeBookEntry.ts @@ -0,0 +1,102 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { RecipeBook } from './RecipeBook'; +import { + RecipeBookFromJSON, + RecipeBookFromJSONTyped, + RecipeBookToJSON, +} from './RecipeBook'; +import type { RecipeOverview } from './RecipeOverview'; +import { + RecipeOverviewFromJSON, + RecipeOverviewFromJSONTyped, + RecipeOverviewToJSON, +} from './RecipeOverview'; + +/** + * + * @export + * @interface PatchedRecipeBookEntry + */ +export interface PatchedRecipeBookEntry { + /** + * + * @type {number} + * @memberof PatchedRecipeBookEntry + */ + readonly id?: number; + /** + * + * @type {number} + * @memberof PatchedRecipeBookEntry + */ + book?: number; + /** + * + * @type {RecipeBook} + * @memberof PatchedRecipeBookEntry + */ + readonly bookContent?: RecipeBook; + /** + * + * @type {number} + * @memberof PatchedRecipeBookEntry + */ + recipe?: number; + /** + * + * @type {RecipeOverview} + * @memberof PatchedRecipeBookEntry + */ + readonly recipeContent?: RecipeOverview; +} + +/** + * Check if a given object implements the PatchedRecipeBookEntry interface. + */ +export function instanceOfPatchedRecipeBookEntry(value: object): boolean { + return true; +} + +export function PatchedRecipeBookEntryFromJSON(json: any): PatchedRecipeBookEntry { + return PatchedRecipeBookEntryFromJSONTyped(json, false); +} + +export function PatchedRecipeBookEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedRecipeBookEntry { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'book': json['book'] == null ? undefined : json['book'], + 'bookContent': json['book_content'] == null ? undefined : RecipeBookFromJSON(json['book_content']), + 'recipe': json['recipe'] == null ? undefined : json['recipe'], + 'recipeContent': json['recipe_content'] == null ? undefined : RecipeOverviewFromJSON(json['recipe_content']), + }; +} + +export function PatchedRecipeBookEntryToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'book': value['book'], + 'recipe': value['recipe'], + }; +} + diff --git a/vue3/models/PatchedShoppingListEntry.ts b/vue3/models/PatchedShoppingListEntry.ts new file mode 100644 index 000000000..65a41f4bb --- /dev/null +++ b/vue3/models/PatchedShoppingListEntry.ts @@ -0,0 +1,176 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; +import type { ShoppingListRecipe } from './ShoppingListRecipe'; +import { + ShoppingListRecipeFromJSON, + ShoppingListRecipeFromJSONTyped, + ShoppingListRecipeToJSON, +} from './ShoppingListRecipe'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface PatchedShoppingListEntry + */ +export interface PatchedShoppingListEntry { + /** + * + * @type {number} + * @memberof PatchedShoppingListEntry + */ + readonly id?: number; + /** + * + * @type {number} + * @memberof PatchedShoppingListEntry + */ + listRecipe?: number; + /** + * + * @type {Food} + * @memberof PatchedShoppingListEntry + */ + food?: Food; + /** + * + * @type {Unit} + * @memberof PatchedShoppingListEntry + */ + unit?: Unit; + /** + * + * @type {number} + * @memberof PatchedShoppingListEntry + */ + amount?: number; + /** + * + * @type {number} + * @memberof PatchedShoppingListEntry + */ + order?: number; + /** + * + * @type {boolean} + * @memberof PatchedShoppingListEntry + */ + checked?: boolean; + /** + * + * @type {ShoppingListRecipe} + * @memberof PatchedShoppingListEntry + */ + readonly recipeMealplan?: ShoppingListRecipe; + /** + * + * @type {User} + * @memberof PatchedShoppingListEntry + */ + readonly createdBy?: User; + /** + * + * @type {Date} + * @memberof PatchedShoppingListEntry + */ + readonly createdAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedShoppingListEntry + */ + readonly updatedAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedShoppingListEntry + */ + completedAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedShoppingListEntry + */ + delayUntil?: Date; +} + +/** + * Check if a given object implements the PatchedShoppingListEntry interface. + */ +export function instanceOfPatchedShoppingListEntry(value: object): boolean { + return true; +} + +export function PatchedShoppingListEntryFromJSON(json: any): PatchedShoppingListEntry { + return PatchedShoppingListEntryFromJSONTyped(json, false); +} + +export function PatchedShoppingListEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedShoppingListEntry { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'listRecipe': json['list_recipe'] == null ? undefined : json['list_recipe'], + 'food': json['food'] == null ? undefined : FoodFromJSON(json['food']), + 'unit': json['unit'] == null ? undefined : UnitFromJSON(json['unit']), + 'amount': json['amount'] == null ? undefined : json['amount'], + 'order': json['order'] == null ? undefined : json['order'], + 'checked': json['checked'] == null ? undefined : json['checked'], + 'recipeMealplan': json['recipe_mealplan'] == null ? undefined : ShoppingListRecipeFromJSON(json['recipe_mealplan']), + 'createdBy': json['created_by'] == null ? undefined : UserFromJSON(json['created_by']), + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': json['updated_at'] == null ? undefined : (new Date(json['updated_at'])), + 'completedAt': json['completed_at'] == null ? undefined : (new Date(json['completed_at'])), + 'delayUntil': json['delay_until'] == null ? undefined : (new Date(json['delay_until'])), + }; +} + +export function PatchedShoppingListEntryToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'list_recipe': value['listRecipe'], + 'food': FoodToJSON(value['food']), + 'unit': UnitToJSON(value['unit']), + 'amount': value['amount'], + 'order': value['order'], + 'checked': value['checked'], + 'completed_at': value['completedAt'] == null ? undefined : ((value['completedAt'] as any).toISOString()), + 'delay_until': value['delayUntil'] == null ? undefined : ((value['delayUntil'] as any).toISOString()), + }; +} + diff --git a/vue3/models/PatchedShoppingListRecipe.ts b/vue3/models/PatchedShoppingListRecipe.ts new file mode 100644 index 000000000..b52b35892 --- /dev/null +++ b/vue3/models/PatchedShoppingListRecipe.ts @@ -0,0 +1,118 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedShoppingListRecipe + */ +export interface PatchedShoppingListRecipe { + /** + * + * @type {number} + * @memberof PatchedShoppingListRecipe + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedShoppingListRecipe + */ + readonly recipeName?: string; + /** + * + * @type {string} + * @memberof PatchedShoppingListRecipe + */ + readonly name?: string; + /** + * + * @type {number} + * @memberof PatchedShoppingListRecipe + */ + recipe?: number; + /** + * + * @type {number} + * @memberof PatchedShoppingListRecipe + */ + mealplan?: number; + /** + * + * @type {number} + * @memberof PatchedShoppingListRecipe + */ + servings?: number; + /** + * + * @type {string} + * @memberof PatchedShoppingListRecipe + */ + readonly mealplanNote?: string; + /** + * + * @type {Date} + * @memberof PatchedShoppingListRecipe + */ + readonly mealplanFromDate?: Date; + /** + * + * @type {string} + * @memberof PatchedShoppingListRecipe + */ + readonly mealplanType?: string; +} + +/** + * Check if a given object implements the PatchedShoppingListRecipe interface. + */ +export function instanceOfPatchedShoppingListRecipe(value: object): boolean { + return true; +} + +export function PatchedShoppingListRecipeFromJSON(json: any): PatchedShoppingListRecipe { + return PatchedShoppingListRecipeFromJSONTyped(json, false); +} + +export function PatchedShoppingListRecipeFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedShoppingListRecipe { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'recipeName': json['recipe_name'] == null ? undefined : json['recipe_name'], + 'name': json['name'] == null ? undefined : json['name'], + 'recipe': json['recipe'] == null ? undefined : json['recipe'], + 'mealplan': json['mealplan'] == null ? undefined : json['mealplan'], + 'servings': json['servings'] == null ? undefined : json['servings'], + 'mealplanNote': json['mealplan_note'] == null ? undefined : json['mealplan_note'], + 'mealplanFromDate': json['mealplan_from_date'] == null ? undefined : (new Date(json['mealplan_from_date'])), + 'mealplanType': json['mealplan_type'] == null ? undefined : json['mealplan_type'], + }; +} + +export function PatchedShoppingListRecipeToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'recipe': value['recipe'], + 'mealplan': value['mealplan'], + 'servings': value['servings'], + }; +} + diff --git a/vue3/models/PatchedSpace.ts b/vue3/models/PatchedSpace.ts new file mode 100644 index 000000000..da1d34262 --- /dev/null +++ b/vue3/models/PatchedSpace.ts @@ -0,0 +1,282 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { FoodInheritField } from './FoodInheritField'; +import { + FoodInheritFieldFromJSON, + FoodInheritFieldFromJSONTyped, + FoodInheritFieldToJSON, +} from './FoodInheritField'; +import type { SpaceNavTextColorEnum } from './SpaceNavTextColorEnum'; +import { + SpaceNavTextColorEnumFromJSON, + SpaceNavTextColorEnumFromJSONTyped, + SpaceNavTextColorEnumToJSON, +} from './SpaceNavTextColorEnum'; +import type { SpaceThemeEnum } from './SpaceThemeEnum'; +import { + SpaceThemeEnumFromJSON, + SpaceThemeEnumFromJSONTyped, + SpaceThemeEnumToJSON, +} from './SpaceThemeEnum'; +import type { UserFileView } from './UserFileView'; +import { + UserFileViewFromJSON, + UserFileViewFromJSONTyped, + UserFileViewToJSON, +} from './UserFileView'; + +/** + * Adds nested create feature + * @export + * @interface PatchedSpace + */ +export interface PatchedSpace { + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedSpace + */ + name?: string; + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedSpace + */ + readonly createdAt?: Date; + /** + * + * @type {string} + * @memberof PatchedSpace + */ + message?: string; + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly maxRecipes?: number; + /** + * Maximum file storage for space in MB. 0 for unlimited, -1 to disable file upload. + * @type {number} + * @memberof PatchedSpace + */ + readonly maxFileStorageMb?: number; + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly maxUsers?: number; + /** + * + * @type {boolean} + * @memberof PatchedSpace + */ + readonly allowSharing?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedSpace + */ + readonly demo?: boolean; + /** + * + * @type {Array} + * @memberof PatchedSpace + */ + foodInherit?: Array; + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly userCount?: number; + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly recipeCount?: number; + /** + * + * @type {number} + * @memberof PatchedSpace + */ + readonly fileSizeMb?: number; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + image?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + navLogo?: UserFileView; + /** + * + * @type {SpaceThemeEnum} + * @memberof PatchedSpace + */ + spaceTheme?: SpaceThemeEnum; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + customSpaceTheme?: UserFileView; + /** + * + * @type {string} + * @memberof PatchedSpace + */ + navBgColor?: string; + /** + * + * @type {SpaceNavTextColorEnum} + * @memberof PatchedSpace + */ + navTextColor?: SpaceNavTextColorEnum; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColor32?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColor128?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColor144?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColor180?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColor192?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColor512?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof PatchedSpace + */ + logoColorSvg?: UserFileView; +} + +/** + * Check if a given object implements the PatchedSpace interface. + */ +export function instanceOfPatchedSpace(value: object): boolean { + return true; +} + +export function PatchedSpaceFromJSON(json: any): PatchedSpace { + return PatchedSpaceFromJSONTyped(json, false); +} + +export function PatchedSpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedSpace { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'message': json['message'] == null ? undefined : json['message'], + 'maxRecipes': json['max_recipes'] == null ? undefined : json['max_recipes'], + 'maxFileStorageMb': json['max_file_storage_mb'] == null ? undefined : json['max_file_storage_mb'], + 'maxUsers': json['max_users'] == null ? undefined : json['max_users'], + 'allowSharing': json['allow_sharing'] == null ? undefined : json['allow_sharing'], + 'demo': json['demo'] == null ? undefined : json['demo'], + 'foodInherit': json['food_inherit'] == null ? undefined : ((json['food_inherit'] as Array).map(FoodInheritFieldFromJSON)), + 'userCount': json['user_count'] == null ? undefined : json['user_count'], + 'recipeCount': json['recipe_count'] == null ? undefined : json['recipe_count'], + 'fileSizeMb': json['file_size_mb'] == null ? undefined : json['file_size_mb'], + 'image': json['image'] == null ? undefined : UserFileViewFromJSON(json['image']), + 'navLogo': json['nav_logo'] == null ? undefined : UserFileViewFromJSON(json['nav_logo']), + 'spaceTheme': json['space_theme'] == null ? undefined : SpaceThemeEnumFromJSON(json['space_theme']), + 'customSpaceTheme': json['custom_space_theme'] == null ? undefined : UserFileViewFromJSON(json['custom_space_theme']), + 'navBgColor': json['nav_bg_color'] == null ? undefined : json['nav_bg_color'], + 'navTextColor': json['nav_text_color'] == null ? undefined : SpaceNavTextColorEnumFromJSON(json['nav_text_color']), + 'logoColor32': json['logo_color_32'] == null ? undefined : UserFileViewFromJSON(json['logo_color_32']), + 'logoColor128': json['logo_color_128'] == null ? undefined : UserFileViewFromJSON(json['logo_color_128']), + 'logoColor144': json['logo_color_144'] == null ? undefined : UserFileViewFromJSON(json['logo_color_144']), + 'logoColor180': json['logo_color_180'] == null ? undefined : UserFileViewFromJSON(json['logo_color_180']), + 'logoColor192': json['logo_color_192'] == null ? undefined : UserFileViewFromJSON(json['logo_color_192']), + 'logoColor512': json['logo_color_512'] == null ? undefined : UserFileViewFromJSON(json['logo_color_512']), + 'logoColorSvg': json['logo_color_svg'] == null ? undefined : UserFileViewFromJSON(json['logo_color_svg']), + }; +} + +export function PatchedSpaceToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'message': value['message'], + 'food_inherit': value['foodInherit'] == null ? undefined : ((value['foodInherit'] as Array).map(FoodInheritFieldToJSON)), + 'image': UserFileViewToJSON(value['image']), + 'nav_logo': UserFileViewToJSON(value['navLogo']), + 'space_theme': SpaceThemeEnumToJSON(value['spaceTheme']), + 'custom_space_theme': UserFileViewToJSON(value['customSpaceTheme']), + 'nav_bg_color': value['navBgColor'], + 'nav_text_color': SpaceNavTextColorEnumToJSON(value['navTextColor']), + 'logo_color_32': UserFileViewToJSON(value['logoColor32']), + 'logo_color_128': UserFileViewToJSON(value['logoColor128']), + 'logo_color_144': UserFileViewToJSON(value['logoColor144']), + 'logo_color_180': UserFileViewToJSON(value['logoColor180']), + 'logo_color_192': UserFileViewToJSON(value['logoColor192']), + 'logo_color_512': UserFileViewToJSON(value['logoColor512']), + 'logo_color_svg': UserFileViewToJSON(value['logoColorSvg']), + }; +} + diff --git a/vue3/models/PatchedStep.ts b/vue3/models/PatchedStep.ts new file mode 100644 index 000000000..b6071eabf --- /dev/null +++ b/vue3/models/PatchedStep.ts @@ -0,0 +1,165 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Ingredient } from './Ingredient'; +import { + IngredientFromJSON, + IngredientFromJSONTyped, + IngredientToJSON, +} from './Ingredient'; +import type { UserFileView } from './UserFileView'; +import { + UserFileViewFromJSON, + UserFileViewFromJSONTyped, + UserFileViewToJSON, +} from './UserFileView'; + +/** + * Adds nested create feature + * @export + * @interface PatchedStep + */ +export interface PatchedStep { + /** + * + * @type {number} + * @memberof PatchedStep + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedStep + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedStep + */ + instruction?: string; + /** + * + * @type {Array} + * @memberof PatchedStep + */ + ingredients?: Array; + /** + * + * @type {string} + * @memberof PatchedStep + */ + readonly instructionsMarkdown?: string; + /** + * + * @type {number} + * @memberof PatchedStep + */ + time?: number; + /** + * + * @type {number} + * @memberof PatchedStep + */ + order?: number; + /** + * + * @type {boolean} + * @memberof PatchedStep + */ + showAsHeader?: boolean; + /** + * + * @type {UserFileView} + * @memberof PatchedStep + */ + file?: UserFileView; + /** + * + * @type {number} + * @memberof PatchedStep + */ + stepRecipe?: number; + /** + * + * @type {any} + * @memberof PatchedStep + */ + readonly stepRecipeData?: any; + /** + * + * @type {number} + * @memberof PatchedStep + */ + readonly numrecipe?: number; + /** + * + * @type {boolean} + * @memberof PatchedStep + */ + showIngredientsTable?: boolean; +} + +/** + * Check if a given object implements the PatchedStep interface. + */ +export function instanceOfPatchedStep(value: object): boolean { + return true; +} + +export function PatchedStepFromJSON(json: any): PatchedStep { + return PatchedStepFromJSONTyped(json, false); +} + +export function PatchedStepFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedStep { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'instruction': json['instruction'] == null ? undefined : json['instruction'], + 'ingredients': json['ingredients'] == null ? undefined : ((json['ingredients'] as Array).map(IngredientFromJSON)), + 'instructionsMarkdown': json['instructions_markdown'] == null ? undefined : json['instructions_markdown'], + 'time': json['time'] == null ? undefined : json['time'], + 'order': json['order'] == null ? undefined : json['order'], + 'showAsHeader': json['show_as_header'] == null ? undefined : json['show_as_header'], + 'file': json['file'] == null ? undefined : UserFileViewFromJSON(json['file']), + 'stepRecipe': json['step_recipe'] == null ? undefined : json['step_recipe'], + 'stepRecipeData': json['step_recipe_data'] == null ? undefined : json['step_recipe_data'], + 'numrecipe': json['numrecipe'] == null ? undefined : json['numrecipe'], + 'showIngredientsTable': json['show_ingredients_table'] == null ? undefined : json['show_ingredients_table'], + }; +} + +export function PatchedStepToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'instruction': value['instruction'], + 'ingredients': value['ingredients'] == null ? undefined : ((value['ingredients'] as Array).map(IngredientToJSON)), + 'time': value['time'], + 'order': value['order'], + 'show_as_header': value['showAsHeader'], + 'file': UserFileViewToJSON(value['file']), + 'step_recipe': value['stepRecipe'], + 'show_ingredients_table': value['showIngredientsTable'], + }; +} + diff --git a/vue3/models/PatchedStorage.ts b/vue3/models/PatchedStorage.ts new file mode 100644 index 000000000..384b14776 --- /dev/null +++ b/vue3/models/PatchedStorage.ts @@ -0,0 +1,113 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { MethodEnum } from './MethodEnum'; +import { + MethodEnumFromJSON, + MethodEnumFromJSONTyped, + MethodEnumToJSON, +} from './MethodEnum'; + +/** + * + * @export + * @interface PatchedStorage + */ +export interface PatchedStorage { + /** + * + * @type {number} + * @memberof PatchedStorage + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedStorage + */ + name?: string; + /** + * + * @type {MethodEnum} + * @memberof PatchedStorage + */ + method?: MethodEnum; + /** + * + * @type {string} + * @memberof PatchedStorage + */ + username?: string; + /** + * + * @type {string} + * @memberof PatchedStorage + */ + password?: string; + /** + * + * @type {string} + * @memberof PatchedStorage + */ + token?: string; + /** + * + * @type {number} + * @memberof PatchedStorage + */ + readonly createdBy?: number; +} + +/** + * Check if a given object implements the PatchedStorage interface. + */ +export function instanceOfPatchedStorage(value: object): boolean { + return true; +} + +export function PatchedStorageFromJSON(json: any): PatchedStorage { + return PatchedStorageFromJSONTyped(json, false); +} + +export function PatchedStorageFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedStorage { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'method': json['method'] == null ? undefined : MethodEnumFromJSON(json['method']), + 'username': json['username'] == null ? undefined : json['username'], + 'password': json['password'] == null ? undefined : json['password'], + 'token': json['token'] == null ? undefined : json['token'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + }; +} + +export function PatchedStorageToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'method': MethodEnumToJSON(value['method']), + 'username': value['username'], + 'password': value['password'], + 'token': value['token'], + }; +} + diff --git a/vue3/models/PatchedSupermarket.ts b/vue3/models/PatchedSupermarket.ts new file mode 100644 index 000000000..7c893ee6a --- /dev/null +++ b/vue3/models/PatchedSupermarket.ts @@ -0,0 +1,131 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SupermarketCategoryRelation } from './SupermarketCategoryRelation'; +import { + SupermarketCategoryRelationFromJSON, + SupermarketCategoryRelationFromJSONTyped, + SupermarketCategoryRelationToJSON, +} from './SupermarketCategoryRelation'; + +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface PatchedSupermarket + */ +export interface PatchedSupermarket { + /** + * + * @type {number} + * @memberof PatchedSupermarket + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedSupermarket + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedSupermarket + */ + description?: string; + /** + * + * @type {Array} + * @memberof PatchedSupermarket + */ + readonly categoryToSupermarket?: Array; + /** + * + * @type {string} + * @memberof PatchedSupermarket + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the PatchedSupermarket interface. + */ +export function instanceOfPatchedSupermarket(value: object): boolean { + return true; +} + +export function PatchedSupermarketFromJSON(json: any): PatchedSupermarket { + return PatchedSupermarketFromJSONTyped(json, false); +} + +export function PatchedSupermarketFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedSupermarket { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'categoryToSupermarket': json['category_to_supermarket'] == null ? undefined : ((json['category_to_supermarket'] as Array).map(SupermarketCategoryRelationFromJSON)), + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function PatchedSupermarketToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/PatchedSupermarketCategory.ts b/vue3/models/PatchedSupermarketCategory.ts new file mode 100644 index 000000000..5ab163731 --- /dev/null +++ b/vue3/models/PatchedSupermarketCategory.ts @@ -0,0 +1,109 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface PatchedSupermarketCategory + */ +export interface PatchedSupermarketCategory { + /** + * + * @type {number} + * @memberof PatchedSupermarketCategory + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedSupermarketCategory + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedSupermarketCategory + */ + description?: string; +} + +/** + * Check if a given object implements the PatchedSupermarketCategory interface. + */ +export function instanceOfPatchedSupermarketCategory(value: object): boolean { + return true; +} + +export function PatchedSupermarketCategoryFromJSON(json: any): PatchedSupermarketCategory { + return PatchedSupermarketCategoryFromJSONTyped(json, false); +} + +export function PatchedSupermarketCategoryFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedSupermarketCategory { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'description': json['description'] == null ? undefined : json['description'], + }; +} + +export function PatchedSupermarketCategoryToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + }; +} + diff --git a/vue3/models/PatchedSupermarketCategoryRelation.ts b/vue3/models/PatchedSupermarketCategoryRelation.ts new file mode 100644 index 000000000..174bcd72c --- /dev/null +++ b/vue3/models/PatchedSupermarketCategoryRelation.ts @@ -0,0 +1,90 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SupermarketCategory } from './SupermarketCategory'; +import { + SupermarketCategoryFromJSON, + SupermarketCategoryFromJSONTyped, + SupermarketCategoryToJSON, +} from './SupermarketCategory'; + +/** + * Adds nested create feature + * @export + * @interface PatchedSupermarketCategoryRelation + */ +export interface PatchedSupermarketCategoryRelation { + /** + * + * @type {number} + * @memberof PatchedSupermarketCategoryRelation + */ + readonly id?: number; + /** + * + * @type {SupermarketCategory} + * @memberof PatchedSupermarketCategoryRelation + */ + category?: SupermarketCategory; + /** + * + * @type {number} + * @memberof PatchedSupermarketCategoryRelation + */ + supermarket?: number; + /** + * + * @type {number} + * @memberof PatchedSupermarketCategoryRelation + */ + order?: number; +} + +/** + * Check if a given object implements the PatchedSupermarketCategoryRelation interface. + */ +export function instanceOfPatchedSupermarketCategoryRelation(value: object): boolean { + return true; +} + +export function PatchedSupermarketCategoryRelationFromJSON(json: any): PatchedSupermarketCategoryRelation { + return PatchedSupermarketCategoryRelationFromJSONTyped(json, false); +} + +export function PatchedSupermarketCategoryRelationFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedSupermarketCategoryRelation { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'category': json['category'] == null ? undefined : SupermarketCategoryFromJSON(json['category']), + 'supermarket': json['supermarket'] == null ? undefined : json['supermarket'], + 'order': json['order'] == null ? undefined : json['order'], + }; +} + +export function PatchedSupermarketCategoryRelationToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'category': SupermarketCategoryToJSON(value['category']), + 'supermarket': value['supermarket'], + 'order': value['order'], + }; +} + diff --git a/vue3/models/PatchedSync.ts b/vue3/models/PatchedSync.ts new file mode 100644 index 000000000..a0bc8df45 --- /dev/null +++ b/vue3/models/PatchedSync.ts @@ -0,0 +1,105 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedSync + */ +export interface PatchedSync { + /** + * + * @type {number} + * @memberof PatchedSync + */ + readonly id?: number; + /** + * + * @type {number} + * @memberof PatchedSync + */ + storage?: number; + /** + * + * @type {string} + * @memberof PatchedSync + */ + path?: string; + /** + * + * @type {boolean} + * @memberof PatchedSync + */ + active?: boolean; + /** + * + * @type {Date} + * @memberof PatchedSync + */ + lastChecked?: Date; + /** + * + * @type {Date} + * @memberof PatchedSync + */ + readonly createdAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedSync + */ + readonly updatedAt?: Date; +} + +/** + * Check if a given object implements the PatchedSync interface. + */ +export function instanceOfPatchedSync(value: object): boolean { + return true; +} + +export function PatchedSyncFromJSON(json: any): PatchedSync { + return PatchedSyncFromJSONTyped(json, false); +} + +export function PatchedSyncFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedSync { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'storage': json['storage'] == null ? undefined : json['storage'], + 'path': json['path'] == null ? undefined : json['path'], + 'active': json['active'] == null ? undefined : json['active'], + 'lastChecked': json['last_checked'] == null ? undefined : (new Date(json['last_checked'])), + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': json['updated_at'] == null ? undefined : (new Date(json['updated_at'])), + }; +} + +export function PatchedSyncToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'storage': value['storage'], + 'path': value['path'], + 'active': value['active'], + 'last_checked': value['lastChecked'] == null ? undefined : ((value['lastChecked'] as any).toISOString()), + }; +} + diff --git a/vue3/models/PatchedUnit.ts b/vue3/models/PatchedUnit.ts new file mode 100644 index 000000000..1f7156190 --- /dev/null +++ b/vue3/models/PatchedUnit.ts @@ -0,0 +1,133 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface PatchedUnit + */ +export interface PatchedUnit { + /** + * + * @type {number} + * @memberof PatchedUnit + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedUnit + */ + name?: string; + /** + * + * @type {string} + * @memberof PatchedUnit + */ + pluralName?: string; + /** + * + * @type {string} + * @memberof PatchedUnit + */ + description?: string; + /** + * + * @type {string} + * @memberof PatchedUnit + */ + baseUnit?: string; + /** + * + * @type {string} + * @memberof PatchedUnit + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the PatchedUnit interface. + */ +export function instanceOfPatchedUnit(value: object): boolean { + return true; +} + +export function PatchedUnitFromJSON(json: any): PatchedUnit { + return PatchedUnitFromJSONTyped(json, false); +} + +export function PatchedUnitFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedUnit { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'pluralName': json['plural_name'] == null ? undefined : json['plural_name'], + 'description': json['description'] == null ? undefined : json['description'], + 'baseUnit': json['base_unit'] == null ? undefined : json['base_unit'], + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function PatchedUnitToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'plural_name': value['pluralName'], + 'description': value['description'], + 'base_unit': value['baseUnit'], + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/PatchedUnitConversion.ts b/vue3/models/PatchedUnitConversion.ts new file mode 100644 index 000000000..7c9148e75 --- /dev/null +++ b/vue3/models/PatchedUnitConversion.ts @@ -0,0 +1,127 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * Adds nested create feature + * @export + * @interface PatchedUnitConversion + */ +export interface PatchedUnitConversion { + /** + * + * @type {number} + * @memberof PatchedUnitConversion + */ + readonly id?: number; + /** + * + * @type {string} + * @memberof PatchedUnitConversion + */ + readonly name?: string; + /** + * + * @type {number} + * @memberof PatchedUnitConversion + */ + baseAmount?: number; + /** + * + * @type {Unit} + * @memberof PatchedUnitConversion + */ + baseUnit?: Unit; + /** + * + * @type {number} + * @memberof PatchedUnitConversion + */ + convertedAmount?: number; + /** + * + * @type {Unit} + * @memberof PatchedUnitConversion + */ + convertedUnit?: Unit; + /** + * + * @type {Food} + * @memberof PatchedUnitConversion + */ + food?: Food; + /** + * + * @type {string} + * @memberof PatchedUnitConversion + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the PatchedUnitConversion interface. + */ +export function instanceOfPatchedUnitConversion(value: object): boolean { + return true; +} + +export function PatchedUnitConversionFromJSON(json: any): PatchedUnitConversion { + return PatchedUnitConversionFromJSONTyped(json, false); +} + +export function PatchedUnitConversionFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedUnitConversion { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'baseAmount': json['base_amount'] == null ? undefined : json['base_amount'], + 'baseUnit': json['base_unit'] == null ? undefined : UnitFromJSON(json['base_unit']), + 'convertedAmount': json['converted_amount'] == null ? undefined : json['converted_amount'], + 'convertedUnit': json['converted_unit'] == null ? undefined : UnitFromJSON(json['converted_unit']), + 'food': json['food'] == null ? undefined : FoodFromJSON(json['food']), + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function PatchedUnitConversionToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'base_amount': value['baseAmount'], + 'base_unit': UnitToJSON(value['baseUnit']), + 'converted_amount': value['convertedAmount'], + 'converted_unit': UnitToJSON(value['convertedUnit']), + 'food': FoodToJSON(value['food']), + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/PatchedUser.ts b/vue3/models/PatchedUser.ts new file mode 100644 index 000000000..fc21a2cd6 --- /dev/null +++ b/vue3/models/PatchedUser.ts @@ -0,0 +1,89 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface PatchedUser + */ +export interface PatchedUser { + /** + * + * @type {number} + * @memberof PatchedUser + */ + readonly id?: number; + /** + * Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. + * @type {string} + * @memberof PatchedUser + */ + readonly username?: string; + /** + * + * @type {string} + * @memberof PatchedUser + */ + firstName?: string; + /** + * + * @type {string} + * @memberof PatchedUser + */ + lastName?: string; + /** + * + * @type {string} + * @memberof PatchedUser + */ + readonly displayName?: string; +} + +/** + * Check if a given object implements the PatchedUser interface. + */ +export function instanceOfPatchedUser(value: object): boolean { + return true; +} + +export function PatchedUserFromJSON(json: any): PatchedUser { + return PatchedUserFromJSONTyped(json, false); +} + +export function PatchedUserFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedUser { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'username': json['username'] == null ? undefined : json['username'], + 'firstName': json['first_name'] == null ? undefined : json['first_name'], + 'lastName': json['last_name'] == null ? undefined : json['last_name'], + 'displayName': json['display_name'] == null ? undefined : json['display_name'], + }; +} + +export function PatchedUserToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'first_name': value['firstName'], + 'last_name': value['lastName'], + }; +} + diff --git a/vue3/models/PatchedUserPreference.ts b/vue3/models/PatchedUserPreference.ts new file mode 100644 index 000000000..c62b726a1 --- /dev/null +++ b/vue3/models/PatchedUserPreference.ts @@ -0,0 +1,319 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { DefaultPageEnum } from './DefaultPageEnum'; +import { + DefaultPageEnumFromJSON, + DefaultPageEnumFromJSONTyped, + DefaultPageEnumToJSON, +} from './DefaultPageEnum'; +import type { FoodInheritField } from './FoodInheritField'; +import { + FoodInheritFieldFromJSON, + FoodInheritFieldFromJSONTyped, + FoodInheritFieldToJSON, +} from './FoodInheritField'; +import type { ThemeEnum } from './ThemeEnum'; +import { + ThemeEnumFromJSON, + ThemeEnumFromJSONTyped, + ThemeEnumToJSON, +} from './ThemeEnum'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; +import type { UserFileView } from './UserFileView'; +import { + UserFileViewFromJSON, + UserFileViewFromJSONTyped, + UserFileViewToJSON, +} from './UserFileView'; +import type { UserPreferenceNavTextColorEnum } from './UserPreferenceNavTextColorEnum'; +import { + UserPreferenceNavTextColorEnumFromJSON, + UserPreferenceNavTextColorEnumFromJSONTyped, + UserPreferenceNavTextColorEnumToJSON, +} from './UserPreferenceNavTextColorEnum'; + +/** + * Adds nested create feature + * @export + * @interface PatchedUserPreference + */ +export interface PatchedUserPreference { + /** + * + * @type {number} + * @memberof PatchedUserPreference + */ + user?: number; + /** + * + * @type {UserFileView} + * @memberof PatchedUserPreference + */ + image?: UserFileView; + /** + * + * @type {ThemeEnum} + * @memberof PatchedUserPreference + */ + theme?: ThemeEnum; + /** + * + * @type {string} + * @memberof PatchedUserPreference + */ + navBgColor?: string; + /** + * + * @type {UserPreferenceNavTextColorEnum} + * @memberof PatchedUserPreference + */ + navTextColor?: UserPreferenceNavTextColorEnum; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + navShowLogo?: boolean; + /** + * + * @type {string} + * @memberof PatchedUserPreference + */ + defaultUnit?: string; + /** + * + * @type {DefaultPageEnum} + * @memberof PatchedUserPreference + */ + defaultPage?: DefaultPageEnum; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + useFractions?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + useKj?: boolean; + /** + * + * @type {Array} + * @memberof PatchedUserPreference + */ + planShare?: Array; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + navSticky?: boolean; + /** + * + * @type {number} + * @memberof PatchedUserPreference + */ + ingredientDecimals?: number; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + comments?: boolean; + /** + * + * @type {number} + * @memberof PatchedUserPreference + */ + shoppingAutoSync?: number; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + mealplanAutoaddShopping?: boolean; + /** + * + * @type {FoodInheritField} + * @memberof PatchedUserPreference + */ + readonly foodInheritDefault?: FoodInheritField; + /** + * + * @type {number} + * @memberof PatchedUserPreference + */ + defaultDelay?: number; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + mealplanAutoincludeRelated?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + mealplanAutoexcludeOnhand?: boolean; + /** + * + * @type {Array} + * @memberof PatchedUserPreference + */ + shoppingShare?: Array; + /** + * + * @type {number} + * @memberof PatchedUserPreference + */ + shoppingRecentDays?: number; + /** + * + * @type {string} + * @memberof PatchedUserPreference + */ + csvDelim?: string; + /** + * + * @type {string} + * @memberof PatchedUserPreference + */ + csvPrefix?: string; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + filterToSupermarket?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + shoppingAddOnhand?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + leftHanded?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + showStepIngredients?: boolean; + /** + * + * @type {boolean} + * @memberof PatchedUserPreference + */ + readonly foodChildrenExist?: boolean; +} + +/** + * Check if a given object implements the PatchedUserPreference interface. + */ +export function instanceOfPatchedUserPreference(value: object): boolean { + return true; +} + +export function PatchedUserPreferenceFromJSON(json: any): PatchedUserPreference { + return PatchedUserPreferenceFromJSONTyped(json, false); +} + +export function PatchedUserPreferenceFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedUserPreference { + if (json == null) { + return json; + } + return { + + 'user': json['user'] == null ? undefined : json['user'], + 'image': json['image'] == null ? undefined : UserFileViewFromJSON(json['image']), + 'theme': json['theme'] == null ? undefined : ThemeEnumFromJSON(json['theme']), + 'navBgColor': json['nav_bg_color'] == null ? undefined : json['nav_bg_color'], + 'navTextColor': json['nav_text_color'] == null ? undefined : UserPreferenceNavTextColorEnumFromJSON(json['nav_text_color']), + 'navShowLogo': json['nav_show_logo'] == null ? undefined : json['nav_show_logo'], + 'defaultUnit': json['default_unit'] == null ? undefined : json['default_unit'], + 'defaultPage': json['default_page'] == null ? undefined : DefaultPageEnumFromJSON(json['default_page']), + 'useFractions': json['use_fractions'] == null ? undefined : json['use_fractions'], + 'useKj': json['use_kj'] == null ? undefined : json['use_kj'], + 'planShare': json['plan_share'] == null ? undefined : ((json['plan_share'] as Array).map(UserFromJSON)), + 'navSticky': json['nav_sticky'] == null ? undefined : json['nav_sticky'], + 'ingredientDecimals': json['ingredient_decimals'] == null ? undefined : json['ingredient_decimals'], + 'comments': json['comments'] == null ? undefined : json['comments'], + 'shoppingAutoSync': json['shopping_auto_sync'] == null ? undefined : json['shopping_auto_sync'], + 'mealplanAutoaddShopping': json['mealplan_autoadd_shopping'] == null ? undefined : json['mealplan_autoadd_shopping'], + 'foodInheritDefault': json['food_inherit_default'] == null ? undefined : FoodInheritFieldFromJSON(json['food_inherit_default']), + 'defaultDelay': json['default_delay'] == null ? undefined : json['default_delay'], + 'mealplanAutoincludeRelated': json['mealplan_autoinclude_related'] == null ? undefined : json['mealplan_autoinclude_related'], + 'mealplanAutoexcludeOnhand': json['mealplan_autoexclude_onhand'] == null ? undefined : json['mealplan_autoexclude_onhand'], + 'shoppingShare': json['shopping_share'] == null ? undefined : ((json['shopping_share'] as Array).map(UserFromJSON)), + 'shoppingRecentDays': json['shopping_recent_days'] == null ? undefined : json['shopping_recent_days'], + 'csvDelim': json['csv_delim'] == null ? undefined : json['csv_delim'], + 'csvPrefix': json['csv_prefix'] == null ? undefined : json['csv_prefix'], + 'filterToSupermarket': json['filter_to_supermarket'] == null ? undefined : json['filter_to_supermarket'], + 'shoppingAddOnhand': json['shopping_add_onhand'] == null ? undefined : json['shopping_add_onhand'], + 'leftHanded': json['left_handed'] == null ? undefined : json['left_handed'], + 'showStepIngredients': json['show_step_ingredients'] == null ? undefined : json['show_step_ingredients'], + 'foodChildrenExist': json['food_children_exist'] == null ? undefined : json['food_children_exist'], + }; +} + +export function PatchedUserPreferenceToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'user': value['user'], + 'image': UserFileViewToJSON(value['image']), + 'theme': ThemeEnumToJSON(value['theme']), + 'nav_bg_color': value['navBgColor'], + 'nav_text_color': UserPreferenceNavTextColorEnumToJSON(value['navTextColor']), + 'nav_show_logo': value['navShowLogo'], + 'default_unit': value['defaultUnit'], + 'default_page': DefaultPageEnumToJSON(value['defaultPage']), + 'use_fractions': value['useFractions'], + 'use_kj': value['useKj'], + 'plan_share': value['planShare'] == null ? undefined : ((value['planShare'] as Array).map(UserToJSON)), + 'nav_sticky': value['navSticky'], + 'ingredient_decimals': value['ingredientDecimals'], + 'comments': value['comments'], + 'shopping_auto_sync': value['shoppingAutoSync'], + 'mealplan_autoadd_shopping': value['mealplanAutoaddShopping'], + 'default_delay': value['defaultDelay'], + 'mealplan_autoinclude_related': value['mealplanAutoincludeRelated'], + 'mealplan_autoexclude_onhand': value['mealplanAutoexcludeOnhand'], + 'shopping_share': value['shoppingShare'] == null ? undefined : ((value['shoppingShare'] as Array).map(UserToJSON)), + 'shopping_recent_days': value['shoppingRecentDays'], + 'csv_delim': value['csvDelim'], + 'csv_prefix': value['csvPrefix'], + 'filter_to_supermarket': value['filterToSupermarket'], + 'shopping_add_onhand': value['shoppingAddOnhand'], + 'left_handed': value['leftHanded'], + 'show_step_ingredients': value['showStepIngredients'], + }; +} + diff --git a/vue3/models/PatchedUserSpace.ts b/vue3/models/PatchedUserSpace.ts new file mode 100644 index 000000000..4846f8a98 --- /dev/null +++ b/vue3/models/PatchedUserSpace.ts @@ -0,0 +1,131 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Group } from './Group'; +import { + GroupFromJSON, + GroupFromJSONTyped, + GroupToJSON, +} from './Group'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface PatchedUserSpace + */ +export interface PatchedUserSpace { + /** + * + * @type {number} + * @memberof PatchedUserSpace + */ + readonly id?: number; + /** + * + * @type {User} + * @memberof PatchedUserSpace + */ + readonly user?: User; + /** + * + * @type {number} + * @memberof PatchedUserSpace + */ + readonly space?: number; + /** + * + * @type {Array} + * @memberof PatchedUserSpace + */ + groups?: Array; + /** + * + * @type {boolean} + * @memberof PatchedUserSpace + */ + active?: boolean; + /** + * + * @type {string} + * @memberof PatchedUserSpace + */ + internalNote?: string; + /** + * + * @type {number} + * @memberof PatchedUserSpace + */ + readonly inviteLink?: number; + /** + * + * @type {Date} + * @memberof PatchedUserSpace + */ + readonly createdAt?: Date; + /** + * + * @type {Date} + * @memberof PatchedUserSpace + */ + readonly updatedAt?: Date; +} + +/** + * Check if a given object implements the PatchedUserSpace interface. + */ +export function instanceOfPatchedUserSpace(value: object): boolean { + return true; +} + +export function PatchedUserSpaceFromJSON(json: any): PatchedUserSpace { + return PatchedUserSpaceFromJSONTyped(json, false); +} + +export function PatchedUserSpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedUserSpace { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'user': json['user'] == null ? undefined : UserFromJSON(json['user']), + 'space': json['space'] == null ? undefined : json['space'], + 'groups': json['groups'] == null ? undefined : ((json['groups'] as Array).map(GroupFromJSON)), + 'active': json['active'] == null ? undefined : json['active'], + 'internalNote': json['internal_note'] == null ? undefined : json['internal_note'], + 'inviteLink': json['invite_link'] == null ? undefined : json['invite_link'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + 'updatedAt': json['updated_at'] == null ? undefined : (new Date(json['updated_at'])), + }; +} + +export function PatchedUserSpaceToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'groups': value['groups'] == null ? undefined : ((value['groups'] as Array).map(GroupToJSON)), + 'active': value['active'], + 'internal_note': value['internalNote'], + }; +} + diff --git a/vue3/models/PatchedViewLog.ts b/vue3/models/PatchedViewLog.ts new file mode 100644 index 000000000..509e66ba0 --- /dev/null +++ b/vue3/models/PatchedViewLog.ts @@ -0,0 +1,81 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PatchedViewLog + */ +export interface PatchedViewLog { + /** + * + * @type {number} + * @memberof PatchedViewLog + */ + readonly id?: number; + /** + * + * @type {number} + * @memberof PatchedViewLog + */ + recipe?: number; + /** + * + * @type {number} + * @memberof PatchedViewLog + */ + readonly createdBy?: number; + /** + * + * @type {Date} + * @memberof PatchedViewLog + */ + readonly createdAt?: Date; +} + +/** + * Check if a given object implements the PatchedViewLog interface. + */ +export function instanceOfPatchedViewLog(value: object): boolean { + return true; +} + +export function PatchedViewLogFromJSON(json: any): PatchedViewLog { + return PatchedViewLogFromJSONTyped(json, false); +} + +export function PatchedViewLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): PatchedViewLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'recipe': json['recipe'] == null ? undefined : json['recipe'], + 'createdBy': json['created_by'] == null ? undefined : json['created_by'], + 'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])), + }; +} + +export function PatchedViewLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'recipe': value['recipe'], + }; +} + diff --git a/vue3/models/Property.ts b/vue3/models/Property.ts new file mode 100644 index 000000000..5572cbbcc --- /dev/null +++ b/vue3/models/Property.ts @@ -0,0 +1,119 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { PropertyType } from './PropertyType'; +import { + PropertyTypeFromJSON, + PropertyTypeFromJSONTyped, + PropertyTypeToJSON, +} from './PropertyType'; + +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface Property + */ +export interface Property { + /** + * + * @type {number} + * @memberof Property + */ + readonly id: number; + /** + * + * @type {number} + * @memberof Property + */ + propertyAmount: number | null; + /** + * + * @type {PropertyType} + * @memberof Property + */ + propertyType: PropertyType; +} + +/** + * Check if a given object implements the Property interface. + */ +export function instanceOfProperty(value: object): boolean { + if (!('id' in value)) return false; + if (!('propertyAmount' in value)) return false; + if (!('propertyType' in value)) return false; + return true; +} + +export function PropertyFromJSON(json: any): Property { + return PropertyFromJSONTyped(json, false); +} + +export function PropertyFromJSONTyped(json: any, ignoreDiscriminator: boolean): Property { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'propertyAmount': json['property_amount'], + 'propertyType': PropertyTypeFromJSON(json['property_type']), + }; +} + +export function PropertyToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'property_amount': value['propertyAmount'], + 'property_type': PropertyTypeToJSON(value['propertyType']), + }; +} + diff --git a/vue3/models/PropertyType.ts b/vue3/models/PropertyType.ts new file mode 100644 index 000000000..ee414c072 --- /dev/null +++ b/vue3/models/PropertyType.ts @@ -0,0 +1,109 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface PropertyType + */ +export interface PropertyType { + /** + * + * @type {number} + * @memberof PropertyType + */ + id?: number; + /** + * + * @type {string} + * @memberof PropertyType + */ + name: string; + /** + * + * @type {string} + * @memberof PropertyType + */ + unit?: string; + /** + * + * @type {string} + * @memberof PropertyType + */ + description?: string; + /** + * + * @type {number} + * @memberof PropertyType + */ + order?: number; + /** + * + * @type {string} + * @memberof PropertyType + */ + openDataSlug?: string; + /** + * + * @type {number} + * @memberof PropertyType + */ + fdcId?: number; +} + +/** + * Check if a given object implements the PropertyType interface. + */ +export function instanceOfPropertyType(value: object): boolean { + if (!('name' in value)) return false; + return true; +} + +export function PropertyTypeFromJSON(json: any): PropertyType { + return PropertyTypeFromJSONTyped(json, false); +} + +export function PropertyTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): PropertyType { + if (json == null) { + return json; + } + return { + + 'id': json['id'] == null ? undefined : json['id'], + 'name': json['name'], + 'unit': json['unit'] == null ? undefined : json['unit'], + 'description': json['description'] == null ? undefined : json['description'], + 'order': json['order'] == null ? undefined : json['order'], + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + 'fdcId': json['fdc_id'] == null ? undefined : json['fdc_id'], + }; +} + +export function PropertyTypeToJSON(value?: PropertyType | null): any { + if (value == null) { + return value; + } + return { + + 'id': value['id'], + 'name': value['name'], + 'unit': value['unit'], + 'description': value['description'], + 'order': value['order'], + 'open_data_slug': value['openDataSlug'], + 'fdc_id': value['fdcId'], + }; +} + diff --git a/vue3/models/Recipe.ts b/vue3/models/Recipe.ts new file mode 100644 index 000000000..b7bd99520 --- /dev/null +++ b/vue3/models/Recipe.ts @@ -0,0 +1,277 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Keyword } from './Keyword'; +import { + KeywordFromJSON, + KeywordFromJSONTyped, + KeywordToJSON, +} from './Keyword'; +import type { NutritionInformation } from './NutritionInformation'; +import { + NutritionInformationFromJSON, + NutritionInformationFromJSONTyped, + NutritionInformationToJSON, +} from './NutritionInformation'; +import type { Property } from './Property'; +import { + PropertyFromJSON, + PropertyFromJSONTyped, + PropertyToJSON, +} from './Property'; +import type { Step } from './Step'; +import { + StepFromJSON, + StepFromJSONTyped, + StepToJSON, +} from './Step'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface Recipe + */ +export interface Recipe { + /** + * + * @type {number} + * @memberof Recipe + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Recipe + */ + name: string; + /** + * + * @type {string} + * @memberof Recipe + */ + description?: string; + /** + * + * @type {string} + * @memberof Recipe + */ + readonly image: string | null; + /** + * + * @type {Array} + * @memberof Recipe + */ + keywords?: Array; + /** + * + * @type {Array} + * @memberof Recipe + */ + steps: Array; + /** + * + * @type {number} + * @memberof Recipe + */ + workingTime?: number; + /** + * + * @type {number} + * @memberof Recipe + */ + waitingTime?: number; + /** + * + * @type {number} + * @memberof Recipe + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof Recipe + */ + readonly createdAt: Date; + /** + * + * @type {Date} + * @memberof Recipe + */ + readonly updatedAt: Date; + /** + * + * @type {string} + * @memberof Recipe + */ + sourceUrl?: string; + /** + * + * @type {boolean} + * @memberof Recipe + */ + internal?: boolean; + /** + * + * @type {boolean} + * @memberof Recipe + */ + showIngredientOverview?: boolean; + /** + * + * @type {NutritionInformation} + * @memberof Recipe + */ + nutrition?: NutritionInformation; + /** + * + * @type {Array} + * @memberof Recipe + */ + properties?: Array; + /** + * + * @type {any} + * @memberof Recipe + */ + readonly foodProperties: any | null; + /** + * + * @type {number} + * @memberof Recipe + */ + servings?: number; + /** + * + * @type {string} + * @memberof Recipe + */ + filePath?: string; + /** + * + * @type {string} + * @memberof Recipe + */ + servingsText?: string; + /** + * + * @type {number} + * @memberof Recipe + */ + readonly rating: number | null; + /** + * + * @type {Date} + * @memberof Recipe + */ + readonly lastCooked: Date | null; + /** + * + * @type {boolean} + * @memberof Recipe + */ + _private?: boolean; + /** + * + * @type {Array} + * @memberof Recipe + */ + shared?: Array; +} + +/** + * Check if a given object implements the Recipe interface. + */ +export function instanceOfRecipe(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('image' in value)) return false; + if (!('steps' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('updatedAt' in value)) return false; + if (!('foodProperties' in value)) return false; + if (!('rating' in value)) return false; + if (!('lastCooked' in value)) return false; + return true; +} + +export function RecipeFromJSON(json: any): Recipe { + return RecipeFromJSONTyped(json, false); +} + +export function RecipeFromJSONTyped(json: any, ignoreDiscriminator: boolean): Recipe { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'image': json['image'], + 'keywords': json['keywords'] == null ? undefined : ((json['keywords'] as Array).map(KeywordFromJSON)), + 'steps': ((json['steps'] as Array).map(StepFromJSON)), + 'workingTime': json['working_time'] == null ? undefined : json['working_time'], + 'waitingTime': json['waiting_time'] == null ? undefined : json['waiting_time'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + 'sourceUrl': json['source_url'] == null ? undefined : json['source_url'], + 'internal': json['internal'] == null ? undefined : json['internal'], + 'showIngredientOverview': json['show_ingredient_overview'] == null ? undefined : json['show_ingredient_overview'], + 'nutrition': json['nutrition'] == null ? undefined : NutritionInformationFromJSON(json['nutrition']), + 'properties': json['properties'] == null ? undefined : ((json['properties'] as Array).map(PropertyFromJSON)), + 'foodProperties': json['food_properties'], + 'servings': json['servings'] == null ? undefined : json['servings'], + 'filePath': json['file_path'] == null ? undefined : json['file_path'], + 'servingsText': json['servings_text'] == null ? undefined : json['servings_text'], + 'rating': json['rating'], + 'lastCooked': (json['last_cooked'] == null ? null : new Date(json['last_cooked'])), + '_private': json['private'] == null ? undefined : json['private'], + 'shared': json['shared'] == null ? undefined : ((json['shared'] as Array).map(UserFromJSON)), + }; +} + +export function RecipeToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + 'keywords': value['keywords'] == null ? undefined : ((value['keywords'] as Array).map(KeywordToJSON)), + 'steps': ((value['steps'] as Array).map(StepToJSON)), + 'working_time': value['workingTime'], + 'waiting_time': value['waitingTime'], + 'source_url': value['sourceUrl'], + 'internal': value['internal'], + 'show_ingredient_overview': value['showIngredientOverview'], + 'nutrition': NutritionInformationToJSON(value['nutrition']), + 'properties': value['properties'] == null ? undefined : ((value['properties'] as Array).map(PropertyToJSON)), + 'servings': value['servings'], + 'file_path': value['filePath'], + 'servings_text': value['servingsText'], + 'private': value['_private'], + 'shared': value['shared'] == null ? undefined : ((value['shared'] as Array).map(UserToJSON)), + }; +} + diff --git a/vue3/models/RecipeBook.ts b/vue3/models/RecipeBook.ts new file mode 100644 index 000000000..a572a3e7e --- /dev/null +++ b/vue3/models/RecipeBook.ts @@ -0,0 +1,123 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { CustomFilter } from './CustomFilter'; +import { + CustomFilterFromJSON, + CustomFilterFromJSONTyped, + CustomFilterToJSON, +} from './CustomFilter'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface RecipeBook + */ +export interface RecipeBook { + /** + * + * @type {number} + * @memberof RecipeBook + */ + readonly id: number; + /** + * + * @type {string} + * @memberof RecipeBook + */ + name: string; + /** + * + * @type {string} + * @memberof RecipeBook + */ + description?: string; + /** + * + * @type {Array} + * @memberof RecipeBook + */ + shared: Array; + /** + * + * @type {number} + * @memberof RecipeBook + */ + readonly createdBy: number; + /** + * + * @type {CustomFilter} + * @memberof RecipeBook + */ + filter?: CustomFilter; + /** + * + * @type {number} + * @memberof RecipeBook + */ + order?: number; +} + +/** + * Check if a given object implements the RecipeBook interface. + */ +export function instanceOfRecipeBook(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('shared' in value)) return false; + if (!('createdBy' in value)) return false; + return true; +} + +export function RecipeBookFromJSON(json: any): RecipeBook { + return RecipeBookFromJSONTyped(json, false); +} + +export function RecipeBookFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeBook { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'shared': ((json['shared'] as Array).map(UserFromJSON)), + 'createdBy': json['created_by'], + 'filter': json['filter'] == null ? undefined : CustomFilterFromJSON(json['filter']), + 'order': json['order'] == null ? undefined : json['order'], + }; +} + +export function RecipeBookToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + 'shared': ((value['shared'] as Array).map(UserToJSON)), + 'filter': CustomFilterToJSON(value['filter']), + 'order': value['order'], + }; +} + diff --git a/vue3/models/RecipeBookEntry.ts b/vue3/models/RecipeBookEntry.ts new file mode 100644 index 000000000..af670385c --- /dev/null +++ b/vue3/models/RecipeBookEntry.ts @@ -0,0 +1,107 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { RecipeBook } from './RecipeBook'; +import { + RecipeBookFromJSON, + RecipeBookFromJSONTyped, + RecipeBookToJSON, +} from './RecipeBook'; +import type { RecipeOverview } from './RecipeOverview'; +import { + RecipeOverviewFromJSON, + RecipeOverviewFromJSONTyped, + RecipeOverviewToJSON, +} from './RecipeOverview'; + +/** + * + * @export + * @interface RecipeBookEntry + */ +export interface RecipeBookEntry { + /** + * + * @type {number} + * @memberof RecipeBookEntry + */ + readonly id: number; + /** + * + * @type {number} + * @memberof RecipeBookEntry + */ + book: number; + /** + * + * @type {RecipeBook} + * @memberof RecipeBookEntry + */ + readonly bookContent: RecipeBook; + /** + * + * @type {number} + * @memberof RecipeBookEntry + */ + recipe: number; + /** + * + * @type {RecipeOverview} + * @memberof RecipeBookEntry + */ + readonly recipeContent: RecipeOverview; +} + +/** + * Check if a given object implements the RecipeBookEntry interface. + */ +export function instanceOfRecipeBookEntry(value: object): boolean { + if (!('id' in value)) return false; + if (!('book' in value)) return false; + if (!('bookContent' in value)) return false; + if (!('recipe' in value)) return false; + if (!('recipeContent' in value)) return false; + return true; +} + +export function RecipeBookEntryFromJSON(json: any): RecipeBookEntry { + return RecipeBookEntryFromJSONTyped(json, false); +} + +export function RecipeBookEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeBookEntry { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'book': json['book'], + 'bookContent': RecipeBookFromJSON(json['book_content']), + 'recipe': json['recipe'], + 'recipeContent': RecipeOverviewFromJSON(json['recipe_content']), + }; +} + +export function RecipeBookEntryToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'book': value['book'], + 'recipe': value['recipe'], + }; +} + diff --git a/vue3/models/RecipeFlat.ts b/vue3/models/RecipeFlat.ts new file mode 100644 index 000000000..5c43ffbdf --- /dev/null +++ b/vue3/models/RecipeFlat.ts @@ -0,0 +1,77 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface RecipeFlat + */ +export interface RecipeFlat { + /** + * + * @type {number} + * @memberof RecipeFlat + */ + readonly id: number; + /** + * + * @type {string} + * @memberof RecipeFlat + */ + name: string; + /** + * + * @type {string} + * @memberof RecipeFlat + */ + image?: string; +} + +/** + * Check if a given object implements the RecipeFlat interface. + */ +export function instanceOfRecipeFlat(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + return true; +} + +export function RecipeFlatFromJSON(json: any): RecipeFlat { + return RecipeFlatFromJSONTyped(json, false); +} + +export function RecipeFlatFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeFlat { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'image': json['image'] == null ? undefined : json['image'], + }; +} + +export function RecipeFlatToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'image': value['image'], + }; +} + diff --git a/vue3/models/RecipeImage.ts b/vue3/models/RecipeImage.ts new file mode 100644 index 000000000..eb7483c2a --- /dev/null +++ b/vue3/models/RecipeImage.ts @@ -0,0 +1,68 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface RecipeImage + */ +export interface RecipeImage { + /** + * + * @type {string} + * @memberof RecipeImage + */ + image?: string; + /** + * + * @type {string} + * @memberof RecipeImage + */ + imageUrl?: string; +} + +/** + * Check if a given object implements the RecipeImage interface. + */ +export function instanceOfRecipeImage(value: object): boolean { + return true; +} + +export function RecipeImageFromJSON(json: any): RecipeImage { + return RecipeImageFromJSONTyped(json, false); +} + +export function RecipeImageFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeImage { + if (json == null) { + return json; + } + return { + + 'image': json['image'] == null ? undefined : json['image'], + 'imageUrl': json['image_url'] == null ? undefined : json['image_url'], + }; +} + +export function RecipeImageToJSON(value?: RecipeImage | null): any { + if (value == null) { + return value; + } + return { + + 'image': value['image'], + 'image_url': value['imageUrl'], + }; +} + diff --git a/vue3/models/RecipeOverview.ts b/vue3/models/RecipeOverview.ts new file mode 100644 index 000000000..d19b3fb81 --- /dev/null +++ b/vue3/models/RecipeOverview.ts @@ -0,0 +1,195 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { KeywordLabel } from './KeywordLabel'; +import { + KeywordLabelFromJSON, + KeywordLabelFromJSONTyped, + KeywordLabelToJSON, +} from './KeywordLabel'; + +/** + * Adds nested create feature + * @export + * @interface RecipeOverview + */ +export interface RecipeOverview { + /** + * + * @type {number} + * @memberof RecipeOverview + */ + readonly id: number; + /** + * + * @type {string} + * @memberof RecipeOverview + */ + readonly name: string; + /** + * + * @type {string} + * @memberof RecipeOverview + */ + readonly description: string | null; + /** + * + * @type {string} + * @memberof RecipeOverview + */ + readonly image: string | null; + /** + * + * @type {Array} + * @memberof RecipeOverview + */ + readonly keywords: Array; + /** + * + * @type {number} + * @memberof RecipeOverview + */ + readonly workingTime: number; + /** + * + * @type {number} + * @memberof RecipeOverview + */ + readonly waitingTime: number; + /** + * + * @type {number} + * @memberof RecipeOverview + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof RecipeOverview + */ + readonly createdAt: Date; + /** + * + * @type {Date} + * @memberof RecipeOverview + */ + readonly updatedAt: Date; + /** + * + * @type {boolean} + * @memberof RecipeOverview + */ + readonly internal: boolean; + /** + * + * @type {number} + * @memberof RecipeOverview + */ + readonly servings: number; + /** + * + * @type {string} + * @memberof RecipeOverview + */ + readonly servingsText: string; + /** + * + * @type {number} + * @memberof RecipeOverview + */ + readonly rating: number | null; + /** + * + * @type {Date} + * @memberof RecipeOverview + */ + readonly lastCooked: Date | null; + /** + * + * @type {boolean} + * @memberof RecipeOverview + */ + readonly _new: boolean; + /** + * + * @type {string} + * @memberof RecipeOverview + */ + readonly recent: string; +} + +/** + * Check if a given object implements the RecipeOverview interface. + */ +export function instanceOfRecipeOverview(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('description' in value)) return false; + if (!('image' in value)) return false; + if (!('keywords' in value)) return false; + if (!('workingTime' in value)) return false; + if (!('waitingTime' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('updatedAt' in value)) return false; + if (!('internal' in value)) return false; + if (!('servings' in value)) return false; + if (!('servingsText' in value)) return false; + if (!('rating' in value)) return false; + if (!('lastCooked' in value)) return false; + if (!('_new' in value)) return false; + if (!('recent' in value)) return false; + return true; +} + +export function RecipeOverviewFromJSON(json: any): RecipeOverview { + return RecipeOverviewFromJSONTyped(json, false); +} + +export function RecipeOverviewFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeOverview { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'description': json['description'], + 'image': json['image'], + 'keywords': ((json['keywords'] as Array).map(KeywordLabelFromJSON)), + 'workingTime': json['working_time'], + 'waitingTime': json['waiting_time'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + 'internal': json['internal'], + 'servings': json['servings'], + 'servingsText': json['servings_text'], + 'rating': json['rating'], + 'lastCooked': (json['last_cooked'] == null ? null : new Date(json['last_cooked'])), + '_new': json['new'], + 'recent': json['recent'], + }; +} + +export function RecipeOverviewToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + }; +} + diff --git a/vue3/models/RecipeShoppingUpdate.ts b/vue3/models/RecipeShoppingUpdate.ts new file mode 100644 index 000000000..9496a4929 --- /dev/null +++ b/vue3/models/RecipeShoppingUpdate.ts @@ -0,0 +1,84 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface RecipeShoppingUpdate + */ +export interface RecipeShoppingUpdate { + /** + * + * @type {number} + * @memberof RecipeShoppingUpdate + */ + readonly id: number; + /** + * Existing shopping list to update + * @type {number} + * @memberof RecipeShoppingUpdate + */ + listRecipe?: number; + /** + * List of ingredient IDs from the recipe to add, if not provided all ingredients will be added. + * @type {number} + * @memberof RecipeShoppingUpdate + */ + ingredients?: number; + /** + * Providing a list_recipe ID and servings of 0 will delete that shopping list. + * @type {number} + * @memberof RecipeShoppingUpdate + */ + servings?: number; +} + +/** + * Check if a given object implements the RecipeShoppingUpdate interface. + */ +export function instanceOfRecipeShoppingUpdate(value: object): boolean { + if (!('id' in value)) return false; + return true; +} + +export function RecipeShoppingUpdateFromJSON(json: any): RecipeShoppingUpdate { + return RecipeShoppingUpdateFromJSONTyped(json, false); +} + +export function RecipeShoppingUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeShoppingUpdate { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'listRecipe': json['list_recipe'] == null ? undefined : json['list_recipe'], + 'ingredients': json['ingredients'] == null ? undefined : json['ingredients'], + 'servings': json['servings'] == null ? undefined : json['servings'], + }; +} + +export function RecipeShoppingUpdateToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'list_recipe': value['listRecipe'], + 'ingredients': value['ingredients'], + 'servings': value['servings'], + }; +} + diff --git a/vue3/models/RecipeSimple.ts b/vue3/models/RecipeSimple.ts new file mode 100644 index 000000000..3da58fb21 --- /dev/null +++ b/vue3/models/RecipeSimple.ts @@ -0,0 +1,77 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface RecipeSimple + */ +export interface RecipeSimple { + /** + * + * @type {number} + * @memberof RecipeSimple + */ + readonly id: number; + /** + * + * @type {string} + * @memberof RecipeSimple + */ + name: string; + /** + * + * @type {string} + * @memberof RecipeSimple + */ + readonly url: string; +} + +/** + * Check if a given object implements the RecipeSimple interface. + */ +export function instanceOfRecipeSimple(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('url' in value)) return false; + return true; +} + +export function RecipeSimpleFromJSON(json: any): RecipeSimple { + return RecipeSimpleFromJSONTyped(json, false); +} + +export function RecipeSimpleFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecipeSimple { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'url': json['url'], + }; +} + +export function RecipeSimpleToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + }; +} + diff --git a/vue3/models/ShoppingListEntry.ts b/vue3/models/ShoppingListEntry.ts new file mode 100644 index 000000000..bcab7d2e4 --- /dev/null +++ b/vue3/models/ShoppingListEntry.ts @@ -0,0 +1,183 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; +import type { ShoppingListRecipe } from './ShoppingListRecipe'; +import { + ShoppingListRecipeFromJSON, + ShoppingListRecipeFromJSONTyped, + ShoppingListRecipeToJSON, +} from './ShoppingListRecipe'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface ShoppingListEntry + */ +export interface ShoppingListEntry { + /** + * + * @type {number} + * @memberof ShoppingListEntry + */ + readonly id: number; + /** + * + * @type {number} + * @memberof ShoppingListEntry + */ + listRecipe?: number; + /** + * + * @type {Food} + * @memberof ShoppingListEntry + */ + food: Food | null; + /** + * + * @type {Unit} + * @memberof ShoppingListEntry + */ + unit?: Unit; + /** + * + * @type {number} + * @memberof ShoppingListEntry + */ + amount: number; + /** + * + * @type {number} + * @memberof ShoppingListEntry + */ + order?: number; + /** + * + * @type {boolean} + * @memberof ShoppingListEntry + */ + checked?: boolean; + /** + * + * @type {ShoppingListRecipe} + * @memberof ShoppingListEntry + */ + readonly recipeMealplan: ShoppingListRecipe; + /** + * + * @type {User} + * @memberof ShoppingListEntry + */ + readonly createdBy: User; + /** + * + * @type {Date} + * @memberof ShoppingListEntry + */ + readonly createdAt: Date; + /** + * + * @type {Date} + * @memberof ShoppingListEntry + */ + readonly updatedAt: Date; + /** + * + * @type {Date} + * @memberof ShoppingListEntry + */ + completedAt?: Date; + /** + * + * @type {Date} + * @memberof ShoppingListEntry + */ + delayUntil?: Date; +} + +/** + * Check if a given object implements the ShoppingListEntry interface. + */ +export function instanceOfShoppingListEntry(value: object): boolean { + if (!('id' in value)) return false; + if (!('food' in value)) return false; + if (!('amount' in value)) return false; + if (!('recipeMealplan' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('updatedAt' in value)) return false; + return true; +} + +export function ShoppingListEntryFromJSON(json: any): ShoppingListEntry { + return ShoppingListEntryFromJSONTyped(json, false); +} + +export function ShoppingListEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean): ShoppingListEntry { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'listRecipe': json['list_recipe'] == null ? undefined : json['list_recipe'], + 'food': FoodFromJSON(json['food']), + 'unit': json['unit'] == null ? undefined : UnitFromJSON(json['unit']), + 'amount': json['amount'], + 'order': json['order'] == null ? undefined : json['order'], + 'checked': json['checked'] == null ? undefined : json['checked'], + 'recipeMealplan': ShoppingListRecipeFromJSON(json['recipe_mealplan']), + 'createdBy': UserFromJSON(json['created_by']), + 'createdAt': (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + 'completedAt': json['completed_at'] == null ? undefined : (new Date(json['completed_at'])), + 'delayUntil': json['delay_until'] == null ? undefined : (new Date(json['delay_until'])), + }; +} + +export function ShoppingListEntryToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'list_recipe': value['listRecipe'], + 'food': FoodToJSON(value['food']), + 'unit': UnitToJSON(value['unit']), + 'amount': value['amount'], + 'order': value['order'], + 'checked': value['checked'], + 'completed_at': value['completedAt'] == null ? undefined : ((value['completedAt'] as any).toISOString()), + 'delay_until': value['delayUntil'] == null ? undefined : ((value['delayUntil'] as any).toISOString()), + }; +} + diff --git a/vue3/models/ShoppingListEntryBulk.ts b/vue3/models/ShoppingListEntryBulk.ts new file mode 100644 index 000000000..83a7e2fd8 --- /dev/null +++ b/vue3/models/ShoppingListEntryBulk.ts @@ -0,0 +1,70 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ShoppingListEntryBulk + */ +export interface ShoppingListEntryBulk { + /** + * + * @type {Array} + * @memberof ShoppingListEntryBulk + */ + ids: Array; + /** + * + * @type {boolean} + * @memberof ShoppingListEntryBulk + */ + checked: boolean; +} + +/** + * Check if a given object implements the ShoppingListEntryBulk interface. + */ +export function instanceOfShoppingListEntryBulk(value: object): boolean { + if (!('ids' in value)) return false; + if (!('checked' in value)) return false; + return true; +} + +export function ShoppingListEntryBulkFromJSON(json: any): ShoppingListEntryBulk { + return ShoppingListEntryBulkFromJSONTyped(json, false); +} + +export function ShoppingListEntryBulkFromJSONTyped(json: any, ignoreDiscriminator: boolean): ShoppingListEntryBulk { + if (json == null) { + return json; + } + return { + + 'ids': json['ids'], + 'checked': json['checked'], + }; +} + +export function ShoppingListEntryBulkToJSON(value?: ShoppingListEntryBulk | null): any { + if (value == null) { + return value; + } + return { + + 'ids': value['ids'], + 'checked': value['checked'], + }; +} + diff --git a/vue3/models/ShoppingListRecipe.ts b/vue3/models/ShoppingListRecipe.ts new file mode 100644 index 000000000..1c39d3f49 --- /dev/null +++ b/vue3/models/ShoppingListRecipe.ts @@ -0,0 +1,125 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ShoppingListRecipe + */ +export interface ShoppingListRecipe { + /** + * + * @type {number} + * @memberof ShoppingListRecipe + */ + readonly id: number; + /** + * + * @type {string} + * @memberof ShoppingListRecipe + */ + readonly recipeName: string; + /** + * + * @type {string} + * @memberof ShoppingListRecipe + */ + readonly name: string; + /** + * + * @type {number} + * @memberof ShoppingListRecipe + */ + recipe?: number; + /** + * + * @type {number} + * @memberof ShoppingListRecipe + */ + mealplan?: number; + /** + * + * @type {number} + * @memberof ShoppingListRecipe + */ + servings: number; + /** + * + * @type {string} + * @memberof ShoppingListRecipe + */ + readonly mealplanNote: string; + /** + * + * @type {Date} + * @memberof ShoppingListRecipe + */ + readonly mealplanFromDate: Date; + /** + * + * @type {string} + * @memberof ShoppingListRecipe + */ + readonly mealplanType: string; +} + +/** + * Check if a given object implements the ShoppingListRecipe interface. + */ +export function instanceOfShoppingListRecipe(value: object): boolean { + if (!('id' in value)) return false; + if (!('recipeName' in value)) return false; + if (!('name' in value)) return false; + if (!('servings' in value)) return false; + if (!('mealplanNote' in value)) return false; + if (!('mealplanFromDate' in value)) return false; + if (!('mealplanType' in value)) return false; + return true; +} + +export function ShoppingListRecipeFromJSON(json: any): ShoppingListRecipe { + return ShoppingListRecipeFromJSONTyped(json, false); +} + +export function ShoppingListRecipeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ShoppingListRecipe { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'recipeName': json['recipe_name'], + 'name': json['name'], + 'recipe': json['recipe'] == null ? undefined : json['recipe'], + 'mealplan': json['mealplan'] == null ? undefined : json['mealplan'], + 'servings': json['servings'], + 'mealplanNote': json['mealplan_note'], + 'mealplanFromDate': (new Date(json['mealplan_from_date'])), + 'mealplanType': json['mealplan_type'], + }; +} + +export function ShoppingListRecipeToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'recipe': value['recipe'], + 'mealplan': value['mealplan'], + 'servings': value['servings'], + }; +} + diff --git a/vue3/models/Space.ts b/vue3/models/Space.ts new file mode 100644 index 000000000..777b156c0 --- /dev/null +++ b/vue3/models/Space.ts @@ -0,0 +1,294 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { FoodInheritField } from './FoodInheritField'; +import { + FoodInheritFieldFromJSON, + FoodInheritFieldFromJSONTyped, + FoodInheritFieldToJSON, +} from './FoodInheritField'; +import type { SpaceNavTextColorEnum } from './SpaceNavTextColorEnum'; +import { + SpaceNavTextColorEnumFromJSON, + SpaceNavTextColorEnumFromJSONTyped, + SpaceNavTextColorEnumToJSON, +} from './SpaceNavTextColorEnum'; +import type { SpaceThemeEnum } from './SpaceThemeEnum'; +import { + SpaceThemeEnumFromJSON, + SpaceThemeEnumFromJSONTyped, + SpaceThemeEnumToJSON, +} from './SpaceThemeEnum'; +import type { UserFileView } from './UserFileView'; +import { + UserFileViewFromJSON, + UserFileViewFromJSONTyped, + UserFileViewToJSON, +} from './UserFileView'; + +/** + * Adds nested create feature + * @export + * @interface Space + */ +export interface Space { + /** + * + * @type {number} + * @memberof Space + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Space + */ + name?: string; + /** + * + * @type {number} + * @memberof Space + */ + readonly createdBy: number | null; + /** + * + * @type {Date} + * @memberof Space + */ + readonly createdAt: Date; + /** + * + * @type {string} + * @memberof Space + */ + message?: string; + /** + * + * @type {number} + * @memberof Space + */ + readonly maxRecipes: number; + /** + * Maximum file storage for space in MB. 0 for unlimited, -1 to disable file upload. + * @type {number} + * @memberof Space + */ + readonly maxFileStorageMb: number; + /** + * + * @type {number} + * @memberof Space + */ + readonly maxUsers: number; + /** + * + * @type {boolean} + * @memberof Space + */ + readonly allowSharing: boolean; + /** + * + * @type {boolean} + * @memberof Space + */ + readonly demo: boolean; + /** + * + * @type {Array} + * @memberof Space + */ + foodInherit: Array; + /** + * + * @type {number} + * @memberof Space + */ + readonly userCount: number; + /** + * + * @type {number} + * @memberof Space + */ + readonly recipeCount: number; + /** + * + * @type {number} + * @memberof Space + */ + readonly fileSizeMb: number; + /** + * + * @type {UserFileView} + * @memberof Space + */ + image?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + navLogo?: UserFileView; + /** + * + * @type {SpaceThemeEnum} + * @memberof Space + */ + spaceTheme?: SpaceThemeEnum; + /** + * + * @type {UserFileView} + * @memberof Space + */ + customSpaceTheme?: UserFileView; + /** + * + * @type {string} + * @memberof Space + */ + navBgColor?: string; + /** + * + * @type {SpaceNavTextColorEnum} + * @memberof Space + */ + navTextColor?: SpaceNavTextColorEnum; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColor32?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColor128?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColor144?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColor180?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColor192?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColor512?: UserFileView; + /** + * + * @type {UserFileView} + * @memberof Space + */ + logoColorSvg?: UserFileView; +} + +/** + * Check if a given object implements the Space interface. + */ +export function instanceOfSpace(value: object): boolean { + if (!('id' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('maxRecipes' in value)) return false; + if (!('maxFileStorageMb' in value)) return false; + if (!('maxUsers' in value)) return false; + if (!('allowSharing' in value)) return false; + if (!('demo' in value)) return false; + if (!('foodInherit' in value)) return false; + if (!('userCount' in value)) return false; + if (!('recipeCount' in value)) return false; + if (!('fileSizeMb' in value)) return false; + return true; +} + +export function SpaceFromJSON(json: any): Space { + return SpaceFromJSONTyped(json, false); +} + +export function SpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Space { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + 'message': json['message'] == null ? undefined : json['message'], + 'maxRecipes': json['max_recipes'], + 'maxFileStorageMb': json['max_file_storage_mb'], + 'maxUsers': json['max_users'], + 'allowSharing': json['allow_sharing'], + 'demo': json['demo'], + 'foodInherit': ((json['food_inherit'] as Array).map(FoodInheritFieldFromJSON)), + 'userCount': json['user_count'], + 'recipeCount': json['recipe_count'], + 'fileSizeMb': json['file_size_mb'], + 'image': json['image'] == null ? undefined : UserFileViewFromJSON(json['image']), + 'navLogo': json['nav_logo'] == null ? undefined : UserFileViewFromJSON(json['nav_logo']), + 'spaceTheme': json['space_theme'] == null ? undefined : SpaceThemeEnumFromJSON(json['space_theme']), + 'customSpaceTheme': json['custom_space_theme'] == null ? undefined : UserFileViewFromJSON(json['custom_space_theme']), + 'navBgColor': json['nav_bg_color'] == null ? undefined : json['nav_bg_color'], + 'navTextColor': json['nav_text_color'] == null ? undefined : SpaceNavTextColorEnumFromJSON(json['nav_text_color']), + 'logoColor32': json['logo_color_32'] == null ? undefined : UserFileViewFromJSON(json['logo_color_32']), + 'logoColor128': json['logo_color_128'] == null ? undefined : UserFileViewFromJSON(json['logo_color_128']), + 'logoColor144': json['logo_color_144'] == null ? undefined : UserFileViewFromJSON(json['logo_color_144']), + 'logoColor180': json['logo_color_180'] == null ? undefined : UserFileViewFromJSON(json['logo_color_180']), + 'logoColor192': json['logo_color_192'] == null ? undefined : UserFileViewFromJSON(json['logo_color_192']), + 'logoColor512': json['logo_color_512'] == null ? undefined : UserFileViewFromJSON(json['logo_color_512']), + 'logoColorSvg': json['logo_color_svg'] == null ? undefined : UserFileViewFromJSON(json['logo_color_svg']), + }; +} + +export function SpaceToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'message': value['message'], + 'food_inherit': ((value['foodInherit'] as Array).map(FoodInheritFieldToJSON)), + 'image': UserFileViewToJSON(value['image']), + 'nav_logo': UserFileViewToJSON(value['navLogo']), + 'space_theme': SpaceThemeEnumToJSON(value['spaceTheme']), + 'custom_space_theme': UserFileViewToJSON(value['customSpaceTheme']), + 'nav_bg_color': value['navBgColor'], + 'nav_text_color': SpaceNavTextColorEnumToJSON(value['navTextColor']), + 'logo_color_32': UserFileViewToJSON(value['logoColor32']), + 'logo_color_128': UserFileViewToJSON(value['logoColor128']), + 'logo_color_144': UserFileViewToJSON(value['logoColor144']), + 'logo_color_180': UserFileViewToJSON(value['logoColor180']), + 'logo_color_192': UserFileViewToJSON(value['logoColor192']), + 'logo_color_512': UserFileViewToJSON(value['logoColor512']), + 'logo_color_svg': UserFileViewToJSON(value['logoColorSvg']), + }; +} + diff --git a/vue3/models/SpaceNavTextColorEnum.ts b/vue3/models/SpaceNavTextColorEnum.ts new file mode 100644 index 000000000..180ef1976 --- /dev/null +++ b/vue3/models/SpaceNavTextColorEnum.ts @@ -0,0 +1,45 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `BLANK` - ------- + * * `LIGHT` - Light + * * `DARK` - Dark + * @export + */ +export const SpaceNavTextColorEnum = { + Blank: 'BLANK', + Light: 'LIGHT', + Dark: 'DARK' +} as const; +export type SpaceNavTextColorEnum = typeof SpaceNavTextColorEnum[keyof typeof SpaceNavTextColorEnum]; + + +export function instanceOfSpaceNavTextColorEnum(value: any): boolean { + return Object.values(SpaceNavTextColorEnum).includes(value); +} + +export function SpaceNavTextColorEnumFromJSON(json: any): SpaceNavTextColorEnum { + return SpaceNavTextColorEnumFromJSONTyped(json, false); +} + +export function SpaceNavTextColorEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpaceNavTextColorEnum { + return json as SpaceNavTextColorEnum; +} + +export function SpaceNavTextColorEnumToJSON(value?: SpaceNavTextColorEnum | null): any { + return value as any; +} + diff --git a/vue3/models/SpaceThemeEnum.ts b/vue3/models/SpaceThemeEnum.ts new file mode 100644 index 000000000..16e7f43fd --- /dev/null +++ b/vue3/models/SpaceThemeEnum.ts @@ -0,0 +1,53 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `BLANK` - ------- + * * `TANDOOR` - Tandoor + * * `BOOTSTRAP` - Bootstrap + * * `DARKLY` - Darkly + * * `FLATLY` - Flatly + * * `SUPERHERO` - Superhero + * * `TANDOOR_DARK` - Tandoor Dark (INCOMPLETE) + * @export + */ +export const SpaceThemeEnum = { + Blank: 'BLANK', + Tandoor: 'TANDOOR', + Bootstrap: 'BOOTSTRAP', + Darkly: 'DARKLY', + Flatly: 'FLATLY', + Superhero: 'SUPERHERO', + TandoorDark: 'TANDOOR_DARK' +} as const; +export type SpaceThemeEnum = typeof SpaceThemeEnum[keyof typeof SpaceThemeEnum]; + + +export function instanceOfSpaceThemeEnum(value: any): boolean { + return Object.values(SpaceThemeEnum).includes(value); +} + +export function SpaceThemeEnumFromJSON(json: any): SpaceThemeEnum { + return SpaceThemeEnumFromJSONTyped(json, false); +} + +export function SpaceThemeEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpaceThemeEnum { + return json as SpaceThemeEnum; +} + +export function SpaceThemeEnumToJSON(value?: SpaceThemeEnum | null): any { + return value as any; +} + diff --git a/vue3/models/Step.ts b/vue3/models/Step.ts new file mode 100644 index 000000000..773291245 --- /dev/null +++ b/vue3/models/Step.ts @@ -0,0 +1,170 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Ingredient } from './Ingredient'; +import { + IngredientFromJSON, + IngredientFromJSONTyped, + IngredientToJSON, +} from './Ingredient'; +import type { UserFileView } from './UserFileView'; +import { + UserFileViewFromJSON, + UserFileViewFromJSONTyped, + UserFileViewToJSON, +} from './UserFileView'; + +/** + * Adds nested create feature + * @export + * @interface Step + */ +export interface Step { + /** + * + * @type {number} + * @memberof Step + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Step + */ + name?: string; + /** + * + * @type {string} + * @memberof Step + */ + instruction?: string; + /** + * + * @type {Array} + * @memberof Step + */ + ingredients: Array; + /** + * + * @type {string} + * @memberof Step + */ + readonly instructionsMarkdown: string; + /** + * + * @type {number} + * @memberof Step + */ + time?: number; + /** + * + * @type {number} + * @memberof Step + */ + order?: number; + /** + * + * @type {boolean} + * @memberof Step + */ + showAsHeader?: boolean; + /** + * + * @type {UserFileView} + * @memberof Step + */ + file?: UserFileView; + /** + * + * @type {number} + * @memberof Step + */ + stepRecipe?: number; + /** + * + * @type {any} + * @memberof Step + */ + readonly stepRecipeData: any | null; + /** + * + * @type {number} + * @memberof Step + */ + readonly numrecipe: number; + /** + * + * @type {boolean} + * @memberof Step + */ + showIngredientsTable?: boolean; +} + +/** + * Check if a given object implements the Step interface. + */ +export function instanceOfStep(value: object): boolean { + if (!('id' in value)) return false; + if (!('ingredients' in value)) return false; + if (!('instructionsMarkdown' in value)) return false; + if (!('stepRecipeData' in value)) return false; + if (!('numrecipe' in value)) return false; + return true; +} + +export function StepFromJSON(json: any): Step { + return StepFromJSONTyped(json, false); +} + +export function StepFromJSONTyped(json: any, ignoreDiscriminator: boolean): Step { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'] == null ? undefined : json['name'], + 'instruction': json['instruction'] == null ? undefined : json['instruction'], + 'ingredients': ((json['ingredients'] as Array).map(IngredientFromJSON)), + 'instructionsMarkdown': json['instructions_markdown'], + 'time': json['time'] == null ? undefined : json['time'], + 'order': json['order'] == null ? undefined : json['order'], + 'showAsHeader': json['show_as_header'] == null ? undefined : json['show_as_header'], + 'file': json['file'] == null ? undefined : UserFileViewFromJSON(json['file']), + 'stepRecipe': json['step_recipe'] == null ? undefined : json['step_recipe'], + 'stepRecipeData': json['step_recipe_data'], + 'numrecipe': json['numrecipe'], + 'showIngredientsTable': json['show_ingredients_table'] == null ? undefined : json['show_ingredients_table'], + }; +} + +export function StepToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'instruction': value['instruction'], + 'ingredients': ((value['ingredients'] as Array).map(IngredientToJSON)), + 'time': value['time'], + 'order': value['order'], + 'show_as_header': value['showAsHeader'], + 'file': UserFileViewToJSON(value['file']), + 'step_recipe': value['stepRecipe'], + 'show_ingredients_table': value['showIngredientsTable'], + }; +} + diff --git a/vue3/models/Storage.ts b/vue3/models/Storage.ts new file mode 100644 index 000000000..62b442adf --- /dev/null +++ b/vue3/models/Storage.ts @@ -0,0 +1,116 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { MethodEnum } from './MethodEnum'; +import { + MethodEnumFromJSON, + MethodEnumFromJSONTyped, + MethodEnumToJSON, +} from './MethodEnum'; + +/** + * + * @export + * @interface Storage + */ +export interface Storage { + /** + * + * @type {number} + * @memberof Storage + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Storage + */ + name: string; + /** + * + * @type {MethodEnum} + * @memberof Storage + */ + method?: MethodEnum; + /** + * + * @type {string} + * @memberof Storage + */ + username?: string; + /** + * + * @type {string} + * @memberof Storage + */ + password?: string; + /** + * + * @type {string} + * @memberof Storage + */ + token?: string; + /** + * + * @type {number} + * @memberof Storage + */ + readonly createdBy: number; +} + +/** + * Check if a given object implements the Storage interface. + */ +export function instanceOfStorage(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('createdBy' in value)) return false; + return true; +} + +export function StorageFromJSON(json: any): Storage { + return StorageFromJSONTyped(json, false); +} + +export function StorageFromJSONTyped(json: any, ignoreDiscriminator: boolean): Storage { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'method': json['method'] == null ? undefined : MethodEnumFromJSON(json['method']), + 'username': json['username'] == null ? undefined : json['username'], + 'password': json['password'] == null ? undefined : json['password'], + 'token': json['token'] == null ? undefined : json['token'], + 'createdBy': json['created_by'], + }; +} + +export function StorageToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'method': MethodEnumToJSON(value['method']), + 'username': value['username'], + 'password': value['password'], + 'token': value['token'], + }; +} + diff --git a/vue3/models/Supermarket.ts b/vue3/models/Supermarket.ts new file mode 100644 index 000000000..929f5efe9 --- /dev/null +++ b/vue3/models/Supermarket.ts @@ -0,0 +1,134 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SupermarketCategoryRelation } from './SupermarketCategoryRelation'; +import { + SupermarketCategoryRelationFromJSON, + SupermarketCategoryRelationFromJSONTyped, + SupermarketCategoryRelationToJSON, +} from './SupermarketCategoryRelation'; + +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface Supermarket + */ +export interface Supermarket { + /** + * + * @type {number} + * @memberof Supermarket + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Supermarket + */ + name: string; + /** + * + * @type {string} + * @memberof Supermarket + */ + description?: string; + /** + * + * @type {Array} + * @memberof Supermarket + */ + readonly categoryToSupermarket: Array; + /** + * + * @type {string} + * @memberof Supermarket + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the Supermarket interface. + */ +export function instanceOfSupermarket(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('categoryToSupermarket' in value)) return false; + return true; +} + +export function SupermarketFromJSON(json: any): Supermarket { + return SupermarketFromJSONTyped(json, false); +} + +export function SupermarketFromJSONTyped(json: any, ignoreDiscriminator: boolean): Supermarket { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'description': json['description'] == null ? undefined : json['description'], + 'categoryToSupermarket': ((json['category_to_supermarket'] as Array).map(SupermarketCategoryRelationFromJSON)), + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function SupermarketToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/SupermarketCategory.ts b/vue3/models/SupermarketCategory.ts new file mode 100644 index 000000000..67f681189 --- /dev/null +++ b/vue3/models/SupermarketCategory.ts @@ -0,0 +1,111 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface SupermarketCategory + */ +export interface SupermarketCategory { + /** + * + * @type {number} + * @memberof SupermarketCategory + */ + readonly id: number; + /** + * + * @type {string} + * @memberof SupermarketCategory + */ + name: string; + /** + * + * @type {string} + * @memberof SupermarketCategory + */ + description?: string; +} + +/** + * Check if a given object implements the SupermarketCategory interface. + */ +export function instanceOfSupermarketCategory(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + return true; +} + +export function SupermarketCategoryFromJSON(json: any): SupermarketCategory { + return SupermarketCategoryFromJSONTyped(json, false); +} + +export function SupermarketCategoryFromJSONTyped(json: any, ignoreDiscriminator: boolean): SupermarketCategory { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'description': json['description'] == null ? undefined : json['description'], + }; +} + +export function SupermarketCategoryToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'description': value['description'], + }; +} + diff --git a/vue3/models/SupermarketCategoryRelation.ts b/vue3/models/SupermarketCategoryRelation.ts new file mode 100644 index 000000000..854ca9b94 --- /dev/null +++ b/vue3/models/SupermarketCategoryRelation.ts @@ -0,0 +1,93 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SupermarketCategory } from './SupermarketCategory'; +import { + SupermarketCategoryFromJSON, + SupermarketCategoryFromJSONTyped, + SupermarketCategoryToJSON, +} from './SupermarketCategory'; + +/** + * Adds nested create feature + * @export + * @interface SupermarketCategoryRelation + */ +export interface SupermarketCategoryRelation { + /** + * + * @type {number} + * @memberof SupermarketCategoryRelation + */ + readonly id: number; + /** + * + * @type {SupermarketCategory} + * @memberof SupermarketCategoryRelation + */ + category: SupermarketCategory; + /** + * + * @type {number} + * @memberof SupermarketCategoryRelation + */ + supermarket: number; + /** + * + * @type {number} + * @memberof SupermarketCategoryRelation + */ + order?: number; +} + +/** + * Check if a given object implements the SupermarketCategoryRelation interface. + */ +export function instanceOfSupermarketCategoryRelation(value: object): boolean { + if (!('id' in value)) return false; + if (!('category' in value)) return false; + if (!('supermarket' in value)) return false; + return true; +} + +export function SupermarketCategoryRelationFromJSON(json: any): SupermarketCategoryRelation { + return SupermarketCategoryRelationFromJSONTyped(json, false); +} + +export function SupermarketCategoryRelationFromJSONTyped(json: any, ignoreDiscriminator: boolean): SupermarketCategoryRelation { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'category': SupermarketCategoryFromJSON(json['category']), + 'supermarket': json['supermarket'], + 'order': json['order'] == null ? undefined : json['order'], + }; +} + +export function SupermarketCategoryRelationToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'category': SupermarketCategoryToJSON(value['category']), + 'supermarket': value['supermarket'], + 'order': value['order'], + }; +} + diff --git a/vue3/models/Sync.ts b/vue3/models/Sync.ts new file mode 100644 index 000000000..191acfd73 --- /dev/null +++ b/vue3/models/Sync.ts @@ -0,0 +1,109 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface Sync + */ +export interface Sync { + /** + * + * @type {number} + * @memberof Sync + */ + readonly id: number; + /** + * + * @type {number} + * @memberof Sync + */ + storage: number; + /** + * + * @type {string} + * @memberof Sync + */ + path?: string; + /** + * + * @type {boolean} + * @memberof Sync + */ + active?: boolean; + /** + * + * @type {Date} + * @memberof Sync + */ + lastChecked?: Date; + /** + * + * @type {Date} + * @memberof Sync + */ + readonly createdAt: Date; + /** + * + * @type {Date} + * @memberof Sync + */ + readonly updatedAt: Date; +} + +/** + * Check if a given object implements the Sync interface. + */ +export function instanceOfSync(value: object): boolean { + if (!('id' in value)) return false; + if (!('storage' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('updatedAt' in value)) return false; + return true; +} + +export function SyncFromJSON(json: any): Sync { + return SyncFromJSONTyped(json, false); +} + +export function SyncFromJSONTyped(json: any, ignoreDiscriminator: boolean): Sync { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'storage': json['storage'], + 'path': json['path'] == null ? undefined : json['path'], + 'active': json['active'] == null ? undefined : json['active'], + 'lastChecked': json['last_checked'] == null ? undefined : (new Date(json['last_checked'])), + 'createdAt': (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + }; +} + +export function SyncToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'storage': value['storage'], + 'path': value['path'], + 'active': value['active'], + 'last_checked': value['lastChecked'] == null ? undefined : ((value['lastChecked'] as any).toISOString()), + }; +} + diff --git a/vue3/models/SyncLog.ts b/vue3/models/SyncLog.ts new file mode 100644 index 000000000..67c4ad82c --- /dev/null +++ b/vue3/models/SyncLog.ts @@ -0,0 +1,94 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface SyncLog + */ +export interface SyncLog { + /** + * + * @type {number} + * @memberof SyncLog + */ + readonly id: number; + /** + * + * @type {number} + * @memberof SyncLog + */ + sync: number; + /** + * + * @type {string} + * @memberof SyncLog + */ + status: string; + /** + * + * @type {string} + * @memberof SyncLog + */ + msg?: string; + /** + * + * @type {Date} + * @memberof SyncLog + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the SyncLog interface. + */ +export function instanceOfSyncLog(value: object): boolean { + if (!('id' in value)) return false; + if (!('sync' in value)) return false; + if (!('status' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function SyncLogFromJSON(json: any): SyncLog { + return SyncLogFromJSONTyped(json, false); +} + +export function SyncLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): SyncLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'sync': json['sync'], + 'status': json['status'], + 'msg': json['msg'] == null ? undefined : json['msg'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function SyncLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'sync': value['sync'], + 'status': value['status'], + 'msg': value['msg'], + }; +} + diff --git a/vue3/models/ThemeEnum.ts b/vue3/models/ThemeEnum.ts new file mode 100644 index 000000000..d949d57fe --- /dev/null +++ b/vue3/models/ThemeEnum.ts @@ -0,0 +1,51 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `TANDOOR` - Tandoor + * * `BOOTSTRAP` - Bootstrap + * * `DARKLY` - Darkly + * * `FLATLY` - Flatly + * * `SUPERHERO` - Superhero + * * `TANDOOR_DARK` - Tandoor Dark (INCOMPLETE) + * @export + */ +export const ThemeEnum = { + Tandoor: 'TANDOOR', + Bootstrap: 'BOOTSTRAP', + Darkly: 'DARKLY', + Flatly: 'FLATLY', + Superhero: 'SUPERHERO', + TandoorDark: 'TANDOOR_DARK' +} as const; +export type ThemeEnum = typeof ThemeEnum[keyof typeof ThemeEnum]; + + +export function instanceOfThemeEnum(value: any): boolean { + return Object.values(ThemeEnum).includes(value); +} + +export function ThemeEnumFromJSON(json: any): ThemeEnum { + return ThemeEnumFromJSONTyped(json, false); +} + +export function ThemeEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): ThemeEnum { + return json as ThemeEnum; +} + +export function ThemeEnumToJSON(value?: ThemeEnum | null): any { + return value as any; +} + diff --git a/vue3/models/TypeEnum.ts b/vue3/models/TypeEnum.ts new file mode 100644 index 000000000..b8c44d55b --- /dev/null +++ b/vue3/models/TypeEnum.ts @@ -0,0 +1,59 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `FOOD_ALIAS` - Food Alias + * * `UNIT_ALIAS` - Unit Alias + * * `KEYWORD_ALIAS` - Keyword Alias + * * `DESCRIPTION_REPLACE` - Description Replace + * * `INSTRUCTION_REPLACE` - Instruction Replace + * * `NEVER_UNIT` - Never Unit + * * `TRANSPOSE_WORDS` - Transpose Words + * * `FOOD_REPLACE` - Food Replace + * * `UNIT_REPLACE` - Unit Replace + * * `NAME_REPLACE` - Name Replace + * @export + */ +export const TypeEnum = { + FoodAlias: 'FOOD_ALIAS', + UnitAlias: 'UNIT_ALIAS', + KeywordAlias: 'KEYWORD_ALIAS', + DescriptionReplace: 'DESCRIPTION_REPLACE', + InstructionReplace: 'INSTRUCTION_REPLACE', + NeverUnit: 'NEVER_UNIT', + TransposeWords: 'TRANSPOSE_WORDS', + FoodReplace: 'FOOD_REPLACE', + UnitReplace: 'UNIT_REPLACE', + NameReplace: 'NAME_REPLACE' +} as const; +export type TypeEnum = typeof TypeEnum[keyof typeof TypeEnum]; + + +export function instanceOfTypeEnum(value: any): boolean { + return Object.values(TypeEnum).includes(value); +} + +export function TypeEnumFromJSON(json: any): TypeEnum { + return TypeEnumFromJSONTyped(json, false); +} + +export function TypeEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): TypeEnum { + return json as TypeEnum; +} + +export function TypeEnumToJSON(value?: TypeEnum | null): any { + return value as any; +} + diff --git a/vue3/models/Unit.ts b/vue3/models/Unit.ts new file mode 100644 index 000000000..1235bfb80 --- /dev/null +++ b/vue3/models/Unit.ts @@ -0,0 +1,135 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Moves `UniqueValidator`'s from the validation stage to the save stage. + * It solves the problem with nested validation for unique fields on update. + * + * If you want more details, you can read related issues and articles: + * https://github.com/beda-software/drf-writable-nested/issues/1 + * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers + * + * Example of usage: + * ``` + * class Child(models.Model): + * field = models.CharField(unique=True) + * + * + * class Parent(models.Model): + * child = models.ForeignKey('Child') + * + * + * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + * class Meta: + * model = Child + * + * + * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): + * child = ChildSerializer() + * + * class Meta: + * model = Parent + * ``` + * + * Note: `UniqueFieldsMixin` must be applied only on the serializer + * which has unique fields. + * + * Note: When you are using both mixins + * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) + * you should put `UniqueFieldsMixin` ahead. + * @export + * @interface Unit + */ +export interface Unit { + /** + * + * @type {number} + * @memberof Unit + */ + readonly id: number; + /** + * + * @type {string} + * @memberof Unit + */ + name: string; + /** + * + * @type {string} + * @memberof Unit + */ + pluralName?: string; + /** + * + * @type {string} + * @memberof Unit + */ + description?: string; + /** + * + * @type {string} + * @memberof Unit + */ + baseUnit?: string; + /** + * + * @type {string} + * @memberof Unit + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the Unit interface. + */ +export function instanceOfUnit(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + return true; +} + +export function UnitFromJSON(json: any): Unit { + return UnitFromJSONTyped(json, false); +} + +export function UnitFromJSONTyped(json: any, ignoreDiscriminator: boolean): Unit { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'pluralName': json['plural_name'] == null ? undefined : json['plural_name'], + 'description': json['description'] == null ? undefined : json['description'], + 'baseUnit': json['base_unit'] == null ? undefined : json['base_unit'], + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function UnitToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'plural_name': value['pluralName'], + 'description': value['description'], + 'base_unit': value['baseUnit'], + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/UnitConversion.ts b/vue3/models/UnitConversion.ts new file mode 100644 index 000000000..a334c6234 --- /dev/null +++ b/vue3/models/UnitConversion.ts @@ -0,0 +1,133 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Food } from './Food'; +import { + FoodFromJSON, + FoodFromJSONTyped, + FoodToJSON, +} from './Food'; +import type { Unit } from './Unit'; +import { + UnitFromJSON, + UnitFromJSONTyped, + UnitToJSON, +} from './Unit'; + +/** + * Adds nested create feature + * @export + * @interface UnitConversion + */ +export interface UnitConversion { + /** + * + * @type {number} + * @memberof UnitConversion + */ + readonly id: number; + /** + * + * @type {string} + * @memberof UnitConversion + */ + readonly name: string; + /** + * + * @type {number} + * @memberof UnitConversion + */ + baseAmount: number; + /** + * + * @type {Unit} + * @memberof UnitConversion + */ + baseUnit: Unit; + /** + * + * @type {number} + * @memberof UnitConversion + */ + convertedAmount: number; + /** + * + * @type {Unit} + * @memberof UnitConversion + */ + convertedUnit: Unit; + /** + * + * @type {Food} + * @memberof UnitConversion + */ + food?: Food; + /** + * + * @type {string} + * @memberof UnitConversion + */ + openDataSlug?: string; +} + +/** + * Check if a given object implements the UnitConversion interface. + */ +export function instanceOfUnitConversion(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('baseAmount' in value)) return false; + if (!('baseUnit' in value)) return false; + if (!('convertedAmount' in value)) return false; + if (!('convertedUnit' in value)) return false; + return true; +} + +export function UnitConversionFromJSON(json: any): UnitConversion { + return UnitConversionFromJSONTyped(json, false); +} + +export function UnitConversionFromJSONTyped(json: any, ignoreDiscriminator: boolean): UnitConversion { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'baseAmount': json['base_amount'], + 'baseUnit': UnitFromJSON(json['base_unit']), + 'convertedAmount': json['converted_amount'], + 'convertedUnit': UnitFromJSON(json['converted_unit']), + 'food': json['food'] == null ? undefined : FoodFromJSON(json['food']), + 'openDataSlug': json['open_data_slug'] == null ? undefined : json['open_data_slug'], + }; +} + +export function UnitConversionToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'base_amount': value['baseAmount'], + 'base_unit': UnitToJSON(value['baseUnit']), + 'converted_amount': value['convertedAmount'], + 'converted_unit': UnitToJSON(value['convertedUnit']), + 'food': FoodToJSON(value['food']), + 'open_data_slug': value['openDataSlug'], + }; +} + diff --git a/vue3/models/User.ts b/vue3/models/User.ts new file mode 100644 index 000000000..bbf23d971 --- /dev/null +++ b/vue3/models/User.ts @@ -0,0 +1,92 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Adds nested create feature + * @export + * @interface User + */ +export interface User { + /** + * + * @type {number} + * @memberof User + */ + readonly id: number; + /** + * Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. + * @type {string} + * @memberof User + */ + readonly username: string; + /** + * + * @type {string} + * @memberof User + */ + firstName?: string; + /** + * + * @type {string} + * @memberof User + */ + lastName?: string; + /** + * + * @type {string} + * @memberof User + */ + readonly displayName: string; +} + +/** + * Check if a given object implements the User interface. + */ +export function instanceOfUser(value: object): boolean { + if (!('id' in value)) return false; + if (!('username' in value)) return false; + if (!('displayName' in value)) return false; + return true; +} + +export function UserFromJSON(json: any): User { + return UserFromJSONTyped(json, false); +} + +export function UserFromJSONTyped(json: any, ignoreDiscriminator: boolean): User { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'username': json['username'], + 'firstName': json['first_name'] == null ? undefined : json['first_name'], + 'lastName': json['last_name'] == null ? undefined : json['last_name'], + 'displayName': json['display_name'], + }; +} + +export function UserToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'first_name': value['firstName'], + 'last_name': value['lastName'], + }; +} + diff --git a/vue3/models/UserFile.ts b/vue3/models/UserFile.ts new file mode 100644 index 000000000..8b22b0391 --- /dev/null +++ b/vue3/models/UserFile.ts @@ -0,0 +1,102 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface UserFile + */ +export interface UserFile { + /** + * + * @type {number} + * @memberof UserFile + */ + readonly id: number; + /** + * + * @type {string} + * @memberof UserFile + */ + name: string; + /** + * + * @type {string} + * @memberof UserFile + */ + file: string; + /** + * + * @type {string} + * @memberof UserFile + */ + readonly fileDownload: string; + /** + * + * @type {string} + * @memberof UserFile + */ + readonly preview: string; + /** + * + * @type {number} + * @memberof UserFile + */ + readonly fileSizeKb: number; +} + +/** + * Check if a given object implements the UserFile interface. + */ +export function instanceOfUserFile(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('file' in value)) return false; + if (!('fileDownload' in value)) return false; + if (!('preview' in value)) return false; + if (!('fileSizeKb' in value)) return false; + return true; +} + +export function UserFileFromJSON(json: any): UserFile { + return UserFileFromJSONTyped(json, false); +} + +export function UserFileFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserFile { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'file': json['file'], + 'fileDownload': json['file_download'], + 'preview': json['preview'], + 'fileSizeKb': json['file_size_kb'], + }; +} + +export function UserFileToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + 'file': value['file'], + }; +} + diff --git a/vue3/models/UserFileView.ts b/vue3/models/UserFileView.ts new file mode 100644 index 000000000..fc6511663 --- /dev/null +++ b/vue3/models/UserFileView.ts @@ -0,0 +1,85 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface UserFileView + */ +export interface UserFileView { + /** + * + * @type {number} + * @memberof UserFileView + */ + readonly id: number; + /** + * + * @type {string} + * @memberof UserFileView + */ + name: string; + /** + * + * @type {string} + * @memberof UserFileView + */ + readonly fileDownload: string; + /** + * + * @type {string} + * @memberof UserFileView + */ + readonly preview: string; +} + +/** + * Check if a given object implements the UserFileView interface. + */ +export function instanceOfUserFileView(value: object): boolean { + if (!('id' in value)) return false; + if (!('name' in value)) return false; + if (!('fileDownload' in value)) return false; + if (!('preview' in value)) return false; + return true; +} + +export function UserFileViewFromJSON(json: any): UserFileView { + return UserFileViewFromJSONTyped(json, false); +} + +export function UserFileViewFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserFileView { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'fileDownload': json['file_download'], + 'preview': json['preview'], + }; +} + +export function UserFileViewToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'name': value['name'], + }; +} + diff --git a/vue3/models/UserPreference.ts b/vue3/models/UserPreference.ts new file mode 100644 index 000000000..372226f4f --- /dev/null +++ b/vue3/models/UserPreference.ts @@ -0,0 +1,322 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { DefaultPageEnum } from './DefaultPageEnum'; +import { + DefaultPageEnumFromJSON, + DefaultPageEnumFromJSONTyped, + DefaultPageEnumToJSON, +} from './DefaultPageEnum'; +import type { FoodInheritField } from './FoodInheritField'; +import { + FoodInheritFieldFromJSON, + FoodInheritFieldFromJSONTyped, + FoodInheritFieldToJSON, +} from './FoodInheritField'; +import type { ThemeEnum } from './ThemeEnum'; +import { + ThemeEnumFromJSON, + ThemeEnumFromJSONTyped, + ThemeEnumToJSON, +} from './ThemeEnum'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; +import type { UserFileView } from './UserFileView'; +import { + UserFileViewFromJSON, + UserFileViewFromJSONTyped, + UserFileViewToJSON, +} from './UserFileView'; +import type { UserPreferenceNavTextColorEnum } from './UserPreferenceNavTextColorEnum'; +import { + UserPreferenceNavTextColorEnumFromJSON, + UserPreferenceNavTextColorEnumFromJSONTyped, + UserPreferenceNavTextColorEnumToJSON, +} from './UserPreferenceNavTextColorEnum'; + +/** + * Adds nested create feature + * @export + * @interface UserPreference + */ +export interface UserPreference { + /** + * + * @type {number} + * @memberof UserPreference + */ + user: number; + /** + * + * @type {UserFileView} + * @memberof UserPreference + */ + image?: UserFileView; + /** + * + * @type {ThemeEnum} + * @memberof UserPreference + */ + theme?: ThemeEnum; + /** + * + * @type {string} + * @memberof UserPreference + */ + navBgColor?: string; + /** + * + * @type {UserPreferenceNavTextColorEnum} + * @memberof UserPreference + */ + navTextColor?: UserPreferenceNavTextColorEnum; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + navShowLogo?: boolean; + /** + * + * @type {string} + * @memberof UserPreference + */ + defaultUnit?: string; + /** + * + * @type {DefaultPageEnum} + * @memberof UserPreference + */ + defaultPage?: DefaultPageEnum; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + useFractions?: boolean; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + useKj?: boolean; + /** + * + * @type {Array} + * @memberof UserPreference + */ + planShare?: Array; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + navSticky?: boolean; + /** + * + * @type {number} + * @memberof UserPreference + */ + ingredientDecimals?: number; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + comments?: boolean; + /** + * + * @type {number} + * @memberof UserPreference + */ + shoppingAutoSync?: number; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + mealplanAutoaddShopping?: boolean; + /** + * + * @type {FoodInheritField} + * @memberof UserPreference + */ + readonly foodInheritDefault: FoodInheritField; + /** + * + * @type {number} + * @memberof UserPreference + */ + defaultDelay?: number; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + mealplanAutoincludeRelated?: boolean; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + mealplanAutoexcludeOnhand?: boolean; + /** + * + * @type {Array} + * @memberof UserPreference + */ + shoppingShare?: Array; + /** + * + * @type {number} + * @memberof UserPreference + */ + shoppingRecentDays?: number; + /** + * + * @type {string} + * @memberof UserPreference + */ + csvDelim?: string; + /** + * + * @type {string} + * @memberof UserPreference + */ + csvPrefix?: string; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + filterToSupermarket?: boolean; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + shoppingAddOnhand?: boolean; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + leftHanded?: boolean; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + showStepIngredients?: boolean; + /** + * + * @type {boolean} + * @memberof UserPreference + */ + readonly foodChildrenExist: boolean; +} + +/** + * Check if a given object implements the UserPreference interface. + */ +export function instanceOfUserPreference(value: object): boolean { + if (!('user' in value)) return false; + if (!('foodInheritDefault' in value)) return false; + if (!('foodChildrenExist' in value)) return false; + return true; +} + +export function UserPreferenceFromJSON(json: any): UserPreference { + return UserPreferenceFromJSONTyped(json, false); +} + +export function UserPreferenceFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserPreference { + if (json == null) { + return json; + } + return { + + 'user': json['user'], + 'image': json['image'] == null ? undefined : UserFileViewFromJSON(json['image']), + 'theme': json['theme'] == null ? undefined : ThemeEnumFromJSON(json['theme']), + 'navBgColor': json['nav_bg_color'] == null ? undefined : json['nav_bg_color'], + 'navTextColor': json['nav_text_color'] == null ? undefined : UserPreferenceNavTextColorEnumFromJSON(json['nav_text_color']), + 'navShowLogo': json['nav_show_logo'] == null ? undefined : json['nav_show_logo'], + 'defaultUnit': json['default_unit'] == null ? undefined : json['default_unit'], + 'defaultPage': json['default_page'] == null ? undefined : DefaultPageEnumFromJSON(json['default_page']), + 'useFractions': json['use_fractions'] == null ? undefined : json['use_fractions'], + 'useKj': json['use_kj'] == null ? undefined : json['use_kj'], + 'planShare': json['plan_share'] == null ? undefined : ((json['plan_share'] as Array).map(UserFromJSON)), + 'navSticky': json['nav_sticky'] == null ? undefined : json['nav_sticky'], + 'ingredientDecimals': json['ingredient_decimals'] == null ? undefined : json['ingredient_decimals'], + 'comments': json['comments'] == null ? undefined : json['comments'], + 'shoppingAutoSync': json['shopping_auto_sync'] == null ? undefined : json['shopping_auto_sync'], + 'mealplanAutoaddShopping': json['mealplan_autoadd_shopping'] == null ? undefined : json['mealplan_autoadd_shopping'], + 'foodInheritDefault': FoodInheritFieldFromJSON(json['food_inherit_default']), + 'defaultDelay': json['default_delay'] == null ? undefined : json['default_delay'], + 'mealplanAutoincludeRelated': json['mealplan_autoinclude_related'] == null ? undefined : json['mealplan_autoinclude_related'], + 'mealplanAutoexcludeOnhand': json['mealplan_autoexclude_onhand'] == null ? undefined : json['mealplan_autoexclude_onhand'], + 'shoppingShare': json['shopping_share'] == null ? undefined : ((json['shopping_share'] as Array).map(UserFromJSON)), + 'shoppingRecentDays': json['shopping_recent_days'] == null ? undefined : json['shopping_recent_days'], + 'csvDelim': json['csv_delim'] == null ? undefined : json['csv_delim'], + 'csvPrefix': json['csv_prefix'] == null ? undefined : json['csv_prefix'], + 'filterToSupermarket': json['filter_to_supermarket'] == null ? undefined : json['filter_to_supermarket'], + 'shoppingAddOnhand': json['shopping_add_onhand'] == null ? undefined : json['shopping_add_onhand'], + 'leftHanded': json['left_handed'] == null ? undefined : json['left_handed'], + 'showStepIngredients': json['show_step_ingredients'] == null ? undefined : json['show_step_ingredients'], + 'foodChildrenExist': json['food_children_exist'], + }; +} + +export function UserPreferenceToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'user': value['user'], + 'image': UserFileViewToJSON(value['image']), + 'theme': ThemeEnumToJSON(value['theme']), + 'nav_bg_color': value['navBgColor'], + 'nav_text_color': UserPreferenceNavTextColorEnumToJSON(value['navTextColor']), + 'nav_show_logo': value['navShowLogo'], + 'default_unit': value['defaultUnit'], + 'default_page': DefaultPageEnumToJSON(value['defaultPage']), + 'use_fractions': value['useFractions'], + 'use_kj': value['useKj'], + 'plan_share': value['planShare'] == null ? undefined : ((value['planShare'] as Array).map(UserToJSON)), + 'nav_sticky': value['navSticky'], + 'ingredient_decimals': value['ingredientDecimals'], + 'comments': value['comments'], + 'shopping_auto_sync': value['shoppingAutoSync'], + 'mealplan_autoadd_shopping': value['mealplanAutoaddShopping'], + 'default_delay': value['defaultDelay'], + 'mealplan_autoinclude_related': value['mealplanAutoincludeRelated'], + 'mealplan_autoexclude_onhand': value['mealplanAutoexcludeOnhand'], + 'shopping_share': value['shoppingShare'] == null ? undefined : ((value['shoppingShare'] as Array).map(UserToJSON)), + 'shopping_recent_days': value['shoppingRecentDays'], + 'csv_delim': value['csvDelim'], + 'csv_prefix': value['csvPrefix'], + 'filter_to_supermarket': value['filterToSupermarket'], + 'shopping_add_onhand': value['shoppingAddOnhand'], + 'left_handed': value['leftHanded'], + 'show_step_ingredients': value['showStepIngredients'], + }; +} + diff --git a/vue3/models/UserPreferenceNavTextColorEnum.ts b/vue3/models/UserPreferenceNavTextColorEnum.ts new file mode 100644 index 000000000..3b449f1d8 --- /dev/null +++ b/vue3/models/UserPreferenceNavTextColorEnum.ts @@ -0,0 +1,43 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * * `LIGHT` - Light + * * `DARK` - Dark + * @export + */ +export const UserPreferenceNavTextColorEnum = { + Light: 'LIGHT', + Dark: 'DARK' +} as const; +export type UserPreferenceNavTextColorEnum = typeof UserPreferenceNavTextColorEnum[keyof typeof UserPreferenceNavTextColorEnum]; + + +export function instanceOfUserPreferenceNavTextColorEnum(value: any): boolean { + return Object.values(UserPreferenceNavTextColorEnum).includes(value); +} + +export function UserPreferenceNavTextColorEnumFromJSON(json: any): UserPreferenceNavTextColorEnum { + return UserPreferenceNavTextColorEnumFromJSONTyped(json, false); +} + +export function UserPreferenceNavTextColorEnumFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserPreferenceNavTextColorEnum { + return json as UserPreferenceNavTextColorEnum; +} + +export function UserPreferenceNavTextColorEnumToJSON(value?: UserPreferenceNavTextColorEnum | null): any { + return value as any; +} + diff --git a/vue3/models/UserSpace.ts b/vue3/models/UserSpace.ts new file mode 100644 index 000000000..d249f26e2 --- /dev/null +++ b/vue3/models/UserSpace.ts @@ -0,0 +1,138 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { Group } from './Group'; +import { + GroupFromJSON, + GroupFromJSONTyped, + GroupToJSON, +} from './Group'; +import type { User } from './User'; +import { + UserFromJSON, + UserFromJSONTyped, + UserToJSON, +} from './User'; + +/** + * Adds nested create feature + * @export + * @interface UserSpace + */ +export interface UserSpace { + /** + * + * @type {number} + * @memberof UserSpace + */ + readonly id: number; + /** + * + * @type {User} + * @memberof UserSpace + */ + readonly user: User; + /** + * + * @type {number} + * @memberof UserSpace + */ + readonly space: number; + /** + * + * @type {Array} + * @memberof UserSpace + */ + groups: Array; + /** + * + * @type {boolean} + * @memberof UserSpace + */ + active?: boolean; + /** + * + * @type {string} + * @memberof UserSpace + */ + internalNote?: string; + /** + * + * @type {number} + * @memberof UserSpace + */ + readonly inviteLink: number | null; + /** + * + * @type {Date} + * @memberof UserSpace + */ + readonly createdAt: Date; + /** + * + * @type {Date} + * @memberof UserSpace + */ + readonly updatedAt: Date; +} + +/** + * Check if a given object implements the UserSpace interface. + */ +export function instanceOfUserSpace(value: object): boolean { + if (!('id' in value)) return false; + if (!('user' in value)) return false; + if (!('space' in value)) return false; + if (!('groups' in value)) return false; + if (!('inviteLink' in value)) return false; + if (!('createdAt' in value)) return false; + if (!('updatedAt' in value)) return false; + return true; +} + +export function UserSpaceFromJSON(json: any): UserSpace { + return UserSpaceFromJSONTyped(json, false); +} + +export function UserSpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserSpace { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'user': UserFromJSON(json['user']), + 'space': json['space'], + 'groups': ((json['groups'] as Array).map(GroupFromJSON)), + 'active': json['active'] == null ? undefined : json['active'], + 'internalNote': json['internal_note'] == null ? undefined : json['internal_note'], + 'inviteLink': json['invite_link'], + 'createdAt': (new Date(json['created_at'])), + 'updatedAt': (new Date(json['updated_at'])), + }; +} + +export function UserSpaceToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'groups': ((value['groups'] as Array).map(GroupToJSON)), + 'active': value['active'], + 'internal_note': value['internalNote'], + }; +} + diff --git a/vue3/models/ViewLog.ts b/vue3/models/ViewLog.ts new file mode 100644 index 000000000..695ce86b4 --- /dev/null +++ b/vue3/models/ViewLog.ts @@ -0,0 +1,85 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ViewLog + */ +export interface ViewLog { + /** + * + * @type {number} + * @memberof ViewLog + */ + readonly id: number; + /** + * + * @type {number} + * @memberof ViewLog + */ + recipe: number; + /** + * + * @type {number} + * @memberof ViewLog + */ + readonly createdBy: number; + /** + * + * @type {Date} + * @memberof ViewLog + */ + readonly createdAt: Date; +} + +/** + * Check if a given object implements the ViewLog interface. + */ +export function instanceOfViewLog(value: object): boolean { + if (!('id' in value)) return false; + if (!('recipe' in value)) return false; + if (!('createdBy' in value)) return false; + if (!('createdAt' in value)) return false; + return true; +} + +export function ViewLogFromJSON(json: any): ViewLog { + return ViewLogFromJSONTyped(json, false); +} + +export function ViewLogFromJSONTyped(json: any, ignoreDiscriminator: boolean): ViewLog { + if (json == null) { + return json; + } + return { + + 'id': json['id'], + 'recipe': json['recipe'], + 'createdBy': json['created_by'], + 'createdAt': (new Date(json['created_at'])), + }; +} + +export function ViewLogToJSON(value?: Omit | null): any { + if (value == null) { + return value; + } + return { + + 'recipe': value['recipe'], + }; +} + diff --git a/vue3/models/index.ts b/vue3/models/index.ts new file mode 100644 index 000000000..313f77154 --- /dev/null +++ b/vue3/models/index.ts @@ -0,0 +1,110 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './AccessToken'; +export * from './AuthToken'; +export * from './Automation'; +export * from './BookmarkletImport'; +export * from './BookmarkletImportList'; +export * from './ConnectorConfigConfig'; +export * from './CookLog'; +export * from './CustomFilter'; +export * from './DefaultPageEnum'; +export * from './DeleteEnum'; +export * from './ExportLog'; +export * from './Food'; +export * from './FoodInheritField'; +export * from './FoodShoppingUpdate'; +export * from './FoodSimple'; +export * from './Group'; +export * from './ImportLog'; +export * from './Ingredient'; +export * from './InviteLink'; +export * from './Keyword'; +export * from './KeywordLabel'; +export * from './MealPlan'; +export * from './MealType'; +export * from './MethodEnum'; +export * from './NutritionInformation'; +export * from './PaginatedAutomationList'; +export * from './PaginatedCookLogList'; +export * from './PaginatedCustomFilterList'; +export * from './PaginatedExportLogList'; +export * from './PaginatedFoodList'; +export * from './PaginatedImportLogList'; +export * from './PaginatedIngredientList'; +export * from './PaginatedKeywordList'; +export * from './PaginatedRecipeOverviewList'; +export * from './PaginatedStepList'; +export * from './PaginatedSupermarketCategoryRelationList'; +export * from './PaginatedSyncLogList'; +export * from './PaginatedUnitList'; +export * from './PaginatedUserSpaceList'; +export * from './PaginatedViewLogList'; +export * from './PatchedAccessToken'; +export * from './PatchedAutomation'; +export * from './PatchedBookmarkletImport'; +export * from './PatchedConnectorConfigConfig'; +export * from './PatchedCookLog'; +export * from './PatchedCustomFilter'; +export * from './PatchedExportLog'; +export * from './PatchedFood'; +export * from './PatchedImportLog'; +export * from './PatchedIngredient'; +export * from './PatchedInviteLink'; +export * from './PatchedKeyword'; +export * from './PatchedMealPlan'; +export * from './PatchedMealType'; +export * from './PatchedProperty'; +export * from './PatchedPropertyType'; +export * from './PatchedRecipe'; +export * from './PatchedRecipeBook'; +export * from './PatchedRecipeBookEntry'; +export * from './PatchedShoppingListEntry'; +export * from './PatchedShoppingListRecipe'; +export * from './PatchedSpace'; +export * from './PatchedStep'; +export * from './PatchedStorage'; +export * from './PatchedSupermarket'; +export * from './PatchedSupermarketCategory'; +export * from './PatchedSupermarketCategoryRelation'; +export * from './PatchedSync'; +export * from './PatchedUnit'; +export * from './PatchedUnitConversion'; +export * from './PatchedUser'; +export * from './PatchedUserPreference'; +export * from './PatchedUserSpace'; +export * from './PatchedViewLog'; +export * from './Property'; +export * from './PropertyType'; +export * from './Recipe'; +export * from './RecipeBook'; +export * from './RecipeBookEntry'; +export * from './RecipeFlat'; +export * from './RecipeImage'; +export * from './RecipeOverview'; +export * from './RecipeShoppingUpdate'; +export * from './RecipeSimple'; +export * from './ShoppingListEntry'; +export * from './ShoppingListEntryBulk'; +export * from './ShoppingListRecipe'; +export * from './Space'; +export * from './SpaceNavTextColorEnum'; +export * from './SpaceThemeEnum'; +export * from './Step'; +export * from './Storage'; +export * from './Supermarket'; +export * from './SupermarketCategory'; +export * from './SupermarketCategoryRelation'; +export * from './Sync'; +export * from './SyncLog'; +export * from './ThemeEnum'; +export * from './TypeEnum'; +export * from './Unit'; +export * from './UnitConversion'; +export * from './User'; +export * from './UserFile'; +export * from './UserFileView'; +export * from './UserPreference'; +export * from './UserPreferenceNavTextColorEnum'; +export * from './UserSpace'; +export * from './ViewLog'; diff --git a/vue3/openapitools.json b/vue3/openapitools.json new file mode 100644 index 000000000..cfe74d51f --- /dev/null +++ b/vue3/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.5.0" + } +} diff --git a/vue3/runtime.ts b/vue3/runtime.ts new file mode 100644 index 000000000..87bef2759 --- /dev/null +++ b/vue3/runtime.ts @@ -0,0 +1,426 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Tandoor + * Tandoor API Docs + * + * The version of the OpenAPI document: 0.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export const BASE_PATH = "http://localhost".replace(/\/+$/, ""); + +export interface ConfigurationParameters { + basePath?: string; // override base path + fetchApi?: FetchAPI; // override for fetch implementation + middleware?: Middleware[]; // middleware to apply before/after fetch requests + queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings + username?: string; // parameter for basic security + password?: string; // parameter for basic security + apiKey?: string | Promise | ((name: string) => string | Promise); // parameter for apiKey security + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security + headers?: HTTPHeaders; //header params we want to use on every request + credentials?: RequestCredentials; //value for the credentials param we want to use on each request +} + +export class Configuration { + constructor(private configuration: ConfigurationParameters = {}) {} + + set config(configuration: Configuration) { + this.configuration = configuration; + } + + get basePath(): string { + return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH; + } + + get fetchApi(): FetchAPI | undefined { + return this.configuration.fetchApi; + } + + get middleware(): Middleware[] { + return this.configuration.middleware || []; + } + + get queryParamsStringify(): (params: HTTPQuery) => string { + return this.configuration.queryParamsStringify || querystring; + } + + get username(): string | undefined { + return this.configuration.username; + } + + get password(): string | undefined { + return this.configuration.password; + } + + get apiKey(): ((name: string) => string | Promise) | undefined { + const apiKey = this.configuration.apiKey; + if (apiKey) { + return typeof apiKey === 'function' ? apiKey : () => apiKey; + } + return undefined; + } + + get accessToken(): ((name?: string, scopes?: string[]) => string | Promise) | undefined { + const accessToken = this.configuration.accessToken; + if (accessToken) { + return typeof accessToken === 'function' ? accessToken : async () => accessToken; + } + return undefined; + } + + get headers(): HTTPHeaders | undefined { + return this.configuration.headers; + } + + get credentials(): RequestCredentials | undefined { + return this.configuration.credentials; + } +} + +export const DefaultConfig = new Configuration(); + +/** + * This is the base class for all generated API classes. + */ +export class BaseAPI { + + private static readonly jsonRegex = new RegExp('^(:?application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(:?;.*)?$', 'i'); + private middleware: Middleware[]; + + constructor(protected configuration = DefaultConfig) { + this.middleware = configuration.middleware; + } + + withMiddleware(this: T, ...middlewares: Middleware[]) { + const next = this.clone(); + next.middleware = next.middleware.concat(...middlewares); + return next; + } + + withPreMiddleware(this: T, ...preMiddlewares: Array) { + const middlewares = preMiddlewares.map((pre) => ({ pre })); + return this.withMiddleware(...middlewares); + } + + withPostMiddleware(this: T, ...postMiddlewares: Array) { + const middlewares = postMiddlewares.map((post) => ({ post })); + return this.withMiddleware(...middlewares); + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + protected isJsonMime(mime: string | null | undefined): boolean { + if (!mime) { + return false; + } + return BaseAPI.jsonRegex.test(mime); + } + + protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise { + const { url, init } = await this.createFetchParams(context, initOverrides); + const response = await this.fetchApi(url, init); + if (response && (response.status >= 200 && response.status < 300)) { + return response; + } + throw new ResponseError(response, 'Response returned an error code'); + } + + private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) { + let url = this.configuration.basePath + context.path; + if (context.query !== undefined && Object.keys(context.query).length !== 0) { + // only add the querystring to the URL if there are query parameters. + // this is done to avoid urls ending with a "?" character which buggy webservers + // do not handle correctly sometimes. + url += '?' + this.configuration.queryParamsStringify(context.query); + } + + const headers = Object.assign({}, this.configuration.headers, context.headers); + Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {}); + + const initOverrideFn = + typeof initOverrides === "function" + ? initOverrides + : async () => initOverrides; + + const initParams = { + method: context.method, + headers, + body: context.body, + credentials: this.configuration.credentials, + }; + + const overriddenInit: RequestInit = { + ...initParams, + ...(await initOverrideFn({ + init: initParams, + context, + })) + }; + + let body: any; + if (isFormData(overriddenInit.body) + || (overriddenInit.body instanceof URLSearchParams) + || isBlob(overriddenInit.body)) { + body = overriddenInit.body; + } else if (this.isJsonMime(headers['Content-Type'])) { + body = JSON.stringify(overriddenInit.body); + } else { + body = overriddenInit.body; + } + + const init: RequestInit = { + ...overriddenInit, + body + }; + + return { url, init }; + } + + private fetchApi = async (url: string, init: RequestInit) => { + let fetchParams = { url, init }; + for (const middleware of this.middleware) { + if (middleware.pre) { + fetchParams = await middleware.pre({ + fetch: this.fetchApi, + ...fetchParams, + }) || fetchParams; + } + } + let response: Response | undefined = undefined; + try { + response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init); + } catch (e) { + for (const middleware of this.middleware) { + if (middleware.onError) { + response = await middleware.onError({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + error: e, + response: response ? response.clone() : undefined, + }) || response; + } + } + if (response === undefined) { + if (e instanceof Error) { + throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response'); + } else { + throw e; + } + } + } + for (const middleware of this.middleware) { + if (middleware.post) { + response = await middleware.post({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + response: response.clone(), + }) || response; + } + } + return response; + } + + /** + * Create a shallow clone of `this` by constructing a new instance + * and then shallow cloning data members. + */ + private clone(this: T): T { + const constructor = this.constructor as any; + const next = new constructor(this.configuration); + next.middleware = this.middleware.slice(); + return next; + } +}; + +function isBlob(value: any): value is Blob { + return typeof Blob !== 'undefined' && value instanceof Blob; +} + +function isFormData(value: any): value is FormData { + return typeof FormData !== "undefined" && value instanceof FormData; +} + +export class ResponseError extends Error { + override name: "ResponseError" = "ResponseError"; + constructor(public response: Response, msg?: string) { + super(msg); + } +} + +export class FetchError extends Error { + override name: "FetchError" = "FetchError"; + constructor(public cause: Error, msg?: string) { + super(msg); + } +} + +export class RequiredError extends Error { + override name: "RequiredError" = "RequiredError"; + constructor(public field: string, msg?: string) { + super(msg); + } +} + +export const COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; + +export type FetchAPI = WindowOrWorkerGlobalScope['fetch']; + +export type Json = any; +export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; +export type HTTPHeaders = { [key: string]: string }; +export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | Set | HTTPQuery }; +export type HTTPBody = Json | FormData | URLSearchParams; +export type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody }; +export type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; + +export type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise + +export interface FetchParams { + url: string; + init: RequestInit; +} + +export interface RequestOpts { + path: string; + method: HTTPMethod; + headers: HTTPHeaders; + query?: HTTPQuery; + body?: HTTPBody; +} + +export function querystring(params: HTTPQuery, prefix: string = ''): string { + return Object.keys(params) + .map(key => querystringSingleKey(key, params[key], prefix)) + .filter(part => part.length > 0) + .join('&'); +} + +function querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array | Set | HTTPQuery, keyPrefix: string = ''): string { + const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key); + if (value instanceof Array) { + const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue))) + .join(`&${encodeURIComponent(fullKey)}=`); + return `${encodeURIComponent(fullKey)}=${multiValue}`; + } + if (value instanceof Set) { + const valueAsArray = Array.from(value); + return querystringSingleKey(key, valueAsArray, keyPrefix); + } + if (value instanceof Date) { + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`; + } + if (value instanceof Object) { + return querystring(value as HTTPQuery, fullKey); + } + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`; +} + +export function mapValues(data: any, fn: (item: any) => any) { + return Object.keys(data).reduce( + (acc, key) => ({ ...acc, [key]: fn(data[key]) }), + {} + ); +} + +export function canConsumeForm(consumes: Consume[]): boolean { + for (const consume of consumes) { + if ('multipart/form-data' === consume.contentType) { + return true; + } + } + return false; +} + +export interface Consume { + contentType: string; +} + +export interface RequestContext { + fetch: FetchAPI; + url: string; + init: RequestInit; +} + +export interface ResponseContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + response: Response; +} + +export interface ErrorContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + error: unknown; + response?: Response; +} + +export interface Middleware { + pre?(context: RequestContext): Promise; + post?(context: ResponseContext): Promise; + onError?(context: ErrorContext): Promise; +} + +export interface ApiResponse { + raw: Response; + value(): Promise; +} + +export interface ResponseTransformer { + (json: any): T; +} + +export class JSONApiResponse { + constructor(public raw: Response, private transformer: ResponseTransformer = (jsonValue: any) => jsonValue) {} + + async value(): Promise { + return this.transformer(await this.raw.json()); + } +} + +export class VoidApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return undefined; + } +} + +export class BlobApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return await this.raw.blob(); + }; +} + +export class TextApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return await this.raw.text(); + }; +}