/** * Retrieve a logistician by ID. * @param int|string $id * @return Logistician */ public function get_logistician_by_id($id) { $logistician = new ModelTemplate('Logistician'); $logistician = $logistician->get_single('id', $id); if ($logistician) { // Add super class SMSUser fields to the Logistician instance. $smsUserCtr = new SMSUser_Controller(); // It should have super class fields, otherwise delete the instance. if ($smsUser = $smsUserCtr->get_smsuser_by_id($id)) { $logistician->add_field('telephone', $smsUser->telephone); } else { $logistician = null; } } return $logistician; }
/** * Retrieve single truck driver, specified by ID. * @param int|string $id * @return TruckDriver */ public function get_truck_driver_by_id($id) { $truckDriver = new ModelTemplate('TruckDriver'); $truckDriver = $truckDriver->get_single('id', $id); if ($truckDriver) { // Add super class SMSUser fields to the TruckDriver instance. $smsUserCtr = new SMSUser_Controller(); // It should have super class fields, otherwise delete the instance. if ($smsUser = $smsUserCtr->get_smsuser_by_id($id)) { $truckDriver->add_field('telephone', $smsUser->telephone); } else { $truckDriver = null; } } return $truckDriver; }
/** * Process the following URI: * /api/v1/sms/ - to save an SMS. * * When an SMS is saved a delivery confirmation SMS is sent back to sender. * @return mixed */ private function process_sms_post() { // Convert sent post data to an array. $smsData = array(); parse_str($this->file, $smsData); // Verify there is actually any content in the post data. if (isset($smsData['from']) && $smsData['from'] !== '' && isset($smsData['to']) && $smsData['to'] !== '' && isset($smsData['message']) && $smsData['message'] !== '' && isset($smsData['timestamp']) && $smsData['timestamp'] !== '') { // The sender and the recipient must be validated first. $smsUserCtr = new SMSUser_Controller(); $sender = $smsUserCtr->get_smsuser_by_telephone($smsData['from']); $recipient = $smsUserCtr->get_smsuser_by_telephone($smsData['to']); if ($sender && $recipient) { // Save SMS if they're successfully validated. $sctr = new SMS_Controller(); if ($sctr->save_SMS($sender->id, $recipient->id, $smsData)) { // The SMS is received. Inform sender. $cSend = new ClickSend_API(); return $cSend->send_delivery_confirmation($recipient->id, $sender->id, $sender->telephone); } } } return null; }