/** * 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; }