Some checks failed
CI / build-test (push) Has been cancelled
Reviewed-on: #3 Co-authored-by: jableader <jacobdunk@gmail.com> Co-committed-by: jableader <jacobdunk@gmail.com>
1634 lines
46 KiB
TypeScript
1634 lines
46 KiB
TypeScript
/**
|
|
* This file was auto-generated by openapi-typescript.
|
|
* Do not make direct changes to the file.
|
|
*/
|
|
|
|
export interface paths {
|
|
"/api/v1/products": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Create or fetch a product from a URL */
|
|
post: operations["createProduct"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/recipes/parse": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Parse a recipe from a URL */
|
|
get: operations["parseRecipe"];
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/recipes/ingredients/parse": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Parse raw ingredient lines */
|
|
get: operations["parseIngredients"];
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/recipes": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** List recipes (paginated) */
|
|
get: operations["listRecipes"];
|
|
put?: never;
|
|
/** Create a new recipe (versioning semantics applied) */
|
|
post: operations["createRecipe"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/recipes/{recipe_id}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Get a single recipe */
|
|
get: operations["getRecipe"];
|
|
put?: never;
|
|
post?: never;
|
|
/** Soft-delete (hide) a recipe */
|
|
delete: operations["deleteRecipe"];
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/meals/upcoming": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** List upcoming meals in a date range */
|
|
get: operations["getUpcomingMeals"];
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/meals/{meal_id}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Get a meal by id */
|
|
get: operations["getMeal"];
|
|
/** Update an existing meal */
|
|
put: operations["updateMeal"];
|
|
post?: never;
|
|
/** Delete a meal */
|
|
delete: operations["deleteMeal"];
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/meals": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Create a new meal */
|
|
post: operations["createMeal"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/meals/{meal_id}/consumed": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Mark a meal as consumed */
|
|
post: operations["markMealConsumed"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/shopping/current": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Get the current aggregated shopping list */
|
|
get: operations["getCurrentShoppingList"];
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/shopping/{list_id}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Get a purchased shopping list by id */
|
|
get: operations["getShoppingList"];
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/shopping": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Purchase ingredients for a shopping list */
|
|
post: operations["purchaseIngredients"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/shopping/current/me/ingredients": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Get my outstanding ingredient requests */
|
|
get: operations["getMyShoppingList"];
|
|
put?: never;
|
|
/** Sync my outstanding ingredient requests */
|
|
post: operations["syncMyShoppingList"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/shopping/current/meals/me": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Request a meal for shopping */
|
|
post: operations["requestMeal"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/shopping/current/meals/{meal_id}": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
post?: never;
|
|
/** Remove a meal request */
|
|
delete: operations["unrequestMeal"];
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/persons": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** List persons (paginated) */
|
|
get: operations["listPersons"];
|
|
put?: never;
|
|
/** Create a person */
|
|
post: operations["createPerson"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/auth/login": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Login and set user_id cookie */
|
|
post: operations["login"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/api/v1/auth/refresh": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
get?: never;
|
|
put?: never;
|
|
/** Refresh current user from cookie */
|
|
post: operations["refresh"];
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
"/healthz": {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
/** Healthz */
|
|
get: operations["healthz_healthz_get"];
|
|
put?: never;
|
|
post?: never;
|
|
delete?: never;
|
|
options?: never;
|
|
head?: never;
|
|
patch?: never;
|
|
trace?: never;
|
|
};
|
|
}
|
|
export type webhooks = Record<string, never>;
|
|
export interface components {
|
|
schemas: {
|
|
/** CurrentShoppingList */
|
|
CurrentShoppingList: {
|
|
/** Outstandingitems */
|
|
outstandingItems: components["schemas"]["ShoppingListItem"][];
|
|
/** Requestedmeals */
|
|
requestedMeals: components["schemas"]["ShoppingListItem"][];
|
|
/** Purchaseditems */
|
|
purchasedItems?: components["schemas"]["ShoppingListItem"][];
|
|
/** Ingredientslookup */
|
|
ingredientsLookup?: {
|
|
[key: string]: components["schemas"]["Ingredient"];
|
|
};
|
|
/** Mealslookup */
|
|
mealsLookup?: {
|
|
[key: string]: components["schemas"]["Meal-Output"];
|
|
};
|
|
/** Shoppinglistlookup */
|
|
shoppingListLookup?: {
|
|
[key: string]: components["schemas"]["ShoppingList"];
|
|
};
|
|
/** Recipeslookup */
|
|
recipesLookup?: {
|
|
[key: string]: components["schemas"]["Recipe-Output"];
|
|
};
|
|
};
|
|
/** HTTPValidationError */
|
|
HTTPValidationError: {
|
|
/** Detail */
|
|
detail?: components["schemas"]["ValidationError"][];
|
|
};
|
|
/** HealthStatus */
|
|
HealthStatus: {
|
|
/**
|
|
* Status
|
|
* @default ok
|
|
*/
|
|
status: string;
|
|
};
|
|
/** Ingredient */
|
|
Ingredient: {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/** Name */
|
|
name: string;
|
|
/** Line */
|
|
line: string;
|
|
/**
|
|
* Unit
|
|
* @description Measurement unit (enum values are advisory; runtime accepts any string)
|
|
* @enum {string}
|
|
*/
|
|
unit: "Items" | "Litre" | "Gram" | "Cup" | "Tablespoon" | "Teaspoon" | "Ounce" | "Pound" | "Fluid Ounce" | "Pint" | "Quart" | "Gallon" | "Millilitre" | "Milligram" | "Kilogram";
|
|
/** Quantity */
|
|
quantity: number;
|
|
/** Preparation */
|
|
preparation: string;
|
|
/** Productid */
|
|
productId?: number | null;
|
|
/** Recipeid */
|
|
recipeId?: number | null;
|
|
/** Mealid */
|
|
mealId?: number | null;
|
|
product?: components["schemas"]["Product"] | null;
|
|
};
|
|
/** LoginBody */
|
|
LoginBody: {
|
|
/** Username */
|
|
username: string;
|
|
};
|
|
/** Meal */
|
|
"Meal-Input": {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/**
|
|
* Suggesteddate
|
|
* Format: date-time
|
|
*/
|
|
suggestedDate: string;
|
|
/** Consumeddate */
|
|
consumedDate?: string | null;
|
|
/** Chefs */
|
|
chefs?: components["schemas"]["Person"][];
|
|
/** Cleanup */
|
|
cleanup?: components["schemas"]["Person"][];
|
|
/** Consumers */
|
|
consumers?: components["schemas"]["Person"][];
|
|
/** Recipes */
|
|
recipes?: components["schemas"]["MealRecipe-Input"][];
|
|
/** Extraingredients */
|
|
extraIngredients?: components["schemas"]["Ingredient"][];
|
|
/** Purchasedate */
|
|
purchaseDate?: string | null;
|
|
};
|
|
/** Meal */
|
|
"Meal-Output": {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/**
|
|
* Suggesteddate
|
|
* Format: date-time
|
|
*/
|
|
suggestedDate: string;
|
|
/** Consumeddate */
|
|
consumedDate?: string | null;
|
|
/** Chefs */
|
|
chefs?: components["schemas"]["Person"][];
|
|
/** Cleanup */
|
|
cleanup?: components["schemas"]["Person"][];
|
|
/** Consumers */
|
|
consumers?: components["schemas"]["Person"][];
|
|
/** Recipes */
|
|
recipes?: components["schemas"]["MealRecipe-Output"][];
|
|
/** Extraingredients */
|
|
extraIngredients?: components["schemas"]["Ingredient"][];
|
|
/** Purchasedate */
|
|
purchaseDate?: string | null;
|
|
};
|
|
/** MealIdWrapper */
|
|
MealIdWrapper: {
|
|
/** Mealid */
|
|
mealId: number;
|
|
};
|
|
/** MealRecipe */
|
|
"MealRecipe-Input": {
|
|
/** Mealid */
|
|
mealId: number;
|
|
/** Recipeid */
|
|
recipeId: number;
|
|
/** Servings */
|
|
servings: number;
|
|
recipe?: components["schemas"]["Recipe-Input"] | null;
|
|
};
|
|
/** MealRecipe */
|
|
"MealRecipe-Output": {
|
|
/** Mealid */
|
|
mealId: number;
|
|
/** Recipeid */
|
|
recipeId: number;
|
|
/** Servings */
|
|
servings: number;
|
|
recipe?: components["schemas"]["Recipe-Output"] | null;
|
|
};
|
|
/** Ok */
|
|
Ok: {
|
|
/**
|
|
* Ok
|
|
* @default true
|
|
*/
|
|
ok: boolean;
|
|
};
|
|
/** Page[Person] */
|
|
Page_Person_: {
|
|
/** Items */
|
|
items: components["schemas"]["Person"][];
|
|
/** Nextcursor */
|
|
nextCursor?: string | null;
|
|
/** Prevcursor */
|
|
prevCursor?: string | null;
|
|
/**
|
|
* Total
|
|
* @description Total count
|
|
* @default 0
|
|
*/
|
|
total: number;
|
|
};
|
|
/** Page[Recipe] */
|
|
Page_Recipe_: {
|
|
/** Items */
|
|
items: components["schemas"]["Recipe-Output"][];
|
|
/** Nextcursor */
|
|
nextCursor?: string | null;
|
|
/** Prevcursor */
|
|
prevCursor?: string | null;
|
|
/**
|
|
* Total
|
|
* @description Total count
|
|
* @default 0
|
|
*/
|
|
total: number;
|
|
};
|
|
/** Person */
|
|
Person: {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/** Name */
|
|
name: string;
|
|
};
|
|
/** ProblemDetails */
|
|
ProblemDetails: {
|
|
/**
|
|
* Type
|
|
* @default about:blank
|
|
*/
|
|
type: string;
|
|
/** Title */
|
|
title: string;
|
|
/** Status */
|
|
status: number;
|
|
/** Detail */
|
|
detail?: string | null;
|
|
/** Instance */
|
|
instance?: string | null;
|
|
/** Errors */
|
|
errors?: Record<string, never> | null;
|
|
};
|
|
/** Product */
|
|
Product: {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/** Productid */
|
|
productId: string;
|
|
/** Shopcode */
|
|
shopCode: string;
|
|
/** Link */
|
|
link: string;
|
|
/** Name */
|
|
name: string;
|
|
/** Quantity */
|
|
quantity: number;
|
|
/** Unit */
|
|
unit: string;
|
|
/** Imgsmall */
|
|
imgSmall: string;
|
|
/** Imglarge */
|
|
imgLarge: string;
|
|
};
|
|
/** ProductUrl */
|
|
ProductUrl: {
|
|
/** Url */
|
|
url: string;
|
|
/** Tags */
|
|
tags?: string[];
|
|
};
|
|
/** PurchasedShoppingList */
|
|
PurchasedShoppingList: {
|
|
list: components["schemas"]["ShoppingList"];
|
|
/** Mealslookup */
|
|
mealsLookup?: {
|
|
[key: string]: components["schemas"]["Meal-Output"];
|
|
};
|
|
/** Ingredientslookup */
|
|
ingredientsLookup?: {
|
|
[key: string]: components["schemas"]["Ingredient"];
|
|
};
|
|
/** Recipeslookup */
|
|
recipesLookup?: {
|
|
[key: string]: components["schemas"]["Recipe-Output"];
|
|
};
|
|
};
|
|
/** Recipe */
|
|
"Recipe-Input": {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/** Name */
|
|
name: string;
|
|
/** Link */
|
|
link: string;
|
|
/** Serves */
|
|
serves: number;
|
|
/** Imageurls */
|
|
imageUrls?: string[];
|
|
/** Ingredients */
|
|
ingredients?: components["schemas"]["Ingredient"][];
|
|
/** Basedonrecipe */
|
|
basedOnRecipe?: number | null;
|
|
/**
|
|
* Datecreated
|
|
* Format: date-time
|
|
*/
|
|
dateCreated?: string;
|
|
/** Createdbyid */
|
|
createdById: number;
|
|
createdBy?: components["schemas"]["Person"] | null;
|
|
/** Datehidden */
|
|
dateHidden?: string | null;
|
|
/** Hiddenbyid */
|
|
hiddenById?: number | null;
|
|
hiddenBy?: components["schemas"]["Person"] | null;
|
|
};
|
|
/** Recipe */
|
|
"Recipe-Output": {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/** Name */
|
|
name: string;
|
|
/** Link */
|
|
link: string;
|
|
/** Serves */
|
|
serves: number;
|
|
/** Imageurls */
|
|
imageUrls?: string[];
|
|
/** Ingredients */
|
|
ingredients?: components["schemas"]["Ingredient"][];
|
|
/** Basedonrecipe */
|
|
basedOnRecipe?: number | null;
|
|
/**
|
|
* Datecreated
|
|
* Format: date-time
|
|
*/
|
|
dateCreated?: string;
|
|
/** Createdbyid */
|
|
createdById: number;
|
|
createdBy?: components["schemas"]["Person"] | null;
|
|
/** Datehidden */
|
|
dateHidden?: string | null;
|
|
/** Hiddenbyid */
|
|
hiddenById?: number | null;
|
|
hiddenBy?: components["schemas"]["Person"] | null;
|
|
};
|
|
/** ShoppingList */
|
|
ShoppingList: {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/**
|
|
* Createddate
|
|
* Format: date-time
|
|
*/
|
|
createdDate?: string;
|
|
/** @default */
|
|
storeName: components["schemas"]["StoreEnum"];
|
|
/**
|
|
* Purchasedbyid
|
|
* @default -1
|
|
*/
|
|
purchasedById: number;
|
|
purchasedBy?: components["schemas"]["Person"] | null;
|
|
/** Items */
|
|
items?: components["schemas"]["ShoppingListItem"][];
|
|
};
|
|
/** ShoppingListItem */
|
|
ShoppingListItem: {
|
|
/**
|
|
* Id
|
|
* @default -1
|
|
*/
|
|
id: number;
|
|
/** Listid */
|
|
listId?: number | null;
|
|
/**
|
|
* Personid
|
|
* @default -1
|
|
*/
|
|
personId: number;
|
|
/** Ingredientid */
|
|
ingredientId?: number | null;
|
|
/** Recipeid */
|
|
recipeId?: number | null;
|
|
/** Mealid */
|
|
mealId?: number | null;
|
|
/**
|
|
* Createddate
|
|
* Format: date-time
|
|
*/
|
|
createdDate?: string;
|
|
};
|
|
/**
|
|
* StoreEnum
|
|
* @enum {string}
|
|
*/
|
|
StoreEnum: "woolworths" | "coles" | "";
|
|
/** ValidationError */
|
|
ValidationError: {
|
|
/** Location */
|
|
loc: (string | number)[];
|
|
/** Message */
|
|
msg: string;
|
|
/** Error Type */
|
|
type: string;
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Bad Request */
|
|
Problem400: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/problem+json": unknown;
|
|
"application/json": components["schemas"]["ProblemDetails"];
|
|
};
|
|
};
|
|
/** @description Not Found */
|
|
Problem404: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/problem+json": unknown;
|
|
"application/json": components["schemas"]["ProblemDetails"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
Problem422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/problem+json": components["schemas"]["ProblemDetails"];
|
|
"application/json": components["schemas"]["ProblemDetails"];
|
|
};
|
|
};
|
|
};
|
|
parameters: never;
|
|
requestBodies: never;
|
|
headers: never;
|
|
pathItems: never;
|
|
}
|
|
export type $defs = Record<string, never>;
|
|
export interface operations {
|
|
createProduct: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["ProductUrl"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Product"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
parseRecipe: {
|
|
parameters: {
|
|
query: {
|
|
url: string;
|
|
};
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Recipe-Output"];
|
|
};
|
|
};
|
|
400: components["responses"]["Problem400"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
parseIngredients: {
|
|
parameters: {
|
|
query: {
|
|
ingredients: string[];
|
|
};
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Ingredient"][];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
listRecipes: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Optional case-insensitive name filter (matches recipe name with SQL LIKE). */
|
|
q?: string | null;
|
|
/** @description Opaque cursor for pagination. Pass the value returned in nextCursor to fetch the next page. */
|
|
cursor?: string | null;
|
|
/** @description Maximum number of items to return (1-200). */
|
|
limit?: number;
|
|
};
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description A page of recipes */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
/**
|
|
* @example {
|
|
* "items": [
|
|
* {
|
|
* "id": 1,
|
|
* "name": "Example Recipe",
|
|
* "link": "https://example.com/recipes/1",
|
|
* "serves": 4,
|
|
* "imageUrls": [],
|
|
* "ingredients": []
|
|
* }
|
|
* ],
|
|
* "nextCursor": "2",
|
|
* "prevCursor": "0",
|
|
* "total": 1
|
|
* }
|
|
*/
|
|
"application/json": components["schemas"]["Page_Recipe_"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
createRecipe: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["Recipe-Input"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Recipe-Output"];
|
|
};
|
|
};
|
|
400: components["responses"]["Problem400"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
getRecipe: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
recipe_id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Recipe-Output"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
deleteRecipe: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
recipe_id: number;
|
|
};
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Recipe-Output"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
getUpcomingMeals: {
|
|
parameters: {
|
|
query: {
|
|
from: string;
|
|
to: string;
|
|
};
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Output"][];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
getMeal: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
meal_id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Output"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
updateMeal: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
meal_id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Input"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Output"];
|
|
};
|
|
};
|
|
400: components["responses"]["Problem400"];
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
deleteMeal: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
meal_id: number;
|
|
};
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Output"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
createMeal: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Input"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Output"];
|
|
};
|
|
};
|
|
400: components["responses"]["Problem400"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
markMealConsumed: {
|
|
parameters: {
|
|
query?: {
|
|
consumed_date?: string | null;
|
|
};
|
|
header?: never;
|
|
path: {
|
|
meal_id: number;
|
|
};
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Meal-Output"];
|
|
};
|
|
};
|
|
400: components["responses"]["Problem400"];
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
getCurrentShoppingList: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["CurrentShoppingList"];
|
|
};
|
|
};
|
|
422: components["responses"]["Problem422"];
|
|
};
|
|
};
|
|
getShoppingList: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
list_id: number;
|
|
};
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["PurchasedShoppingList"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
purchaseIngredients: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["ShoppingList"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["PurchasedShoppingList"];
|
|
};
|
|
};
|
|
400: components["responses"]["Problem400"];
|
|
/** @description Unauthorized (invalid or unknown user) */
|
|
401: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/problem+json": unknown;
|
|
"application/json": components["schemas"]["ProblemDetails"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
getMyShoppingList: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Ingredient"][];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
syncMyShoppingList: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["Ingredient"][];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Ingredient"][];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
requestMeal: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["MealIdWrapper"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["ShoppingListItem"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
unrequestMeal: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path: {
|
|
meal_id: number;
|
|
};
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Ok"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
listPersons: {
|
|
parameters: {
|
|
query?: {
|
|
/** @description Optional case-insensitive name filter (applied after page read; may be pushed to SQL in the future). */
|
|
q?: string | null;
|
|
/** @description Opaque cursor for pagination. Pass the value returned in nextCursor to fetch the next page. */
|
|
cursor?: string | null;
|
|
/** @description Maximum number of items to return (1-200). */
|
|
limit?: number;
|
|
};
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description A page of persons */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
/**
|
|
* @example {
|
|
* "items": [
|
|
* {
|
|
* "id": 1,
|
|
* "name": "Ada Lovelace"
|
|
* }
|
|
* ],
|
|
* "nextCursor": "2",
|
|
* "prevCursor": "0",
|
|
* "total": 1
|
|
* }
|
|
*/
|
|
"application/json": components["schemas"]["Page_Person_"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
createPerson: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["Person"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Person"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
login: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody: {
|
|
content: {
|
|
"application/json": components["schemas"]["LoginBody"];
|
|
};
|
|
};
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Person"];
|
|
};
|
|
};
|
|
404: components["responses"]["Problem404"];
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
refresh: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie: {
|
|
user_id: number;
|
|
};
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["Person"];
|
|
};
|
|
};
|
|
/** @description Validation Error */
|
|
422: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HTTPValidationError"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
healthz_healthz_get: {
|
|
parameters: {
|
|
query?: never;
|
|
header?: never;
|
|
path?: never;
|
|
cookie?: never;
|
|
};
|
|
requestBody?: never;
|
|
responses: {
|
|
/** @description Successful Response */
|
|
200: {
|
|
headers: {
|
|
[name: string]: unknown;
|
|
};
|
|
content: {
|
|
"application/json": components["schemas"]["HealthStatus"];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|