Spaces:
Runtime error
Runtime error
openapi: 3.0.0 | |
info: | |
title: Express API Documentation | |
version: 1.0.0 | |
description: This is the API documentation for my Express application. | |
servers: | |
- url: https://934a-45-119-30-178.ngrok-free.app | |
paths: | |
/_healthz: | |
get: | |
operationId: getHealthZ | |
description: Check server health | |
responses: | |
'200': | |
description: Server is healthy | |
content: | |
text/plain: | |
schema: | |
type: string | |
example: Hello World! | |
/company/{companyId}: | |
get: | |
operationId: getOrVerifyCompanyCredentials | |
description: Retrieve company credentials | |
tags: | |
- Company | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The company ID | |
responses: | |
'200': | |
description: Company credentials retrieved successfully | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/CompanyCreds' | |
'404': | |
description: Company credentials not found | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
put: | |
operationId: updateCompanyCredentials | |
description: Update company credentials | |
tags: | |
- Company | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The company ID | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/CompanyCreds' | |
responses: | |
'200': | |
description: Company credentials updated successfully | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
'400': | |
description: Invalid input | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
/company/{companyId}/applications: | |
get: | |
operationId: getSalesChannelByCompany | |
description: Retrieve applications for a specific company | |
tags: | |
- Company | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The ID of the company to retrieve applications for | |
responses: | |
'200': | |
description: List of applications for the specified company | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
type: object | |
properties: | |
name: | |
type: string | |
description: Name of the application | |
id: | |
type: string | |
description: ID of the application | |
token: | |
type: string | |
description: Token associated with the application | |
domain: | |
type: string | |
description: Primary domain of the application | |
logo: | |
type: string | |
description: Logo URL of the application | |
'500': | |
description: Server error | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
/company/{companyId}/brands: | |
get: | |
summary: Retrieves a list of brands for a specific company | |
tags: | |
- Brands | |
operationId: getCompanyBrands | |
description: Fetches a list of brands associated with the given company ID. | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The unique identifier of the company | |
responses: | |
'200': | |
description: A list of brands | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Brand' | |
post: | |
summary: Creates a new brand for a specific company | |
tags: | |
- Brands | |
operationId: createCompanyBrand | |
description: Adds a new brand to the company profile. | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The unique identifier of the company | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/BrandCreation' | |
responses: | |
'200': | |
description: Brand created successfully | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
id: | |
type: string | |
/company/{companyId}/brands/{brandId}: | |
put: | |
summary: Creates a new brand for a specific company | |
tags: | |
- Brands | |
operationId: updateCompanyBrand | |
description: updated an existing brand. | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The unique identifier of the company | |
- in: path | |
name: brandId | |
required: true | |
schema: | |
type: number | |
description: The unique identifier of the brand | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/BrandCreation' | |
responses: | |
'200': | |
description: Brand updated successfully | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
id: | |
type: string | |
/company/{companyId}/locations: | |
get: | |
operationId: getLocationsByCompany | |
description: get all company locations | |
tags: | |
- Company | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The ID of the company to add a location for | |
responses: | |
'200': | |
description: location list | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
properties: | |
id: | |
type: number | |
description: Location id | |
code: | |
type: string | |
description: Location code | |
name: | |
type: string | |
description: Location code | |
documents: | |
type: array | |
description: Location gst documents | |
items: | |
type: object | |
properties: | |
type: | |
type: string | |
description: document type | |
value: | |
type: string | |
description: document number | |
verified: | |
type: boolean | |
description: document number verification status | |
legal_name: | |
type: boolean | |
description: document owner | |
'400': | |
description: Invalid input | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
post: | |
operationId: createLocationsForCompany | |
description: Add a new location for a specific company | |
tags: | |
- Company | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The ID of the company to add a location for | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/CreateUpdateLocation' | |
responses: | |
'200': | |
description: Location created successfully | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
id: | |
type: string | |
description: Location id | |
'400': | |
description: Invalid input | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
/company/{companyId}/locations/{locationId}: | |
put: | |
operationId: updateLocationByCompany | |
description: update a location for a specific company | |
tags: | |
- Company | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The ID of the company to add a location for | |
- in: path | |
name: locationId | |
required: true | |
schema: | |
type: string | |
description: The ID of the location to be updated | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/CreateUpdateLocation' | |
responses: | |
'200': | |
description: Location updated successfully | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
id: | |
type: string | |
description: Location id | |
'400': | |
description: Invalid input | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorResponse' | |
/company/{companyId}/products: | |
post: | |
summary: Creates a new product for a given company. | |
description: >- | |
This endpoint creates a new product with various attributes including | |
name, slug, pricing, and more. | |
operationId: createProduct | |
tags: | |
- Products | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: Unique identifier of the company. | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- name | |
- slug | |
- seller_identifier | |
- brand_id | |
properties: | |
name: | |
type: string | |
description: Name of the product. | |
slug: | |
type: string | |
description: URL-friendly identifier for the product. | |
seller_identifier: | |
type: string | |
description: Unique identifier for the seller. | |
brand_id: | |
type: string | |
description: Unique identifier for the brand. | |
location_id: | |
type: string | |
description: Location identifier for the product. | |
mrp: | |
type: number | |
default: 999 | |
description: Maximum retail price of the product. | |
selling_price: | |
type: number | |
default: 499 | |
description: Selling price of the product. | |
responses: | |
'200': | |
description: Successful creation of the product. | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
id: | |
type: string | |
seller_identifier: | |
type: string | |
/company/{companyId}/products/{productId}/inventory: | |
post: | |
summary: Updates inventory for a specific product. | |
description: >- | |
This endpoint updates the inventory details for a given product, | |
including location, pricing, and quantity. | |
operationId: updateInventory | |
tags: | |
- Inventory | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: Unique identifier of the company. | |
- in: path | |
name: productId | |
required: true | |
schema: | |
type: string | |
description: Unique identifier of the product. | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
type: object | |
required: | |
- location_id | |
- seller_identifier | |
properties: | |
location_id: | |
type: string | |
description: Location identifier where the inventory is stored. | |
mrp: | |
type: number | |
default: 999 | |
description: Maximum retail price of the product. | |
selling_price: | |
type: number | |
default: 499 | |
description: Selling price of the product. | |
seller_identifier: | |
type: string | |
description: Unique identifier for the seller. | |
responses: | |
'200': | |
description: Successful update of inventory. | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
/company/{companyId}/sales_channel: | |
post: | |
operationId: addSalesChannel | |
summary: Create a sales channel for a given company | |
description: This endpoint creates a new sales channel for the specified company. | |
tags: | |
- Sales Channel | |
parameters: | |
- in: path | |
name: companyId | |
required: true | |
schema: | |
type: string | |
description: The ID of the company | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
brand_ids: | |
type: array | |
items: | |
type: integer | |
description: Array of brand IDs to be associated with the sales channel | |
name: | |
type: string | |
description: Name of the sales channel | |
subdomain: | |
type: string | |
description: subdomain associated with the sales channel | |
responses: | |
'200': | |
description: Sales channel successfully created | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
message: | |
type: string | |
app: | |
type: object | |
description: Details of the created sales channel | |
'400': | |
description: Bad request | |
'500': | |
description: Internal server error | |
components: | |
schemas: | |
CompanyCreds: | |
type: object | |
properties: | |
clientId: | |
type: string | |
description: Client ID for the company | |
clientSecret: | |
type: string | |
description: Client secret for the company | |
required: | |
- clientId | |
- clientSecret | |
CreateUpdateLocation: | |
type: object | |
required: | |
- code | |
- name | |
- gst | |
- manager | |
- address | |
properties: | |
code: | |
type: string | |
description: Unique code for the location | |
name: | |
type: string | |
description: Name of the location | |
gst: | |
type: object | |
required: | |
- legal_name | |
- value | |
properties: | |
legal_name: | |
type: string | |
description: Legal name for GST purposes | |
value: | |
type: string | |
description: GST value | |
manager: | |
type: object | |
required: | |
- manager_name | |
- number | |
- country_code | |
properties: | |
manager_name: | |
type: string | |
description: Name of the manager | |
email: | |
type: string | |
description: Email of the manager | |
number: | |
type: string | |
description: Contact number of the manager | |
country_code: | |
type: string | |
description: Country code for the manager's contact number | |
address: | |
type: object | |
required: | |
- address1 | |
- country | |
- pincode | |
- city | |
- state | |
properties: | |
address1: | |
type: string | |
description: Primary address line | |
address2: | |
type: string | |
description: Secondary address line | |
country: | |
type: string | |
description: Country of the location | |
pincode: | |
type: string | |
description: Postal code of the location | |
city: | |
type: string | |
description: City of the location | |
state: | |
type: string | |
description: State of the location | |
latitude: | |
type: number | |
description: Latitude for the location | |
longitude: | |
type: number | |
description: Longitude for the location | |
landmark: | |
type: string | |
description: Landmark near the location | |
Brand: | |
type: object | |
properties: | |
name: | |
type: string | |
logo: | |
type: string | |
id: | |
type: string | |
BrandCreation: | |
type: object | |
required: | |
- name | |
- logo | |
- description | |
properties: | |
name: | |
type: string | |
logo: | |
type: string | |
description: | |
type: string | |
ErrorResponse: | |
type: object | |
properties: | |
message: | |
type: string | |
description: Error message | |
tags: [] | |