/** * * @param UserProfileModel $user * @param ProjectSettingsModel $project * @param string $subject * @param string $smsTemplate * @param string $emailTemplate * @param string $htmlEmailTemplate * @param DeliveryInterface $delivery */ public static function communicateToUser($user, $project, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate = '', DeliveryInterface $delivery = null) { // Prepare the email message if required if ($user->communicate_via == UserModel::COMMUNICATE_VIA_EMAIL || $user->communicate_via == UserModel::COMMUNICATE_VIA_BOTH) { $from = array($project->emailSettings->fromAddress => $project->emailSettings->fromName); $to = array($user->email => $user->name); $vars = array('user' => $user, 'project' => $project); $template = CommunicateHelper::templateFromString($emailTemplate); $content = $template->render($vars); $htmlContent = ''; if ($htmlEmailTemplate) { $template = CommunicateHelper::templateFromString($emailTemplate); $htmlContent = $template->render($vars); } CommunicateHelper::deliverEmail($from, $to, $subject, $content, $htmlContent, $delivery); } // Prepare the sms message if required if ($project->smsSettings->hasValidCredentials()) { if ($user->communicate_via == UserModel::COMMUNICATE_VIA_SMS || $user->communicate_via == UserModel::COMMUNICATE_VIA_BOTH) { $databaseName = $project->databaseName(); $sms = new SmsModel($databaseName); $sms->providerInfo = $project->smsSettings->accountId . '|' . $project->smsSettings->authToken; $sms->to = $user->mobile_phone; $sms->from = $project->smsSettings->fromNumber; $vars = array('user' => $user, 'project' => $project); $template = CommunicateHelper::templateFromString($smsTemplate); $sms->message = $template->render($vars); CommunicateHelper::deliverSMS($sms, $delivery); } } }
public function testReadSettings_CanReadSettings() { $this->environ->clean(); // setup project and users $project = $this->environ->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE); $projectId = $project->id->asString(); $projectSettings = new ProjectSettingsModel($projectId); $projectSettings->smsSettings->accountId = "12345"; $projectSettings->write(); $user1Id = $this->environ->createUser("user1name", "User1 Name", "*****@*****.**"); $result = ProjectCommands::readProjectSettings($projectId, $user1Id); $this->assertEqual($result['sms']['accountId'], "12345"); }
public static function updateProjectSettings($projectId, $smsSettingsArray, $emailSettingsArray) { $smsSettings = new \Api\Model\Sms\SmsSettings(); $emailSettings = new \Api\Model\EmailSettings(); JsonDecoder::decode($smsSettings, $smsSettingsArray); JsonDecoder::decode($emailSettings, $emailSettingsArray); $projectSettings = new ProjectSettingsModel($projectId); $projectSettings->smsSettings = $smsSettings; $projectSettings->emailSettings = $emailSettings; $result = $projectSettings->write(); return $result; }