Exemplo n.º 1
0
    $commonMerge = $request->get('common');
    if ($staged == 1) {
        $revs = RevDeploy::getDeploymentRevs($deployment);
        if ($revs['currrev'] == $revs['nextrev']) {
            $apiResponse = new APIViewData(1, $deployment, "Unable to detect staged revision to reference");
            $app->halt(404, $apiResponse->returnJson());
        }
        $deployRev = $revs['nextrev'];
    } else {
        $deployRev = RevDeploy::getDeploymentRev($deployment);
    }
    $apiResponse = new APIViewData(0, $deployment, false);
    if ($commonMerge == 1) {
        $apiResponse->setExtraResponseData('contact_groups', RevDeploy::getCommonMergedDeploymentContactGroups($deployment, $deployRev));
    } else {
        $apiResponse->setExtraResponseData('contact_groups', RevDeploy::getDeploymentContactGroupswInfo($deployment, $deployRev));
    }
    $apiResponse->printJson();
})->name('saigon-api-get-contact-groups');
$app->get('/sapi/contactgroup/:deployment/:contactgroup(/:staged)', function ($deployment, $contactgroup, $staged = false) use($app) {
    check_deployment_exists($app, $deployment);
    if ($staged == 1) {
        $revs = RevDeploy::getDeploymentRevs($deployment);
        if ($revs['currrev'] == $revs['nextrev']) {
            $apiResponse = new APIViewData(1, $deployment, "Unable to detect staged revision to reference");
            $app->halt(404, $apiResponse->returnJson());
        }
        $deployRev = $revs['nextrev'];
    } else {
        $deployRev = RevDeploy::getDeploymentRev($deployment);
    }
 public function del_write()
 {
     $viewData = new ViewData();
     $deployment = $this->getDeployment('contact_error');
     $this->checkGroupAuth($deployment);
     $this->checkDeploymentRevStatus($deployment);
     $contactName = $this->getParam('contactName');
     if ($contactName === false) {
         $viewData->header = $this->getErrorHeader('contact_error');
         $viewData->error = 'Unable to detect contact specified in post params';
         $this->sendError('generic_error', $viewData);
     }
     $viewData->deployment = $deployment;
     $viewData->contact = $contactName;
     $modrevision = RevDeploy::getDeploymentNextRev($deployment);
     if ($deployment != 'common') {
         $cGrpsInfo = RevDeploy::getDeploymentContactGroupswInfo($deployment, $modrevision);
         foreach ($cGrpsInfo as $cGrp => $cGrpInfo) {
             if (empty($cGrpInfo['members'])) {
                 continue;
             }
             $members = explode(',', $cGrpInfo['members']);
             if (($key = array_search($contactName, $members)) !== false) {
                 unset($members[$key]);
                 $members = array_values($members);
                 $cGrpInfo['members'] = implode(',', $members);
                 RevDeploy::modifyDeploymentContactGroup($deployment, $cGrp, $cGrpInfo, $modrevision);
             }
         }
     } else {
         $deployments = RevDeploy::getDeployments();
         foreach ($deployments as $tmpDeployment) {
             $this->checkDeploymentRevStatus($tmpDeployment);
             $tmpRevision = RevDeploy::getDeploymentNextRev($tmpDeployment);
             $cGrpsInfo = RevDeploy::getDeploymentContactGroupswInfo($tmpDeployment, $tmpRevision);
             foreach ($cGrpsInfo as $cGrp => $cGrpInfo) {
                 if (empty($cGrpInfo['members'])) {
                     continue;
                 }
                 $members = explode(',', $cGrpInfo['members']);
                 if (($key = array_search($contactName, $members)) !== false) {
                     unset($members[$key]);
                     $members = array_values($members);
                     $cGrpInfo['members'] = implode(',', $members);
                     RevDeploy::modifyDeploymentContactGroup($tmpDeployment, $cGrp, $cGrpInfo, $tmpRevision);
                 }
             }
         }
     }
     RevDeploy::deleteDeploymentContact($deployment, $contactName, $modrevision);
     $this->sendResponse('contact_delete', $viewData);
 }