Skip to content

Instantly share code, notes, and snippets.

@fhyfirman
Last active May 7, 2024 09:38
Show Gist options
  • Save fhyfirman/0b09b5238257cadf34f769607d8c465f to your computer and use it in GitHub Desktop.
Save fhyfirman/0b09b5238257cadf34f769607d8c465f to your computer and use it in GitHub Desktop.
Swagger
---
openapi: 3.0.1
info:
title: API V1
version: v1
paths:
"/api/v1/restaurants/{restaurant_id}/category_menus":
get:
summary: Retrieves a All Category Menu
tags:
- Category Menus
parameters:
- name: restaurant_id
in: path
required: true
description: >
```This field allows for a longer description to provide```
additional context or details about the object being created.
For code examples and syntax highlighting, please refer to the
[API documentation](https://your-api-documentation-url).
schema:
type: string
responses:
'200':
description: Category Menu found
post:
summary: Create an Category Menu
tags:
- Category Menus
parameters: []
responses:
'200':
description: category added
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
restaurant_id:
type: integer
title_th:
type: string
title_en:
type: string
is_active:
type: boolean
"/api/v1/restaurants/{restaurant_id}/category_menus/lists":
get:
summary: Retrieves a Lists Category Menu
tags:
- Category Menus
parameters:
- name: restaurant_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Category Menu found
"/api/v1/restaurants/{restaurant_id}/category_menus/search?char={key}":
get:
summary: Retrieves a Category Menu by Keyword
tags:
- Category Menus
parameters:
- name: key
in: path
required: true
schema:
type: string
responses:
'200':
description: Category Menu found
"/api/v1/restaurants/{restaurant_id}/category_menus/{id}":
put:
summary: Update Category Menu
tags:
- Category Menus
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: category updated
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
restaurant_id:
type: integer
title_th:
type: string
title_en:
type: string
is_active:
type: boolean
"/api/v1/menus/{menu_id}/custom_tag_menus?include=menu,custom_tag":
get:
summary: Retrieves a Custom Tag Menus by Menu ID
tags:
- Custom Tag Menus
parameters:
- name: menu_id
in: path
required: true
schema:
type: string
responses:
'200':
description: custom tag menu found
"/api/v1/custom_tag_menus?include=menu,custom_tag":
get:
summary: Retrieves a Custom Tag Menus All
tags:
- Custom Tag Menus
responses:
'200':
description: custom tag menu found
"/api/v1/custom_tag_menus":
post:
summary: Create a Custom Tag Menus
tags:
- Custom Tag Menus
parameters: []
responses:
'200':
description: custom tag menu created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/custom_tag_menu"
"/api/v1/custom_tag_menus/{id}":
delete:
summary: Delete an Custom Tag Menus
tags:
- Custom Tag Menus
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: custom tag menu deleted
"/api/v1/custom_tags":
get:
summary: Retrieves a Custom Tag
tags:
- Custom Tags
responses:
'200':
description: custom tag found
post:
summary: Create an Custom Tag
tags:
- Custom Tags
parameters: []
responses:
'200':
description: icon uploaded
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
title:
type: string
is_checkbox:
type: boolean
icon:
type: file
link_base64:
type: text
"/api/v1/custom_tags/checkbox_true":
get:
summary: Get a Custom Tag by Checkbox True
tags:
- Custom Tags
responses:
'200':
description: custom tag by checkbox true is found
"/api/v1/custom_tags/checkbox_false":
get:
summary: Get a Custom Tag by Checkbox False
tags:
- Custom Tags
responses:
'200':
description: custom tag by checkbox false is found
"/api/v1/custom_tags/{id}":
put:
summary: Update Custom Tag with Image
tags:
- Custom Tags
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: icon uploaded
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
title:
type: string
is_checkbox:
type: boolean
icon:
type: file
link_base64:
type: text
delete:
summary: Delete an Custom Tag
tags:
- Custom Tags
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: custom tag deleted
"/fill_optional_names/execute":
get:
summary: Fill Menu Name and Description
tags:
- Fill Menu Name and Description
responses:
'200':
description: Success
"/api/v1/layouts":
get:
summary: Retrieves a Layout
tags:
- Layouts
responses:
'200':
description: layout found
"/api/v1/layouts/{id}/detail":
get:
summary: Retrieves a Layout by ID
tags:
- Layouts
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: layout found
"/api/v1/my_images":
post:
summary: Create a My Image
tags:
- My Images
parameters: []
responses:
'200':
description: my image uploaded
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
image:
type: file
"/api/v1/my_images/{id}":
delete:
summary: Delete an My Image
tags:
- My Images
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: my image deleted
"/api/v1/my_images/{my_image_id}/detail":
get:
summary: Retrieves a My Image
tags:
- My Images
parameters:
- name: my_image_id
in: path
required: true
schema:
type: string
responses:
'200':
description: my image found
"/api/v1/packages":
get:
summary: Retrieves a Package
tags:
- Packages
responses:
'200':
description: package found
post:
summary: Create a Package
tags:
- Packages
parameters: []
responses:
'200':
description: package created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/package"
"/api/v1/packages/{id}":
put:
summary: Update an Package
tags:
- Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: package updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/package"
delete:
summary: Delete an Package
tags:
- Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: package deleted
"/api/v1/packages/{id}/detail":
get:
summary: Retrieves a Package by ID
tags:
- Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: package found
"/api/v1/restaurant_packages/{restaurant_package_id}/recommended_menus?include=menu":
get:
summary: Retrieves a Recommended Menu
tags:
- Recommended Menus
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: recommended menus found
"/api/v1/restaurant_packages/{restaurant_package_id}/recommended_menus":
post:
summary: Create a Recommended Menu
tags:
- Recommended Menus
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: recommended menu created
requestBody:
content:
application/json:
schema:
menu_ids:
- 3
- 4
- 5
"/api/v1/restaurant_packages":
get:
summary: Retrieves a Restaurant Package
tags:
- Restaurant Packages
responses:
'200':
description: restaurant package found
post:
summary: Create a Restaurant Package
tags:
- Restaurant Packages
parameters: []
responses:
'200':
description: restaurant package created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/restaurant_package"
"/api/v1/restaurant_packages/{id}":
put:
summary: Update an Restaurant Package
tags:
- Restaurant Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: restaurant package updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/restaurant_package"
delete:
summary: Delete an Restaurant Package
tags:
- Restaurant Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: restaurant package deleted
"/api/v1/restaurant_packages/{id}/detail?include=recommended_menus,sections":
get:
summary: Retrieves a Restaurant Package by ID
tags:
- Restaurant Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: restaurant package found
"/api/v1/restaurant_packages/{id}/update_package":
put:
summary: Update an Restaurant Package
tags:
- Restaurant Packages
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: restaurant package updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/restaurant_package"
"/api/v1/restaurant_packages/link_package_menu?package_id={package_id}&package_type={package_type}":
get:
summary: Get Link Package Menu Restaurant Package by ID
tags:
- Restaurant Packages
parameters:
- name: package_id
in: path
required: true
schema:
type: string
- name: package_type
in: path
required: true
schema:
type: string
responses:
'200':
description: link package menu found
"/api/v1/restaurants/{restaurant_id}/master_menu":
get:
summary: Retrieves a master menu
tags:
- Master Menus
parameters:
- name: restaurant_id
in: path
required: true
schema:
type: string
responses:
'200':
description: master menu found
"/api/v1/restaurants/{restaurant_id}/master_menus":
post:
summary: Create an Master Menu
tags:
- Master Menus
parameters:
- name: restaurant_id
in: path
required: true
schema:
type: string
responses:
'200':
description: master menu created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/master_menu"
"/api/v1/restaurants/{restaurant_id}/master_menus/{id}":
put:
summary: Update an Master Menu
tags:
- Master Menus
parameters:
- name: restaurant_id
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: master menu updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/master_menu"
"/api/v1/master_menus/{id}":
get:
summary: Retrieves a master menu by ID
tags:
- Master Menus
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: master menu found
"/api/v1/restaurants/{restaurant_id}/master_menus/{master_menu_id}/menus?page[size]={size}&include=my_image,custom_tag_menus":
get:
summary: Retrieves a menu
tags:
- Menus
parameters:
- name: restaurant_id
in: path
required: true
schema:
type: integer
- name: master_menu_id
in: path
required: true
schema:
type: integer
- name: size
in: path
required: true
schema:
type: integer
responses:
'200':
description: menu found
"/api/v1/restaurants/{restaurant_id}/master_menus/{master_menu_id}/menus":
post:
summary: Create an Menu
tags:
- Menus
parameters:
- name: restaurant_id
in: path
required: true
schema:
type: integer
- name: master_menu_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: menu created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/menu"
"/api/v1/restaurants/{restaurant_id}/master_menus/{master_menu_id}/menus/{id}":
put:
summary: Update an Menu
tags:
- Menus
parameters:
- name: id
in: path
required: true
schema:
type: integer
- name: restaurant_id
in: path
required: true
schema:
type: integer
- name: master_menu_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: menu updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/menu"
delete:
summary: Delete an Menu
tags:
- Menus
parameters:
- name: id
in: path
required: true
schema:
type: integer
- name: restaurant_id
in: path
required: true
schema:
type: integer
- name: master_menu_id
in: path
required: true
schema:
type: integer
responses:
'200':
description: menu deleted
"/api/v1/restaurants/{id}":
get:
summary: Retrieves a restaurant
tags:
- Restaurant
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: restaurant found
content:
application/json:
schema:
type: object
properties:
id:
type: integer
required:
- id
"/api/v1/restaurant_packages/{restaurant_package_id}/sections?include=selected_menus":
get:
summary: Retrieves a Section
tags:
- Sections
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sections found
"/api/v1/restaurant_packages/{restaurant_package_id}/sections/{section_id}/detail?include=menus":
get:
summary: Retrieves a Section by ID
tags:
- Sections
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
- name: section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sections found
"/api/v1/restaurant_packages/{restaurant_package_id}/sections":
post:
summary: Create a Section
tags:
- Sections
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: section created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/section"
"/api/v1/restaurant_packages/{restaurant_package_id}/sections/{id}":
put:
summary: Update an Section
tags:
- Sections
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: section updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/section"
delete:
summary: Delete an Section
tags:
- Sections
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: section deleted
"/api/v1/restaurant_packages/{restaurant_package_id}/sections/update_priorities":
put:
summary: Update an Section Priorities
tags:
- Sections
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
responses:
'200':
description: section updated
requestBody:
content:
application/json:
schema:
section_ids:
- section_id: 5
priority: 30
- section_id: 6
priority: 40
"/api/v1/restaurant_packages/{restaurant_package_id}/sections/{section_id}/selected_menus?include=section,menu":
get:
summary: Retrieves a Selected Menu
tags:
- Selected Menus
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
- name: section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: selected menus found
"/api/v1/restaurant_packages/{restaurant_package_id}/sections/{section_id}/selected_menus":
post:
summary: Create a Selected Menu
tags:
- Selected Menus
parameters:
- name: restaurant_package_id
in: path
required: true
schema:
type: string
- name: section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: selected menu created
requestBody:
content:
application/json:
schema:
menu_ids:
- 3
- 4
- 5
"/api/v1/menus/{menu_id}/sub_sections/{sub_section_id}/sub_menus":
get:
summary: Retrieves a Sub Menu
tags:
- Sub Menus
parameters:
- name: menu_id
in: path
required: true
schema:
type: string
- name: sub_section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Sub Menus Found
post:
summary: Create a Sub Menu
tags:
- Sub Menus
parameters:
- name: menu_id
in: path
required: true
schema:
type: string
- name: sub_section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sub menu created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/sub_menu"
"/api/v1/menus/{menu_id}/sub_sections/{sub_section_id}/sub_menus/{id}":
put:
summary: Update an Sub Menu
tags:
- Sub Menus
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: menu_id
in: path
required: true
schema:
type: string
- name: sub_section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sub menu updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/sub_menu"
delete:
summary: Delete an Sub Menu
tags:
- Sub Menus
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: menu_id
in: path
required: true
schema:
type: string
- name: sub_section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sub menu deleted
"/api/v1/menus/{menu_id}/sub_sections?include=sub_menus":
get:
summary: Retrieves a Sub Section
tags:
- Sub Sections
parameters:
- name: menu_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sections found
post:
summary: Create a Sub Section
tags:
- Sub Sections
parameters:
- name: menu_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sub section created
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/sub_section"
"/api/v1/menus/{menu_id}/sub_sections/{id}":
put:
summary: Update an Sub Section
tags:
- Sub Sections
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: menu_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sub section updated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/sub_section"
delete:
summary: Delete an Sub Section
tags:
- Sub Sections
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: menu_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sub section deleted
"/api/v1/menus/{menu_id}/sub_sections/{sub_section_id}/detail?include=sub_menus":
get:
summary: Retrieves a Sub Section by ID
tags:
- Sub Sections
parameters:
- name: menu_id
in: path
required: true
schema:
type: string
- name: sub_section_id
in: path
required: true
schema:
type: string
responses:
'200':
description: sections found
"/switch_menu_names/execute":
get:
summary: Switch Menu Name and Description
tags:
- Switch Menu Name and Description
responses:
'200':
description: Success
"/api/v1/translations":
post:
summary: Translation menu
tags:
- Translations
parameters: []
responses:
'200':
description: Translated
requestBody:
content:
application/json:
schema:
"$ref": "#/components/schemas/translation"
components:
schemas:
errors_object:
type: object
properties:
errors:
"$ref": "#/components/schemas/errors_map"
errors_map:
type: object
additionalProperties:
type: array
items:
type: string
master_menu:
type: object
properties:
main_language:
type: string
optional_language:
type: string
currency_code:
type: string
is_using_price:
type: boolean
required:
- restaurant_id
- main_language
menu:
type: object
properties:
title_th:
type: string
title_en:
type: string
description:
type: string
opt_description:
type: string
price_cents:
type: integer
price_currency:
type: string
item_no:
type: integer
category_menu_id:
type: integer
required:
- master_menu_id
- title_th
- description
- price_cents
category_menu:
type: object
properties:
title_th:
type: string
title_en:
type: string
is_active:
type: boolean
required:
- title_th
custom_tag:
type: object
properties:
title:
type: string
is_checkbox:
type: boolean
required:
- title
custom_tag_menu:
type: object
properties:
menu_id:
type: integer
custom_tag_id:
type: integer
title:
type: string
required:
- menu_id
- custom_tag_id
restaurant_package:
type: object
properties:
layout_id:
type: integer
package_id:
type: integer
restaurant_id:
type: integer
package_type:
type: string
link_package_menu:
type: string
required:
- package_id
- package_type
package:
type: object
properties:
title:
type: string
required:
- title
translation:
type: object
properties:
target_language_code:
type: string
default: en
enum:
- en
- th
name:
type: string
description:
type: string
required:
- name
- description
section:
type: object
properties:
title:
type: string
quantity:
type: integer
priority:
type: integer
start_date:
type: string
end_date:
type: string
description:
type: string
required:
- package_id
- title
- quantity
selected_menu:
type: object
properties:
menu_id:
type: integer
section_id:
type: integer
priority:
type: integer
required:
- menu_id
- section_id
- priority
sub_section:
type: object
properties:
title_th:
type: string
title_en:
type: string
quantity:
type: integer
priority:
type: integer
mandatory:
type: boolean
required:
- menu_id
- title_th
- quantity
sub_menu:
type: object
properties:
title_th:
type: string
title_en:
type: string
priority:
type: integer
required:
- sub_section_id
- title_th
recommended_menu:
type: object
properties:
menu_id:
type: integer
restaurant_package_id:
type: integer
required:
- menu_id
- restaurant_package_id
my_image:
type: object
properties:
menu_id:
type: integer
required:
- image
layout:
type: object
properties:
title:
type: string
image_url:
type: string
folder_pdf:
type: string
required:
- title,
- image_url
servers:
- url: "{defaultSchema}://{defaultHost}{defaultPort}"
variables:
defaultHost:
default: localhost
defaultSchema:
default: http
defaultPort:
default: ":3000"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment