# chef APIs ## fields attributes - orderId - orderNumber - pickupTime - deliveryTime - expectedDeclineTime - readyTime - totalPrice - type - cooking - isLate ## sort attributes - orderId (default, ascending) - pickupTime - statusTime ## filter attributes - orderId - orderNumber - status : filter[status]=1 OR filter[status]=1, 2, 3 - createdOnFrom : Y-m-d 20-12-30 - createdOnTo : Y-m-d 20-12-30 - pickupTimeFrom : Y-m-d 20-12-30 - pickupTimeTo : Y-m-d 20-12-30 - late: 0 or 1 ## expand attributes - status - label - code - comment - time - customer - name - phone - driver - name - phone - rate - location - latitude - longitude - address - dishes - name - note - quantity - pricePerDish - total - variety - cookingOptions - name - customerOptions - name - quantity - addOns - adddonId - name - ## Pagination ``` X-Pagination-Total-Count: '1593' X-Pagination-Page-Count: '80' X-Pagination-Current-Page: '1' X-Pagination-Per-Page: '20' Link: ' <http://chefapi.chefz.local/v1/orders?page=1>; rel=self, <http://chefapi.chefz.local/v1/orders?page=2>; rel=next, <http://chefapi.chefz.local/v1/orders?page=80>; rel=last ' ``` ## Examples - **List all orders :** */v1/orders* ``` [ { "orderId": 396004, "orderNumber": "279964", "pickupTime": 1598375340, "deliveryTime": 1598376600, "expectedDeclineTime": 1598272309, "totalPrice": "525", "type": 1, "cooking": 0 }, ] ``` - **list all orders with getting related dishes object:** */v1/orders?expand=dishes* ``` [ { "orderId": 396004, "orderNumber": "279964", "pickupTime": 1598375340, "deliveryTime": 1598376600, "expectedDeclineTime": 1598272309, "totalPrice": "525", "type": 1, "cooking": 0, "dishes": [ { "name": "Lunch Box A - لانش بوكس A", "note": null, "quantity": 7, "pricePerDish": "69", "total": "485", "variety": null, "customerOptions": [ { "name": "test 1", "quantity": 1 }, { "name": "test 2", "quantity": 2 } ], "cookingOptions": [ { "name": "test 1" } ], "addOns": { "adddonId": 1, "name": "Test Addon" } } ] }, ] ``` - **List orders with customer's object getting only orderId from fields:** */v1/orders?expand=customer&fields=orderId* ``` [ { "orderId": 396004, "customer": { "name": "TEST CUSTOMER 11", "phone": "0512345673" } }, ... ] ``` - **List orders getting customer, driver & status objects getting orderId from order and customer name from the customer's object:** */v1/orders?expand=customer,driver,status&fields=orderId,customer.name* ``` [ { "orderId": 395771, "status": { "label": "Delivered", "code": 7, "comment": null, "time": 1587864006 }, "customer": { "name": "Ajlan" }, "driver": { "name": "test", "phone": "12345678", "rate": "5", } }, { "orderId": 395702, "status": { "label": "Delivered", "code": 7, "comment": null, "time": 1587860265 }, "customer": { "name": "Aziz" }, "driver": null } ... ] ``` - **List new orders (status = 1), between two pickup dates, getting orderId, pickuptime and only status object:** */v1/orders?expand=status&fields=orderId,pickupTime&filter[pickupTimeFrom]=01-10-2019&filter[pickupTimeTo]=01-12-2019&filter[status]=1* ``` [ { "orderId": 9, "pickupTime": 1496147280, "status": { "label": "Declined", "code": 4, "comment": "العميل طلب يكنسل الطلب", "time": 1496064899 } }, ... ] ``` - **List orders sorted by orderId descending:** */v1/orders?sort=-orderId* - **List orders sorted by pickupTime ascending:** */v1/orders?sort=pickupTime*