/** * Create a project, checking permissions as necessary * @param string $projectName * @param string $projectCode * @param string $appName * @param string $userId * @param Website $website * @param array $srProject send receive project data * @return string - projectId */ public static function createProject($projectName, $projectCode, $appName, $userId, $website, $srProject = null) { // Check for unique project code if (ProjectCommands::projectCodeExists($projectCode)) { return false; } $project = new ProjectModel(); $project->projectName = $projectName; $project->projectCode = $projectCode; $project->appName = $appName; $project->siteName = $website->domain; $project->ownerRef->id = $userId; $project->addUser($userId, ProjectRoles::MANAGER); $projectId = $project->write(); if ($srProject) { SendReceiveCommands::updateSRProject($projectId, $srProject); } $user = new UserModel($userId); $user->addProject($projectId); $user->write(); $project = ProjectModel::getById($projectId); $project->initializeNewProject(); ActivityCommands::addUserToProject($project, $userId); return $projectId; }
public function testUpdateSRProject_ProjectAndUser_SRProjectSaved() { $project = self::$environ->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE); $projectId = $project->id->asString(); $sendReceiveProject = new SendReceiveProjectModel('sr_name', '', 'manager'); $srProject = JsonEncoder::encode($sendReceiveProject); $srProject['identifier'] = 'sr_id'; $newProjectId = SendReceiveCommands::updateSRProject($projectId, $srProject); $newProject = new LexProjectModel($newProjectId); $this->assertEquals($projectId, $newProjectId); $this->assertEquals($sendReceiveProject, $newProject->sendReceiveProject); $this->assertEquals($srProject['identifier'], $newProject->sendReceiveProjectIdentifier); }
public function sendReceive_updateSRProject($srProject) { return SendReceiveCommands::updateSRProject($this->projectId, $srProject); }