---
# System prepended metadata

title: Briyal API Document

---

# Briyal API Document

# Login
- [x]  Done

**Request**: /api/login
**Method**: POST

**Body**:
~~~ json
{
    "phone": "380508703698",
    "password": "11111111"
}
~~~
**Response**:
~~~
{
    "access_token": "6|vqIkUWE3z9nTMMr0JBx09LWPUKnsqEjAueBg7sR8",
    "token_type": "Bearer"
}
~~~

# Register
- [x]  Done

**Request**: /api/register
**Method**: POST

**Body**:
~~~ json
{
    "email": "ohteomel137@gmail.com",
    "address": "address1",
    "phone": "380508703698",
    "first_name": "firstN",
    "last_name": "lastN",
    "password": "11111111"
}
~~~
**Response**:
~~~
{
    "success": true,
    "data": {
        "user": {
            "customer_id": "FL599",
            "first_name": "firstN",
            "last_name": "lastN",
            "phone": "380508703698",
            "email": "ohteomel137@gmail.com",
            "confirmed": false,
            "updated_at": "2022-08-30T07:59:16.000000Z",
            "created_at": "2022-08-30T07:59:16.000000Z",
            "id": 2
        }
    }
}
~~~

## Account confirmation
**Request**: /api/account/confirmation
**Method**: POST

**Body**:
~~~ json
{
    "phone": "380508703698",
    "confirmation_code": "8299"
}
~~~
**Response**:
~~~
{
    "success": true,
    "data": {
        "access_token": "7|MAega0uxlWYfBgRDtyIl7Bm9o1GJvdSPhADU75gm"
    }
}
~~~

## Resend confirmation email
**Request**: /api/account/confirmation/resend
**Method**: POST

**Body**:
~~~ json
{
    "phone": "380508703698"
}
~~~
**Response**:
~~~
{
    "success": true,
    "data": []
}
~~~

# Reset Password
## Sending reset code
- [x]  DONE

#### Step 1:
Request: /api/password/forgot
method: POST
Body:

~~~ json
{
    "phone": "380508703698"
}
~~~
Response:

~~~ json
{
    "success": true,
    "data": "380508703698"
}
~~~

#### Step 2:
Request: /api/password/reset
method: POST
Body:

~~~ json
{
    "phone": "380508703698",
    "code": "7444",
    "password": "12345678"
}
~~~

Response:

~~~ json
{
    "success": true,
    "data": []
}
~~~

# User info
- [x]  Done

**Request**: /api/user
**Method**: GET
#### Need authorization

**Response**:
~~~
{
    "id": 9,
    "customer_id": "NL233",
    "first_name": "name2",
    "last_name": "last name3",
    "email": "ohteomel137@gmail.com",
    "phone": "380508703698",
    "address": null,
    "car_plate": null,
    "note": null,
    "email_verified_at": null,
    "confirmed": 1,
    "new_phone": null,
    "language": "english",
    "avatar": "646ac3d0b85a6.jpg",
    "role_id": 3,
    "status": 1,
    "created_at": "2023-05-17T00:49:43.000000Z",
    "updated_at": "2023-05-18T01:28:10.000000Z"
}
~~~

# User avatar

- [X]  Done

**Request**: /storage/avatars/{filename}

**Example**: /storage/avatars/646ac3d0b85a6.jpg

# Set/Update user avatar image

- [X]  Done

**Request**: /api/user/avatar
**Method**: POST
#### Need authorization

**Body**:
~~~ json
{
    "file": filedata
}
~~~
**Response**:
~~~
{
    "success": true
}
~~~

# Edit user data

- [X]  Done

**Request**: /api/user
**Method**: POST
#### Need authorization

**Body**:
~~~ json
{
    "first_name": "name2",
    "last_name": "last name3",
    "email": "ohteomel137@gmail.com",
    "phone": "380508703698",
    "language": "english"
}
~~~
**Response**:
~~~
{
    "success": true,
    'phone_changed' => true,
}
~~~
## Email Change Confirmation
### When "phone_changed" in previous is true

- [X]  Done

**Request**: /api/user/modify/confirm
**Method**: POST
#### Need authorization

**Body**:
~~~ json
{
    "confirmation_code": "7847"
}
~~~
**Response**:
~~~
{
    "success": true,
    "data": {
        "user": {
            "id": 9,
            "customer_id": "NL233",
            "first_name": "name2",
            "last_name": "last name3",
            "email": "ohteomel137@gmail.com",
            "phone": "380508703698",
            "address": null,
            "car_plate": null,
            "note": null,
            "email_verified_at": null,
            "confirmed": 1,
            "new_phone": null,
            "language": "english",
            "avatar": "",
            "role_id": 3,
            "status": 1,
            "created_at": "2023-05-17T00:49:43.000000Z",
            "updated_at": "2023-05-18T01:28:10.000000Z"
        }
    }
}
~~~


# Change password
- [x]  Done

**Request**: /api/user/password/change
**Method**: POST
#### Need authorization

**Body**:
~~~ json
{
    "old_password": "12345678",
    "new_password": "123456"
}
~~~
**Response**:
~~~
{
    "success": true,
    "data": []
}
~~~

# Remove user data
- [x]  Done

**Request**: /api/delete-user
**Method**: POST
#### Need authorization

**Body**:
~~~ json
{
    "password": "123456"
}
~~~
**Response**:
~~~
{
    "success": true
}
~~~
**Error**: Code 401
~~~
{
    "message": "Invalid password"
}
~~~
**Error**: Code 422
~~~
{
    "message": "The password field is required.",
    "errors": {
        "password": [
            "The password field is required."
        ]
    }
}
~~~
# Material Category list

- [X]  Done

**Request**: /api/materials/categories
**Method**: GET
**Response**:
~~~
{
    "success": true,
    "data": {
        "category_list": [
            {
                "id": 1,
                "name": "Plastic"
            }
        ]
    }
}
~~~
# Material list

- [X]  Done

**Request**: /api/materials
**Method**: GET
**Response**:
~~~
{
    "success": true,
    "data": {
        "min_request_cost": 100,
        "material_list": [
            {
                "id": 5,
                "name": "bootle",
                "unit": "unit",
                "user_price": 12,
                "collector_price": 13,
                "image_file": "bottle.jfif"
            }
        ]
    }
}
~~~
# Material image

- [X]  Done

**Request**: /storage/materials/{filename}

**Example**: /storage/materials/bottle.jfif

# Transaction and wallet info
- [x]  Done

**Request**: /api/transactions
**Method**: GET
#### Need authorization

**Response**:
~~~
{
    "success": true,
    "data": {
        "wallet_value": 300,
        "transaction_list": [
            {
                "id": 1,
                "request_id": null,
                "wallet_before": 0,
                "value": 500,
                "type": "ADJUSTMENT"
            },
            {
                "id": 2,
                "request_id": null,
                "wallet_before": 500,
                "value": -200,
                "type": "DEPOSIT"
            }
        ]
    }
}
~~~

# Create Pickup Request
- [x]  Done

**Request**: /api/request/create
**Method**: POST
#### Need authorization

**Body**:
~~~ json
{
    "coordinate": "coord",
    "streetAddress": "street",
    "districtAddress": "dist",
    "note": "123",
    "item_list": [
        {
            "id": 2, //Material id
            "count": 6
        },
        {
            "id": 3,
            "count": 1
        }
    ]
}
~~~

**Response**:
~~~
{
    "success": true
}
~~~
**Error**:
~~~
{
    "message": "You should collect at least 100 SAR worth of recyclable materials!",
    "errors": {
        "item_list": [
            "You should collect at least 100 SAR worth of recyclable materials!"
        ]
    }
}
~~~

# Requests list
- [x]  Done

**Request**: /api/request
**Method**: GET
#### Need authorization

**Response**:
~~~
{
    "success": true,
    "data": {
        "request_list": [
            {
                "id": 1,
                "user_id": 10,
                "collector_id": null,
                "total_price": 152,
                "status": "NEW",
                "address": null,
                "coordinate": "coord",
                "streetAddress": "street",
                "districtAddress": "dist",
                "note": "123",
                "created_at": "2023-06-05T01:32:01.000000Z",
                "updated_at": "2023-06-05T01:32:01.000000Z",
                "item_list": [
                    {
                        "id": 1,
                        "material_id": 2,
                        "count": 6,
                        "cost": 72,
                        "approved": 0
                    },
                    {
                        "id": 2,
                        "material_id": 3,
                        "count": 1,
                        "cost": 80,
                        "approved": 0
                    }
                ]
            }
        ]
    }
}
~~~