InvMan/README.md

204 lines
4.3 KiB
Markdown
Raw Normal View History

2020-09-23 17:59:11 -05:00
# InvMan
2020-10-16 18:56:31 -05:00
## Table of Contents
1. [What is InvMan?](#what-is-invman)
2. [API Usage](#api-usage)
1. [GET Requests](#get-requests-getting-information)
2. [POST Requests](#post-requests-creating-objects)
## What is InvMan?
InvMan is a Flask app which provides a web API and web UI to keep inventory using a PostgreSQL backend.
---
## API Usage
### GET requests (getting information)
---
Please keep in mind:
* Text surrounded by `[` and `]` are parameters which should be replaced.
* Names are case-sensitive.
Get a list of locations
```plaintext
GET /api/v1/locations
```
Get information about a location
```plaintext
GET /api/v1/location/name/[location-name]
```
Get the quantities of all products at a location
```plaintext
GET /api/v1/location/[location-name]/quantities
```
Get the quantity of a product (by UPC) at a location
```plaintext
GET /api/v1/location/[location-name]/quantity/upc/[product-upc]
```
Get the quantity of a product (by name) at a location
```plaintext
GET /api/v1/location/[location-name]/quantity/name/[product-name]
```
Get a list of products
```plaintext
GET /api/v1/products
```
Get information about a product (by UPC)
```plaintext
GET /api/v1/product/upc/[product-upc]
```
Get information about a product (by name)
```plaintext
GET /api/v1/product/name/[product-name]
```
Get a list of brands
```plaintext
GET /api/v1/brands
```
Get information about a brand
```plaintext
GET /api/v1/brand/name/[brand-name]
```
Get a list of units
```plaintext
GET /api/v1/units
```
Get information about a unit (by name)
```plaintext
GET /api/v1/unit/name/[unit-name]
```
Get a list of purchases
```plaintext
GET /api/v1/purchases
```
Get information about a purchase (by id)
```plaintext
GET /api/v1/purchase/id/[purchase-id]
```
Get a list of uses
```plaintext
GET /api/v1/uses
```
Get information about a use (by id)
```plaintext
GET /api/v1/purchase/id/[use-id]
```
### POST Requests (creating objects)
---
Create a location
```plaintext
POST /api/v1/create_location
```
Request form:
| Argument Name | Description | Required? |
| ------------- | --------------------------- | --------- |
| name | Name of the location | Yes |
| description | Description of the location | No |
---
Create a brand
```plaintext
POST /api/v1/create_brand
```
Request form:
| Argument Name | Description | Required? |
| ------------- | ------------------------ | --------- |
| name | Name of the brand | Yes |
| description | Description of the brand | No |
---
Create a unit
```plaintext
POST /api/v1/create_unit
```
Request form:
| Argument Name | Description | Required? |
| ------------- | ----------------------- | --------- |
| name | Name of the unit | Yes |
| description | Description of the unit | No |
---
Create a product
```plaintext
POST /api/v1/create_product
```
Request form:
| Argument Name | Description | Required? |
| ------------- | ----------------------------- | --------- |
| upc | UPC of the product | Yes |
| brand | Brand which makes the product | Yes |
| name | Name of the product | Yes |
| size | Size of the product | Yes |
| sizeunit | Unit used in `size` | Yes |
| description | Description of the product | No |
---
Create a purchase
```plaintext
POST /api/v1/create_purchase
```
| Argument Name | Description | Required? |
| ------------- | -------------------------------------- | --------- |
| upc | UPC of the product which was purchased | Yes |
| quantity | Quantity of the product purchased | Yes |
| date | Date of this purchase | Yes |
| location | Location to link this purchase to | Yes |
---
Create a use
```plaintext
POST /api/v1/create_use
```
| Argument Name | Description | Required? |
| ------------- | --------------------------------- | --------- |
| upc | UPC of the product which was used | Yes |
| quantity | Quantity of the product used | Yes |
| date | Date of this usage | Yes |
| location | Location to link this usage to | Yes |