post('/order/items', function () { // Require the user to be logged in global $response; $this->requirePermission('add_order_items'); // Get the user object $user = (new authentication())->get_user(); // Check if the request was successful if ($user) { // Check if the required fields are set $data = json_decode(file_get_contents('php://input'), true); if (!isset($data['order_id'])) { $response->error('Order ID is required', 400); } if (!isset($data['product_id'])) { $response->error('Product ID is required', 400); } if (!isset($data['quantity'])) { $response->error('Quantity is required', 400); } // Make sure we don't add more than 200 items at a time if ($data['quantity'] > 199) { $response->error('Quantity is too high, please add less than 200 items at a time', 400); } // Add the order item to the order This is done individually, to make the notes to the individual order items possible for ($i = 0; $i < $data['quantity']; $i++) { (new order_items_o())->addItemToOrder($data['order_id'], $data['product_id'], $user->id); } // Return the list of departments $response->success( ['message' => 'Order items added'] ); } else { // Log the incident (new logs_o())->add('departments', 'global', 1, 0, 'ADD_ORDER_ITEMS', 'No user found, or invalid session'); // Return an error $response->error('Invalid session', 400); } }); $this->get('/order/items', function () { // Require the user to be logged in global $response; $this->requirePermission('list_order_items'); // Get the user object $user = (new authentication())->get_user(); // Check if the request was successful if ($user) { // Get the post data $data = $_GET; // Check if the required fields are set if (!(int)$data['order_id']) { $response->error('Order ID is required', 400); } // Return the list of departments $response->success( (new orders_o())->getOrderItems($data['order_id']) ); } else { // Log the incident (new logs_o())->add('departments', 'global', 1, 0, 'LIST_ORDER_ITEMS', 'No user found, or invalid session'); // Return an error $response->error('Invalid session', 400); } }); $this->delete('/order/items', function () { // Require the user to be logged in global $response; $this->requirePermission('delete_order_items'); // Get the user object $user = (new authentication())->get_user(); // Check if the request was successful if ($user) { // Get the query data $data = $_GET; // Check if the required fields are set if (!isset($data['id'])) { $response->error('Order Item ID is required', 400); } // Delete the order item (new order_items_o())->removeOrderItem($data['id']); // Return the list of departments $response->success( ['message' => 'Order item deleted'] ); } else { // Log the incident (new logs_o())->add('departments', 'global', 1, 0, 'DELETE_ORDER_ITEMS', 'No user found, or invalid session'); // Return an error $response->error('Invalid session', 400); } }); } }