All Request except "/register" and "/login" must use a bearer token or (alternatively) a header that contains "authorization", with the key value "Bearer {token}"
All Request from admins "/admins" except "/autologin", "/register" and "/login" must use an additional info at its header which is "api-key" with the key value "RAHASIA"
Request :
- Method : POST
- Endpoint :
/api/users/register - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date",
"bearerToken" : "string"
}
}Request :
- Method : POST
- Endpoint :
/api/users/login - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"email" : "string",
"password" : "string"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date",
"bearerToken" : "string"
}
}Request :
- Method : GET
- Endpoint :
/api/users/autologin - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : DELETE
- Endpoint :
/api/users/logout - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : GET
- Endpoint :
/api/users/{user_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/users/{user_id} - Header :
- Accept: applications/json
- Query Param :
- size: number,
- page: number
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
},
{
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
]
}Request :
- Method : PUT
- Endpoint :
/api/users/{user_id} - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"user_id" : "integer, unique",
"nama" : "string",
"email" : "string",
"password" : "string",
"no_telpon" : "string",
"alamat" : "string",
"point" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : DELETE
- Endpoint :
/api/users/{user_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : POST
- Endpoint :
/api/offers - Header :
- Content-Type: application/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"offer_id" : "integer, unique",
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/offers/{offer_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/offers - Header :
- Accept: applications/json
- Query Param :
- Filter-Jenis: string
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"offer_id" : "integer, unique",
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date",
"createdAt" : "date",
"updatedAt" : "date"
},
{
"offer_id" : "integer, unique",
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date",
"createdAt" : "date",
"updatedAt" : "date"
}
]
}Request :
- Method : PUT
- Endpoint :
/api/offers/{offer_id} - Header :
- Content-Type: application/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"offer_id" : "integer, unique",
"nama" : "string",
"isActive" : "boolean",
"jenis" : ["barang", "duit"],
"hadiah" : "string",
"persyaratan" : "integer",
"tanggalExpire" : "date",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : DELETE
- Endpoint :
/api/offers/{offer_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : POST
- Endpoint :
/api/redeemed_offer - Header :
- Content-Type: application/json
- Accept: applications/json
- Body :
{
"user_id" : "integer",
"offer_id" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"id" : "integer, unique",
"user" : "User",
"offer" : "Offer",
"date_redeemed" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/redeemed_offer/{user_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"id" : "integer, unique",
"user" : "User",
"offer" : "Offer",
"date_redeemed" : "date"
},
{
"id" : "integer, unique",
"user" : "User",
"offer" : "Offer",
"date_redeemed" : "date"
}
]
}Request :
- Method : POST
- Endpoint :
/api/jenis_sampah - Header :
- Content-Type: application/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"harga" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"jenis_sampah_id" : "integer, unique",
"nama" : "string",
"harga" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/jenis_sampah/{jenis_sampah_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"jenis_sampah_id" : "integer, unique",
"nama" : "string",
"harga" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/jenis_sampah - Header :
- Accept: applications/json
- Query Param :
- filter_nama: "string"
- filter_harga: "integer"
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"jenis_sampah_id" : "integer, unique",
"nama" : "string",
"harga" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
},
{
"jenis_sampah_id" : "integer, unique",
"nama" : "string",
"harga" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
]
}Request :
- Method : PUT
- Endpoint :
/api/jenis_sampah/{jenis_sampah_id} - Header :
- Content-Type: application/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"harga" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"jenis_sampah_id" : "integer, unique",
"nama" : "string",
"harga" : "integer",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : DELETE
- Endpoint :
/api/jenis_sampah/{jenis_sampah_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : POST
- Endpoint :
/api/bank_sampah - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"lokasi" : "string"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"bank_sampah_id" : "integer, unique",
"nama" : "string",
"lokasi" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : PUT
- Endpoint :
/api/bank_sampah/{bank_sampah_id} - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"lokasi" : "string"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"bank_sampah_id" : "integer, unique",
"nama" : "string",
"lokasi" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/bank_sampah/{bank_sampah_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"bank_sampah_id" : "integer, unique",
"nama" : "string",
"lokasi" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/bank_sampah/{bank_sampah_id} - Header :
- Accept: applications/json
- Query Param:
- filter_nama: string,
- filter_lokasi: string,
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"bank_sampah_id" : "integer, unique",
"nama" : "string",
"lokasi" : "string",
"createdAt" : "date",
"updatedAt" : "date"
},
{
"bank_sampah_id" : "integer, unique",
"nama" : "string",
"lokasi" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
]
}Request :
- Method : GET
- Endpoint :
/api/bank_sampah/{bank_sampah_id}/admins - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date"
},
{
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
]
}Request :
- Method : DELETE
- Endpoint :
/api/bank_sampah/{bank_sampah_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : POST
- Endpoint :
/api/admins/register - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"nama" : "string",
"email" : "string",
"password" : "string",
"bank_sampah_id" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date",
"bearerToken" : "string",
"apiKey" : "string"
}
}Request :
- Method : POST
- Endpoint :
/api/admins/login - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"email" : "string",
"password" : "string"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date",
"bearerToken" : "string",
"apiKey" : "string"
}
}Request :
- Method : GET
- Endpoint :
/api/admins/autologin - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
}Request :
- Method : DELETE
- Endpoint :
/api/admins/logout - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : GET
- Endpoint :
/api/admins - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date"
},
{
"admin_id" : "integer, unique",
"bank_sampah_id" : "integer",
"nama" : "string",
"email" : "string",
"password" : "string",
"createdAt" : "date",
"updatedAt" : "date"
}
]
}Request :
- Method : PUT
- Endpoint :
/api/admins/selesaikan_transaksi/{transaksi_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}Request :
- Method : DELETE
- Endpoint :
/api/admins/{admin_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string"
}(pr kebawah buat dicek)
Request :
- Method : POST
- Endpoint :
/api/transaksi - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"user_id" : "integer",
"admin_id" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"transaksi_id" : "integer,unique",
"user" : "User",
"admin" : "Admin",
"total_poin" : "integer",
"total_kuantitas" : "integer",
"tanggal_transaksi" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/transaksi/{transaksi_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : {
"transaksi_id" : "integer,unique",
"user" : "User",
"admin" : "Admin",
"total_poin" : "integer",
"total_kuantitas" : "integer",
"tanggal_transaksi" : "date"
}
}Request :
- Method : GET
- Endpoint :
/api/transaksi - Header :
- Accept: applications/json
- Query Param :
- filter_user_id: Int
- filter_admin_id: Int
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"transaksi_id" : "integer,unique",
"user" : "User",
"admin" : "Admin",
"total_poin" : "integer",
"total_kuantitas" : "integer",
"tanggal_transaksi" : "date"
},
{
"transaksi_id" : "integer,unique",
"user" : "User",
"admin" : "Admin",
"total_poin" : "integer",
"total_kuantitas" : "integer",
"tanggal_transaksi" : "date"
}
]
}Request :
- Method : GET
- Endpoint :
api/transaksi/list_jenis_sampah/{transaksi_id} - Header :
- Accept: applications/json
Response :
{
"code" : "number",
"status" : "string",
"data" : [
{
"id" : "integer,unique",
"jenis_sampah" : "JenisSampah",
"kuantitas" : "integer",
"poin" : "integer"
},
{
"id" : "integer,unique",
"jenis_sampah" : "JenisSampah",
"kuantitas" : "integer",
"poin" : "integer"
}
]
}Request :
- Method : POST
- Endpoint :
/api/transaksi_jenis_sampah - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"transaksi_id" : "integer",
"jenis_sampah_id" : "integer",
"kuantitas" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"id" : "integer,unique",
"jenis_sampah" : "JenisSampah",
"kuantitas" : "integer",
"poin" : "integer"
}
}Request :
- Method : PUT
- Endpoint :
/api/transaksi_jenis_sampah/{transaksi_jenis_sampah_id} - Header :
- Content-Type: applications/json
- Accept: applications/json
- Body :
{
"kuantitas" : "integer"
}Response :
{
"code" : "number",
"status" : "string",
"data" : {
"id" : "integer,unique",
"jenis_sampah" : "JenisSampah",
"kuantitas" : "integer",
"poin" : "integer"
}
}