/** * * @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) { CodeGuard::checkNotFalseAndThrow($project->emailSettings->fromAddress, 'email from address'); CodeGuard::checkNotFalseAndThrow($user->email, 'email to address'); $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() { self::$environ->clean(); // setup project and users $project = self::$environ->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE); $projectId = $project->id->asString(); $projectSettings = new ProjectSettingsModel($projectId); $projectSettings->smsSettings->accountId = "12345"; $projectSettings->write(); $result = ProjectCommands::readProjectSettings($projectId); $this->assertEquals('12345', $result['sms']['accountId']); }