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", | |
| "email", | |
| "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": [] | |
| } |