# Api's
```
base_url: http://127.0.0.1:8000/api/v1
```
## Customer Registration
* **<base_url>/auth/register/**
```
request_method--POST
Status Code: 201
Example Request Body:
{
"phone":"01516100100",
"name":"Ikram Khan",
"password":"123456"
}
Example Response Body:
{
"message": "Registartion Successful"
}
```
## OTP verification
* **<base_url>/auth/verify-otp/**
```
request_method--POST
Status Code: 200
Example Request Body:
{
"phone":"01516100100",
"otp":"438132"
}
Example Response Body:
{
"message": "Verification Successful"
}
```
## Get Token
* **<base_url>/auth/token/**
```
request_method--POST
Status Code: 200
Example Request Body:
{
"phone": "01516100273",
"password":"test@1234"
}
Example Response Body:
{
"token": {
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYzNDI0MTY0OCwianRpIjoiNTMyNDY4ZWVlMDQyNDY3NDk2ZGM1MDUzN2E3NTNjMTAiLCJ1c2VyX2lkIjoxfQ.3qJIZGWIckVhl7seKE5bCMer5vEQnjw8D409HtEEqTI",
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjM0MTU1ODQ4LCJqdGkiOiIyZWJmOWY2Mzc5ZWE0NDIxYmMwNWFmM2VlZjJlM2JlNiIsInVzZXJfaWQiOjF9.I5lXK8e76fOKW23ceX28ixbVl9mOMXJhqyWZ0y6qB2w"
}
}
```
## Get New access token using refresh token
* **<base_url>/auth/refresh/**
```
request_method--POST
Status Code: 200
Example Request Body:
{
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYzNDI0NDE2MiwianRpIjoiODgzMDM2MWI4NWU5NDI4NjlhMTgwMmYwOTdiYjZlMzQiLCJ1c2VyX2lkIjoxfQ.jhTiok50gGwqUWsgTV7cDh3cV7aCmOBtBuygXw8jhS8"
}
Example Response Body:
{
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjM0MTU4Mzc5LCJqdGkiOiJjNjdmZDkyMzQ5MDY0Njc2YTMwYWM4NDJjOTNkZGFlMCIsInVzZXJfaWQiOjF9.n7LTIA5FAs5Syi97l19Pp5-CoA5X7VTg7LTbhEPe01c"
}
```
## Add Phone No
* **<base_url>/auth/add-phone-no/**
```
request_method--POST
--header
Authorization: bearer {token}
Status Code: 201
Example Request Body:
{
"phone":"01917100100"
}
Example Response Body:
{
"message": "Phone No added Successfully, Please verify it via otp"
}
```
## Make Primary Phone No
* **<base_url>/auth/make-primary-phone/**
```
request_method--POST
--header
Authorization: bearer {token}
Status Code: 201
Example Request Body:
{
"phone":"01917822808"
}
Example Response Body:
{
"message": "Now 01917822808 is your primary phone no"
}
```
## View All Plans
* **<base_url>/plans/**
```
request_method--GET
--header
Authorization: bearer {token}
Status Code: 200
Example Response Body:
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"name": "Globalnet Bronze",
"amount": "500.00",
"payment_cycle": 30,
"total_valid_months": 12,
"is_cancellable": false
},
{
"id": 2,
"name": "Globalnet Sliver",
"amount": "750.00",
"payment_cycle": 30,
"total_valid_months": 12,
"is_cancellable": false
},
{
"id": 3,
"name": "Globalnet Gold",
"amount": "1200.00",
"payment_cycle": 30,
"total_valid_months": 12,
"is_cancellable": true
}
]
}
```
## View Plan Details
* **<base_url>/plans/1/**
```
request_method--GET
--header
Authorization: bearer {token}
Status Code: 200
Example Response Body:
{
"id": 1,
"name": "Globalnet Bronze",
"amount": "500.00",
"payment_cycle": 30,
"total_valid_months": 12,
"is_cancellable": false
}
```
## Save Plan (Only for superuser)
* **<base_url>/plans/**
```
request_method--POST
--header
Authorization: bearer {token}
Status Code: 201
Example Request Body:
{
"name":"Globalnet Gold",
"amount":1200,
"is_cancellable":true
}
**Some Optional Parameters:**
is_cancellable : default false
payment_cycle: int, default 30
total_valid_months: int, default 12
Example Response Body:
{
"id": 3,
"name": "Globalnet Gold",
"amount": "1200.00",
"payment_cycle": 30,
"total_valid_months": 12,
"is_cancellable": true
}
```
## Update Plan (Only for superuser)
* **<base_url>/plans/<int:plan_id>**
```
request_method--PUT/PATCH
--header
Authorization: bearer {token}
Status Code: 200
Example Request Body:
{
"name": "Globalnet Gold",
"amount":1500
}
Example Response Body:
{
"id": 3,
"name": "Globalnet Gold",
"amount": "1500.00",
"payment_cycle": 30,
"total_valid_months": 12,
"is_cancellable": true
}
```
## Delete Plan (Only for superuser)
* **<base_url>/plans/<int:plan_id>**
```
request_method--DELETE
--header
Authorization: bearer {token}
Status Code: 204
```
## Purchase Plan
* **<base_url>/purchase-plan/**
```
request_method--POST
--header
Authorization: bearer {token}
Status Code: 201
Example Request Body:
{
"plan":1
}
Example Response Body:
{
"message": "Purchase Plan Successful",
"data": {
"id": 5,
"plan_id": 1,
"start_date": "2021-10-14",
"end_date": "2022-10-09",
"is_active": true,
"plan_name": "Globalnet Bronze",
"plan_amount": 500.0,
"plan_months_validity": 12,
"plan_payment_cycle": 30,
"plan_cancellable": false
}
}
```
## Cancel Plan
* **<base_url>/cancel-plan/<id:customer_plan_id>**
```
request_method--POST
--header
Authorization: bearer {token}
Status Code: 201
Example Requested url:
<base_url>/cancel-plan/5
Example Response Body:
{
"message": "Plan is not cancellable",
"data": {
"id": 5,
"plan_id": 1,
"start_date": "2021-10-14",
"end_date": "2022-10-09",
"is_active": true,
"plan_name": "Globalnet Bronze",
"plan_amount": 500.0,
"plan_months_validity": 12,
"plan_payment_cycle": 30,
"plan_cancellable": false
}
}
```