get('/admin/customer/code', function () { ScopeMiddleware::requireScope(Scope::CUSTOMER_READ, '/admin/customer/code'); // Require the user to be logged in global $response; $this->requirePermission('get_customer_code'); // Get the user object $user = (new authentication())->get_user(); // Check if the request was successful if ($user) { // Get the query parameters from the URL $data = $_GET; // Check if the required fields are set if (!isset($data['customer_number']) && !isset($data['user_id'])) { $response->error('User ID or Customer Number is required', 400); } // Log the incident (new logs_o())->add('customer_codes', 'global', 1, $user->id, 'GET_CUSTOMER_CODE', 'Successfully retrieved customer code'); // Check if the user exists if (!(new users_o())->automaticGetTargetUserFromRequest()->exists()) { $response->error('Customer not found', 400); } // Return the customer code $response->success( ['code' => (new users_o())->automaticGetTargetUserFromRequest()->getCode()] ); } else { // Log the incident (new logs_o())->add('customer_codes', 'global', 1, 0, 'GET_CUSTOMER_CODE', 'No user found, or invalid session'); // Return an error $response->error('Invalid session', 400); } }, [ 'get_customer_code' => 'Get customer code' ] ); $this->post('/admin/customer/code', function () { ScopeMiddleware::requireScope(Scope::CUSTOMER_WRITE, '/admin/customer/code'); // Require the user to be logged in global $response; $this->requirePermission('add_customer_code'); // Get the user object $user = (new authentication())->get_user(); // Check if the request was successful if ($user) { // Get the post data $data = json_decode(file_get_contents('php://input'), true); // Check if the required fields are set if (!isset($data['customer_number']) && !isset($data['user_id']) && !isset($data['code'])) { $response->error('User ID, Customer Number, and Code are required', 400); } // Log the incident (new logs_o())->add('customer_codes', 'global', 1, $user->id, 'ADD_CUSTOMER_CODE', 'Successfully added customer code'); // Check if the user exists if (!(new users_o())->automaticGetTargetUserFromRequest()->exists()) { $response->error('Customer not found', 400); } // Add the customer code (new users_o())->automaticGetTargetUserFromRequest()->setCode($data['code']); // Return a success message $response->success(['message' => 'Customer code added']); } else { // Log the incident (new logs_o())->add('customer_codes', 'global', 1, 0, 'ADD_CUSTOMER_CODE', 'No user found, or invalid session'); // Return an error $response->error('Invalid session', 400); } }, [ 'add_customer_code' => 'Add a customer code' ] ); } }