# Machine Management API
## 1. User Token API
```json
API URL: http://172.104.163.254:8000/api/v1/users/token/
METHOD: POST
REQUEST BODY:
{
"username": "shafik",
"password": "shafik"
}
RESPONSE:
{
"success": true,
"message": "Status OK",
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyLCJ1c2VybmFtZSI6InNoYWZpayIsImV4cCI6MTYyNzY1ODc3NywiZW1haWwiOm51bGwsIm9yaWdfaWF0IjoxNjI3NjU4NDc3fQ.4ZXXT_Wvh8VSbn0kJaKS2GNrN_Svanb6B9_OL7X2RF8",
"groups": [
"Employee"
]
}
}
```
> **All APIs will be called with the token in authorization header:**
> **Example: Authorization: jwt <token>**
## 2. Machine List API
```json
API URL: http://172.104.163.254:8000/api/v1/machines
METHOD: GET
RESPONSE: (NO PAGIANTION)
{
"success": true,
"message": "Status OK",
"data": [
{
"name": "Cleaning Machine",
"machine_no": 1
},
{
"name": "Blending Machine",
"machine_no": 2
},
{
"name": "Lap Former",
"machine_no": 3
},
{
"name": "Carding",
"machine_no": 4
},
{
"name": "Drawing Machin",
"machine_no": 5
},
{
"name": "Simplex Machine",
"machine_no": 6
},
{
"name": "Ring Frame",
"machine_no": 7
}
]
}
```
## 3. Machine Data API
```json
API URL: http://172.104.163.254:8000/api/v1/machines/data
METHOD: GET
Pagination Query Params:
for page size limit use -> page_size . exmaple: ?page_size=12
for page number use -> page. exmaple: ?page=1
Filtering Query Params:
-start=<isoformat> example: start=2021-11-25T14:00:00
-end=<isoformat> example: start=2021-11-26T23:00:00
-machine_no=<can be select multiple machine no and will be seperated by hyphen(-). example: machine_no=3-5-11
-machine_status=on or off. exmaple: machine_status=on
Response:
{
"success": true,
"meta_data": {
"count": 10,
"page_size": 12,
"next": null,
"previous": null
},
"data": [
{
"machine_no": 1,
"machine_status": "off",
"start": "2021-07-29T20:03:49.004069",
"end": "2021-07-29T20:03:56.173286",
"total_minutes": 0.12
},
{
"machine_no": 4,
"machine_status": "on",
"start": "2021-07-29T20:04:29.978241",
"end": "2021-07-29T20:04:44.619855",
"total_minutes": 0.24
},
{
"machine_no": 1,
"machine_status": "on",
"start": "2021-07-29T20:04:15.648089",
"end": "2021-07-29T20:33:44.991878",
"total_minutes": 29.49
},
{
"machine_no": 2,
"machine_status": "on",
"start": "2021-07-29T20:04:22.447368",
"end": "2021-07-29T20:34:57.146777",
"total_minutes": 30.58
},
{
"machine_no": 3,
"machine_status": "on",
"start": "2021-07-29T20:04:26.332287",
"end": "2021-07-29T20:36:19.414754",
"total_minutes": 31.88
},
{
"machine_no": 3,
"machine_status": "off",
"start": "2021-07-29T20:36:26.112025",
"end": "2021-07-29T21:22:00.186622",
"total_minutes": 45.57
},
{
"machine_no": 3,
"machine_status": "on",
"start": "2021-07-29T21:32:56.985757",
"end": "2021-07-29T21:32:56.985757",
"total_minutes": 5.0
},
{
"machine_no": 4,
"machine_status": "off",
"start": "2021-07-29T21:34:41.900169",
"end": "2021-07-29T21:34:41.900169",
"total_minutes": 5.0
},
{
"machine_no": 2,
"machine_status": "off",
"start": "2021-07-29T21:37:20.675614",
"end": "2021-07-29T21:37:20.675614",
"total_minutes": 5.0
},
{
"machine_no": 5,
"machine_status": "on",
"start": "2021-07-29T21:37:52.883013",
"end": "2021-07-29T21:37:52.883013",
"total_minutes": 5.0
}
]
}
```
## 4. Machine Data Analytics API
```json
API URL: http://172.104.163.254:8000/api/v1/machines/analytics
METHOD: GET
Filtering Query Params:
-start=<isoformat> example: start=2021-11-25T14:00:00
-end=<isoformat> example: start=2021-11-26T23:00:00
-machine_no=<can be select multiple machine no and will be seperated by hyphen(-). example: machine_no=3-5-11
-order=asc/desc | asc = least to most, desc = most to least
RESPONSE:
{
"success": true,
"message": "Status OK",
"data": [
{
"machine_no": 1,
"total_on_time": 29.49,
"total_off_time": 0.12,
"efficiency": 99.59473150962513
},
{
"machine_no": 2,
"total_on_time": 30.58,
"total_off_time": 5.0,
"efficiency": 85.94716132658797
},
{
"machine_no": 3,
"total_on_time": 36.879999999999995,
"total_off_time": 45.57,
"efficiency": 44.7301394784718
},
{
"machine_no": 4,
"total_on_time": 0.24,
"total_off_time": 5.0,
"efficiency": 4.580152671755725
},
{
"machine_no": 5,
"total_on_time": 5.0,
"total_off_time": null,
"efficiency": null
}
]
}
```
## 5.Offline Devices API
```json
API URL: http://172.104.163.254:8000/api/v1/machines/data?status=offline
METHOD: GET
RESPONSE:
{
"success": true,
"meta_data": {
"count": 10,
"page_size": 12,
"next": null,
"previous": null
},
"data": [
{
"machine_no": 1,
"machine_status": "off",
"start": "2021-07-29T20:03:49.004069",
"end": "2021-07-29T20:03:56.173286",
"total_minutes": 0.12
},
{
"machine_no": 4,
"machine_status": "on",
"start": "2021-07-29T20:04:29.978241",
"end": "2021-07-29T20:04:44.619855",
"total_minutes": 0.24
}
]
}
```
## 6. Machine Data Total Efficency API
```json
API URL: http://172.104.163.254:8000/api/v1/machines/total-analytics
METHOD: GET
Filtering Query Params:
-start=<isoformat> example: start=2021-11-25T14:00:00
-end=<isoformat> example: start=2021-11-26T23:00:00
-machine_no=<can be select multiple machine no and will be seperated by hyphen(-). example: machine_no=3-5-11
-is_order=true (for ordering most efficent machine to least efficent machine)
Response:
{
"success": true,
"message": "Status OK",
"data": {
"total_on_time": 102.19,
"total_off_time": 55.69,
"efficiency": 64.73,
"start": "2021-07-29T20:03:49.004069",
"end": "2021-07-29T21:37:52.883013"
}
}
```