Skip to content

nullvoid10/Inventory-Management-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 

Repository files navigation

Inventory Management API

This is an Django app which can be integrated to any project.

Requirements

  • python >= 3
  • Django >= 3.1.1
  • pip3 >= 9.0.1

Installation

  • pip3 install django==3.1.1

Just add "invetory" on your installed apps in settings.py

Data to send must be in JSON format

All data must be sent in the key "jsonData"

{
    "jsonData": {
        "YourData": "ex data"
    }
}

Response will be in the key "responseData". if data sent is invalid "responseData.isError" would return true together with "responseData.errorInfo" to show the error information

{
    "responseData": {
        "the response": "ok"
    }
}

Product API

"/product/create/" creates a new product. Data to send format must be like the example below.

  • request method = post.

  • "name" type: string, product name. (required)

  • "stock" type: number, product stock. (required, default is 0)

  • "barcode" type: string, product barcode. (optional)

  • "description" type: string, product description. (optional)

  • "supplier" type: number, product supplier id. (optional)

{
    "jsonData": {
        "name": "your product name",
        "stock": 0,
        "barcode": 123534535,
        "description": "your desc",
        "supplier": 1
    }
}

if you want to create multiple products you can pass isMass: true together with the list of product information to create. example below.

  • "jsonData" type: list, list of product information. (required)
  • "isMass" type: bool, set to true if creating multiple products. (optional)
{
    "jsonData": [
        {
            "name": "product 1",
            "stock": 2
        },
        {
            "name": "product 2",
            "stock": 3
        }
    ],
    "isMass": true
}

"/product/update/" updates a product. Data to send format must be like the example below.

  • request method = post

  • "productId" type: number, product id to update. (required)

  • "productInfo" type: dict, updated product information.

{
    "jsonData": {
        "productId": 2,
        "productInfo": {
            "name": "your product name",
            "stock": 0,
            "barcode": 123534535,
            "description": "your desc",
            "supplier": 1
        }
    }
}

"/product/read/" reads a product. Data to send format must be like the example below.

  • request method = get
  • "productId" type: number, product id to be read. (required)
{
    "jsonData": {
        "productId": 2
    }
}

"/product/delete/" deletes a product. Data to send format must be like the example below.

  • request method = post
  • "productId" type: number, product id to be deleted. (required)
{
    "jsonData": {
        "productId": 2
    }
}

Supplier API

"/supplier/create/" creates a new supplier. Data to send format must be like the example below.

  • request method = post

  • "name" type: string, the suppliers name. (required)

  • "mobile_number" type: number, the suppliers number. (optional)

  • "address" type: string, the suppliers address. (optional)

  • "email" type: string, the suppliers email. (optional)

{
    "jsonData": {
        "name": "your supplier name",
        "mobile_number": 63912332123,
        "address": "some st. some stat",
        "email": "someemail@email.com",
    }
}

"/supplier/update/" updates a supplier. Data to send format must be like the example below.

  • request method = post

  • "supplierId" type: number, suppliers id to be updated. (required)

  • "supplierInfo" type: dict, suppliers updated information.

{
    "jsonData": {
        "supplierId": 2,
        "supplierInfo": {
            "name": "your supplier name",
            "mobile_number": 63901231233,
            "address": "some st. some state",
            "email": "supplier@email.com",
        }
    }
}

"/supplier/read/" reads a supplier. Data to send format must be like the example below.

  • request method = get

  • "supplierId" type: number, the suppliers id to be read.

{
    "jsonData": {
        "supplierId": 2
    }
}

"/supplier/delete/" deletes a supplier. Data to send format must be like the example below.

  • request method = post

  • "supplierId" type: number, the suppliers id to be deleted.

{
    "jsonData": {
        "supplierId": 2
    }
}

Transaction API

"/transaction/create/" creates a new transaction. Data to send format must be like the example below.

  • request method = post

  • "product" type: number, the product id in the transaction. (required)

  • "stock" type: number, the stock in the supplier. (required)

  • "note" type: string, note/description in the transaction. (optional)

{
    "jsonData": {
        "product": 1,
        "stock": 100,
        "note": "some note",
    }
}

"/transaction/update/" updates a transaction. Data to send format must be like the example below.

  • request method = post

  • "transactionId" type: number, transaction id to be updated. (required)

  • "transactoinInfo" type: dict, updated transaction information.

{
    "jsonData": {
        "transactionId": 2,
        "transactionInfo": {
            "product": 1,
            "stock": -100,
            "note": "some update note",
        }
    }
}

if you changed the product id your can pass return_stocks:True to return the stocks to the previous product. example below.

  • "return_stocks" type: bool, true if you want to return stock from previous product. (optional)
{
    "jsonData": {
        "transactionId": 2,
        "transactionInfo": {
            "product": 2,
            "stock": 200,
            "note": "some note"
        },
        "return_stocks": true
    }
}

"/transaction/read/" reads a transaction. Data to send format must be like the example below.

  • request method = get

  • "transactionId" type: number, transaction id to be read. (required)

{
    "jsonData": {
        "transactionId": 2
    }
}

"/transaction/delete/" deletes a supplier. Data to send format must be like the example below.

  • request method = post

  • "transcationId" type: number, transaction id to be deleted. (required)

{
    "jsonData": {
        "transactionId": 2
    }
}

if you want to return the stocks on product on the transaction you can pass return_stocks: true. example below.

  • "return_stocks" type: bool, set to true if you want to return the stocks of the product in the transaction.
{
    "jsonData": {
        "transactionId": 5,
        "return_stocks": true
    }
}

Query API

"/query/model_to_query/" This will query a specific model. Method must always be get. The response will be in the key "responseData".

Product Query

/query/product/ queries a product. Data sent should be like the format below.

  • "query" type: string, the query. (optional if empty it will return all)

  • "query_by" type: string, can be name, description, id, stock. (required)

  • "query_limit" type: number, any number. (optional, default is 100)

  • "order_by" type: string, can be name, description, id, stock. (required)

  • "order_type" type: string, can be ascn or desc. (optional)

{
    "jsonData": {
        "query": "to query",
        "query_by": "name, stock, id, description",
        "order_by": "name, stock, id, description",
        "query_limit": 100,
        "order_type": "ascn or desc",
    }
}

Supplier Query

/query/supplier/ queries a supplier. Data sent should be like the format below.

  • "query" type: string, the query. (optional if empty it will return all)

  • "query_by" type: string, can be name, address, id, mobile_number, email. (required)

  • "query_limit" type: number, any number. (optional, default is 100)

  • "order_by" type: string, can be name, address, id, mobile_number, email. (required)

  • "order_type" type: string, can be ascn or desc. (optional)

{
    "jsonData": {
        "query": "to query",
        "query_by": "name, email, id, address, mobile_number",
        "order_by": "name, email, id, address, mobile_number",
        "query_limit": 100,
        "order_type": "ascn or desc",
    }
}

Transaction Query

/query/transaction/ queries a transaction. Data send should be like the format below.

  • "query" type: string, the query. (optional if empty it will return all)

  • "query_by" type: string, can be id, note, product, stock, created_on. (required)

  • "query_by_suffix" type: string, can be range, gt, lt, starts_with etc. Refer to django docs about query. (optional, default is icontains)

  • "query_limit" type: number, any number. (optional, default is 100)

  • "order_by" type: string, can be id, note, product, stock, created_on. (required)

  • "order_type" type: string, can be ascn or desc. (optional)

{
    "jsonData": {
        "query": "to _query",
        "query_by": "name, email, id, address, mobile_number",
        "query_by_suffix": "range, icontains, gt, lt",
        "order_by": "name, email, id, address, mobile_number",
        "query_limit": 100,
        "order_type": "ascn or desc",
    }
}

About

An app you can integrate into any of your Django projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages