{ "swagger": "2.0", "info": { "description": "This is the Warehouse Management API server.", "title": "Warehouse Management API", "contact": {}, "version": "1.0" }, "host": "localhost:3000", "basePath": "/api/v1", "paths": { "/auth/register": { "post": { "description": "Register with email, username and password", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Register a new user", "parameters": [ { "description": "Register request", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/requests.BodyRegisterRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "allOf": [ { "$ref": "#/definitions/response.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/responses.BodyRegisterResponse" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } } } }, "/ping": { "get": { "description": "Check server is running", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "health" ], "summary": "Health check", "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/warehouses": { "get": { "description": "Retrieve a list of all warehouses ordered by creation date", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "warehouse" ], "summary": "List all warehouses", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.SuccessResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/models.Warehouse" } } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } } }, "post": { "description": "Create a new warehouse with the provided details", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "warehouse" ], "summary": "Create a new warehouse", "parameters": [ { "description": "Warehouse request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/requests.CUWarehouseRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "allOf": [ { "$ref": "#/definitions/response.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/responses.CreateWarehouseResponse" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } } } }, "/v1/warehouses/{id}": { "get": { "description": "Retrieve a single warehouse using its unique identifier", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "warehouse" ], "summary": "Get warehouse by ID", "parameters": [ { "type": "integer", "description": "Warehouse ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Warehouse" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } } }, "put": { "description": "Update an existing warehouse by its ID with the provided details", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "warehouse" ], "summary": "Update warehouse", "parameters": [ { "type": "integer", "description": "Warehouse ID", "name": "id", "in": "path", "required": true }, { "description": "Warehouse request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/requests.CUWarehouseRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/responses.UpdateWarehouseResponse" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } } }, "delete": { "description": "Delete a warehouse by its unique identifier", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "warehouse" ], "summary": "Delete warehouse", "parameters": [ { "type": "integer", "description": "Warehouse ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.SuccessResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } } } } }, "definitions": { "models.Warehouse": { "type": "object", "properties": { "address": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "updatedAt": { "type": "string" } } }, "requests.BodyRegisterRequest": { "type": "object", "required": [ "email", "password", "username" ], "properties": { "email": { "type": "string" }, "fullName": { "type": "string" }, "password": { "type": "string", "minLength": 8 }, "username": { "type": "string" } } }, "requests.CUWarehouseRequest": { "type": "object", "required": [ "address", "name" ], "properties": { "address": { "type": "string" }, "description": { "type": "string" }, "name": { "type": "string" } } }, "response.ErrorResponse": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "now": { "type": "integer" }, "status": { "type": "integer" } } }, "response.SuccessResponse": { "type": "object", "properties": { "data": {}, "message": { "type": "string" }, "option": {}, "reason_status_code": { "type": "string" }, "status": { "type": "integer" } } }, "responses.BodyRegisterResponse": { "type": "object", "properties": { "id": { "type": "string" } } }, "responses.CreateWarehouseResponse": { "type": "object", "properties": { "id": { "type": "integer" } } }, "responses.UpdateWarehouseResponse": { "type": "object", "properties": { "address": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" } } } } }