# PV API Documentation
[](https://app.getpostman.com/run-collection/25421984-e0274bd5-4f57-4dfa-9688-947707a5864f?action=collection%2Ffork&collection-url=entityId%3D25421984-e0274bd5-4f57-4dfa-9688-947707a5864f%26entityType%3Dcollection%26workspaceId%3Dc3e8b60f-2f03-4663-8945-0234e292482b)
<!--ts-->
* [Authentication](#authentication)
* [User](#user)
* [POST /register](#post-register)
* [POST /login](#post-login)
* [GET /refresh](#get-refresh)
* [DELETE /logout](#delete-logout)
* [PUT /:id/change-password](#put-idchange-password)
* [GET /user/:id](#get-userid)
* [PUT /user/:id](#put-userid)
* [DELETE /user/:id](#delete-userid)
* [GET /](#get-)
* [Plant](#plant)
* [GET /](#get--1)
* [POST /](#post-)
* [GET /:id](#get-id)
* [PUT /:id](#put-id)
* [DELETE /:id](#delete-id)
* [Payment](#payment)
* [POST /](#post--1)
<!--te-->
Authentication
============
| Header | Content |
| ------------- | ------- |
| authorization | accessToken |
User
============
### POST /register
| End Point | Method | Body |
|-|-|-|
| /user/register | post | username*, password*, alamat_user, no\_hp\_user, saldo_user, pengeluaran_user, total\_pengeluaran\_user, estimasi\_pengeluaran\_harian, estimasi\_pengeluaran\_bulanan, estimasi\_pengeluaran\_tahunan, total\_penghematan\_harian, total\_penghematan\_bulanan, total\_penghematan\_tahunan, |
#### Response:
```json
{
"message": "User created succesfully",
"newUser": {
"username": "xirkatest",
"password": "$2b$10$p3FExqwhYB8bOAvKluK.ReM6xVQVxLZHVxvb5KOUeS6mv.9emGxIK",
"alamat_user": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"no_hp_user": "08123456789",
"saldo_user": 100,
"pengeluaran_user": 200,
"total_pengeluaran_user": 400,
"estimasi_pengeluaran_harian": 50,
"estimasi_pengeluaran_bulanan": 600,
"estimasi_pengeluaran_tahunan": 400,
"total_penghematan_harian": 100,
"total_penghematan_bulanan": 900,
"total_penghematan_tahunan": 8000,
"_id": "63e1fafa3b72759439fc5ceb",
"__v": 0
}
}
```
---
### POST /login
| End Point | Method | Body |
|-|-|-|
| /user/login | post | username*, password* |
#### Response:
```json
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InVzZXJuYW1lIjoieGlya2F0ZXN0In0sImlhdCI6MTY3NTc1NDk3MywiZXhwIjoxNjc1NzU1NTMzfQ.PTDA-5AID_BqUeOGp1FbfxdeUGcuENzvUyVHhRtTZ64"
}
```
#### Cookies
`jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InVzZXJuYW1lIjoieGlya2F0ZXN0In0sImlhdCI6MTY3NTc1NDk3MywiZXhwIjoxNjc1NzYwMDkzfQ.WFW26UmVl0cWwg9x-i95CdPpj-PV0rmGgbo9fL4uWCw; Path=/; HttpOnly; Expires=Wed, 08 Feb 2023 07:29:33 GMT;`
---
### GET /refresh
| End Point | Method | Body |
|-|-|-|
| /user/refresh | get | set cookies, jwt=token|
#### Response:
```json
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiaWF0IjoxNjc1NzU1NDc5LCJleHAiOjE2NzU3NTYwMzl9.OpBvDArzyYa_k5ZRMTD1PYOt6OJ6YZUkY6pvrZlacgQ"
}
```
---
### DELETE /logout
| End Point | Method | Body |
|-|-|-|
| /user/logout | delete | set cookies, jwt=token |
#### Response:
```json
{
"message": "Logged out successfully"
}
```
#### Cookies:
Cookies otomatis terhapus
---
### PUT /:id/change-password
| End Point | Method | Body |
|-|-|-|
| /user/:id/change-password | put | username*, currentPassword*, newPassword*, |
#### Response:
```json
{
"message": "Password changed successfully"
}
```
---
### GET /user/:id
| End Point | Method | Body |
|-|-|-|
| /user/:id/ | get | none |
#### Response:
```json
{
"_id": "63e1fafa3b72759439fc5ceb",
"username": "xirkatest",
"password": "$2b$10$p3FExqwhYB8bOAvKluK.ReM6xVQVxLZHVxvb5KOUeS6mv.9emGxIK",
"alamat_user": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"no_hp_user": "08123456789",
"saldo_user": 100,
"pengeluaran_user": 200,
"total_pengeluaran_user": 400,
"estimasi_pengeluaran_harian": 50,
"estimasi_pengeluaran_bulanan": 600,
"estimasi_pengeluaran_tahunan": 400,
"total_penghematan_harian": 100,
"total_penghematan_bulanan": 900,
"total_penghematan_tahunan": 8000,
"__v": 0
}
```
---
### PUT /user/:id
| End Point | Method | Body |
|-|-|-|
| /user/:id/ | put | username, alamat_user, no\_hp\_user, saldo_user, pengeluaran_user, total\_pengeluaran\_user, estimasi\_pengeluaran\_harian, estimasi\_pengeluaran\_bulanan, estimasi\_pengeluaran\_tahunan, total\_penghematan\_harian, total\_penghematan\_bulanan, total\_penghematan\_tahunan, |
#### Response:
```json
{
"message": "User updated succesfully.",
"updatedUser": {
"_id": "63e1fafa3b72759439fc5ceb",
"username": "xirkatest",
"password": "$2b$10$p3FExqwhYB8bOAvKluK.ReM6xVQVxLZHVxvb5KOUeS6mv.9emGxIK",
"alamat_user": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"no_hp_user": "08123456789",
"saldo_user": 300,
"pengeluaran_user": 200,
"total_pengeluaran_user": 400,
"estimasi_pengeluaran_harian": 50,
"estimasi_pengeluaran_bulanan": 600,
"estimasi_pengeluaran_tahunan": 400,
"total_penghematan_harian": 100,
"total_penghematan_bulanan": 900,
"total_penghematan_tahunan": 8000,
"__v": 0
}
}
```
---
### DELETE /user/:id
| End Point | Method | Body |
|-|-|-|
| /user/:id/ | delete | none |
#### Response:
```json
{
"message": "User deleted succesfully.",
"deletedUser": {
"_id": "63e2010fd10e251dc2c1cab4",
"username": "xirkatest2",
"password": "$2b$10$6oHD2CTmNgCl74d9bRrkmuEVbAnt5CDuoCgNKPKP53kU7hK93ceH2",
"alamat_user": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"no_hp_user": "08123456789",
"saldo_user": 100,
"pengeluaran_user": 200,
"total_pengeluaran_user": 400,
"estimasi_pengeluaran_harian": 50,
"estimasi_pengeluaran_bulanan": 600,
"estimasi_pengeluaran_tahunan": 400,
"total_penghematan_harian": 100,
"total_penghematan_bulanan": 900,
"total_penghematan_tahunan": 8000,
"__v": 0
}
}
```
---
### GET /
| End Point | Method | Body |
|-|-|-|
| /user | get | none |
#### Response:
```json
[
{
"_id": "63e1fafa3b72759439fc5ceb",
"username": "xirkatest",
"password": "$2b$10$p3FExqwhYB8bOAvKluK.ReM6xVQVxLZHVxvb5KOUeS6mv.9emGxIK",
"alamat_user": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"no_hp_user": "08123456789",
"saldo_user": 300,
"pengeluaran_user": 200,
"total_pengeluaran_user": 400,
"estimasi_pengeluaran_harian": 50,
"estimasi_pengeluaran_bulanan": 600,
"estimasi_pengeluaran_tahunan": 400,
"total_penghematan_harian": 100,
"total_penghematan_bulanan": 900,
"total_penghematan_tahunan": 8000,
"__v": 0
},
{
"_id": "63e2010fd10e251dc2c1cab4",
"username": "xirkatest2",
"password": "$2b$10$6oHD2CTmNgCl74d9bRrkmuEVbAnt5CDuoCgNKPKP53kU7hK93ceH2",
"alamat_user": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"no_hp_user": "08123456789",
"saldo_user": 100,
"pengeluaran_user": 200,
"total_pengeluaran_user": 400,
"estimasi_pengeluaran_harian": 50,
"estimasi_pengeluaran_bulanan": 600,
"estimasi_pengeluaran_tahunan": 400,
"total_penghematan_harian": 100,
"total_penghematan_bulanan": 900,
"total_penghematan_tahunan": 8000,
"__v": 0
}
]
```
---
Plant
============
### GET /
| End Point | Method | Body |
| --------- | ------ | ---- |
| /plant | get | none |
#### Response
```json
[
{
"_id": "63e2027dd10e251dc2c1cabf",
"plant_name": "xirkaplant",
"alamat_lokasi_plant": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"latitude_plant": 2312,
"longitude_plant": 21221,
"pv_capacity": 12,
"tanggal_instalasi": "2023-10-21T00:00:00.000Z",
"suhu_plant": 12,
"today_kwh_load": 44,
"month_kwh_load": 65,
"total_kwh_load": 98,
"fund_revenue": 2000,
"__v": 0
},
{
"_id": "63e2029cd10e251dc2c1cac2",
"plant_name": "xirkaplant2",
"alamat_lokasi_plant": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"latitude_plant": 2312,
"longitude_plant": 21221,
"pv_capacity": 12,
"tanggal_instalasi": "2023-10-21T00:00:00.000Z",
"suhu_plant": 12,
"today_kwh_load": 44,
"month_kwh_load": 65,
"total_kwh_load": 98,
"fund_revenue": 2000,
"__v": 0
}
]
```
---
### POST /
| End Point | Method | Body |
| --------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /plant | post | plant_name, alamat\_lokasi\_plant, latitude_plant, longitude_plant, pv_capacity, tanggal_instalasi, suhu_plant, today\_kwh\_load, month\_kwh\_load, total\_kwh\_load, fund_revenue |
#### Response
```json
{
"message": "Plant created succesfully",
"newPlant": {
"plant_name": "xirkaplant",
"alamat_lokasi_plant": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"latitude_plant": 2312,
"longitude_plant": 21221,
"pv_capacity": 12,
"tanggal_instalasi": "2023-10-21T00:00:00.000Z",
"suhu_plant": 12,
"today_kwh_load": 44,
"month_kwh_load": 65,
"total_kwh_load": 98,
"fund_revenue": 2000,
"_id": "63e2027dd10e251dc2c1cabf",
"__v": 0
}
}
```
---
### GET /:id
| End Point | Method | Body |
| ---------- | ------ | ---- |
| /plant/:id | get | none |
#### Response
```json
{
"_id": "63e2027dd10e251dc2c1cabf",
"plant_name": "xirkaplant",
"alamat_lokasi_plant": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"latitude_plant": 2312,
"longitude_plant": 21221,
"pv_capacity": 12,
"tanggal_instalasi": "2023-10-21T00:00:00.000Z",
"suhu_plant": 12,
"today_kwh_load": 44,
"month_kwh_load": 65,
"total_kwh_load": 98,
"fund_revenue": 2000,
"__v": 0
}
```
---
### PUT /:id
| End Point | Method | Body |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /plant/:id | put | plant_name, alamat\_lokasi\_plant, latitude_plant, longitude_plant, pv_capacity, tanggal_instalasi, suhu_plant, today\_kwh\_load, month\_kwh\_load, total\_kwh\_load, fund_revenue |
#### Response
```json
{
"message": "Plant updated succesfully.",
"updatedPlant": {
"_id": "63e2027dd10e251dc2c1cabf",
"plant_name": "xirkaplant",
"alamat_lokasi_plant": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"latitude_plant": 2312,
"longitude_plant": 21221,
"pv_capacity": 12,
"tanggal_instalasi": "2023-10-21T00:00:00.000Z",
"suhu_plant": 12,
"today_kwh_load": 44,
"month_kwh_load": 65,
"total_kwh_load": 98,
"fund_revenue": 4000,
"__v": 0
}
}
```
---
### DELETE /:id
| End Point | Method | Body |
| ---------- | ------ | ---- |
| /plant/:id | delete | none |
#### Response
```json
{
"message": "Plant deleted succesfully.",
"deletedPlant": {
"_id": "63e2027dd10e251dc2c1cabf",
"plant_name": "xirkaplant",
"alamat_lokasi_plant": "Kompleks Puri Syailendra Jl. Lemah Neundeut No.Kav-30, Sukawarna, Setrasari, West Java",
"latitude_plant": 2312,
"longitude_plant": 21221,
"pv_capacity": 12,
"tanggal_instalasi": "2023-10-21T00:00:00.000Z",
"suhu_plant": 12,
"today_kwh_load": 44,
"month_kwh_load": 65,
"total_kwh_load": 98,
"fund_revenue": 4000,
"__v": 0
}
}
```
---
Payment
============
### POST /
| End Point | Method | Body |
| --------- | ------ | ---- |
| /payment | post | https://snap-docs.midtrans.com/#request-body-json-parameter |
#### Response
```json
{
"message": "Transaction created succesfully",
"transaction": {
"token": "be3c4810-716b-41f5-aadb-b1a27bbf1425",
"redirect_url": "https://app.sandbox.midtrans.com/snap/v3/redirection/be3c4810-716b-41f5-aadb-b1a27bbf1425"
}
}
```
---