Inventory Management API Documentation (1.0.0)

Download OpenAPI specification:

This is the API documentation for the Task Management application.

Admin

Assign a role to a user (Admin only)

Authorizations:
None
Request Body schema: application/json
required
uid
required
string
role
required
string
Enum: "admin" "staff"

Responses

Request samples

Content type
application/json
{
  • "uid": "abc123XYZ",
  • "role": "admin"
}

Response samples

Content type
application/json
{
  • "message": "Role set successfully",
  • "data": {
    }
}

Authentication

Sign in a user using email and password

Authorizations:
bearerAuth
Request Body schema: application/json
required
email
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "password123"
}

Response samples

Content type
application/json
{
  • "message": "Sign in successful",
  • "data": {
    }
}

Products

Get all products

Accessible by admin, manager, and employee roles. Supports filtering using query parameters.

Authorizations:
None
query Parameters
category
string
Enum: "Electronics" "Office Supplies" "Furniture" "Food" "Home Supplies"
Example: category=Electronics
supplierId
string
Example: supplierId=supp_1
minPrice
number
Example: minPrice=500
maxPrice
number
Example: maxPrice=2000
minQuantity
number
Example: minQuantity=1
maxQuantity
number
Example: maxQuantity=50

Responses

Create a new product

Accessible by admin and manager roles only.

Authorizations:
None
Request Body schema: application/json
required
name
required
string
description
required
string
price
required
number
quantity
required
number
category
required
string
supplierId
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "iPhone 16 Pro Max 128GB Black",
  • "description": "Premium smartphone with advanced features",
  • "price": 1700,
  • "quantity": 5,
  • "category": "Electronics",
  • "supplierId": "supp_1"
}

Get a product by ID

Accessible by admin, manager, and employee roles.

Authorizations:
None
path Parameters
id
required
string
Example: prod_1

Responses

Update a product

Accessible by admin and manager roles only.

Authorizations:
None
path Parameters
id
required
string
Example: prod_1
Request Body schema: application/json
required
name
string
description
string
price
number
quantity
number
category
string
supplierId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "quantity": 0,
  • "category": "string",
  • "supplierId": "string"
}

Delete a product

Accessible by admin and manager roles only.

Authorizations:
None
path Parameters
id
required
string
Example: prod_1

Responses

Suppliers

Get all suppliers

Accessible by admin, manager, and employee roles.

Authorizations:
None

Responses

Create a new supplier

Accessible by admin role only.

Authorizations:
None
Request Body schema: application/json
required
name
required
string
email
required
string
phoneNumber
required
string
address
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Apple Distribution Canada",
  • "email": "sales@apple.ca",
  • "phoneNumber": 2041234567,
  • "address": "Winnipeg, MB"
}

Get a supplier by ID

Accessible by admin, manager, and employee roles.

Authorizations:
None
path Parameters
id
required
string
Example: supp_1

Responses

Update a supplier

Accessible by admin role only.

Authorizations:
None
path Parameters
id
required
string
Example: supp_1
Request Body schema: application/json
required
name
string
email
string
phoneNumber
string
address
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "string",
  • "phoneNumber": "string",
  • "address": "string"
}

Delete a supplier

Accessible by admin role only.

Authorizations:
None
path Parameters
id
required
string
Example: supp_1

Responses

Transactions

Get all inventory transactions

Accessible by admin, manager, and employee roles. Supports filtering using query parameters.

Authorizations:
None
query Parameters
productId
string^prod_\d+$
Example: productId=prod_1
type
string
Enum: "add" "remove" "adjust"
Example: type=add
startDate
string <date-time>
Example: startDate=2026-04-01T00:00:00.000Z
endDate
string <date-time>
Example: endDate=2026-04-30T23:59:59.999Z

Responses

Create a new inventory transaction

Accessible by admin, manager, and employee roles.

Authorizations:
None
Request Body schema: application/json
required
productId
required
string
quantityChanged
required
number
type
required
string
Enum: "add" "remove" "adjust"
notes
string

Responses

Request samples

Content type
application/json
{
  • "productId": "prod_1",
  • "quantityChanged": 5,
  • "type": "add",
  • "notes": "Restocked from supplier"
}

Get a transaction by ID

Accessible by admin, manager, and employee roles.

Authorizations:
None
path Parameters
id
required
string
Example: trans_1

Responses

Update a transaction

Accessible by admin and manager roles only.

Authorizations:
None
path Parameters
id
required
string
Example: trans_1
Request Body schema: application/json
required
notes
string
type
string
Enum: "add" "remove" "adjust"

Responses

Request samples

Content type
application/json
{
  • "notes": "Updated notes",
  • "type": "add"
}

Delete a transaction

Accessible by admin and manager roles only.

Authorizations:
None
path Parameters
id
required
string
Example: trans_1

Responses

Users

Get user details by ID (Admin only)

Retrieves Firebase user details using the user's UID. Accessible only by admin users.

Authorizations:
None
path Parameters
id
required
string
Example: Lt9yCJSVoogSanugPrS1Inv3n3K2

Responses

Response samples

Content type
application/json
{
  • "message": "User retrieved successfully",
  • "data": { }
}