Scalr\Api\Service\User\V1beta0\Controller\Farms::createVariableAction PHP Method

createVariableAction() public method

Creates farm's global var
public createVariableAction ( integer $farmId ) : Scalr\Api\DataType\ResultEnvelope
$farmId integer Numeric identifier of the Farm
return Scalr\Api\DataType\ResultEnvelope
    public function createVariableAction($farmId)
    {
        $this->getFarm($farmId, Acl::PERM_FARMS_UPDATE);
        $object = $this->request->getJsonBody();
        /* @var  $adapter GlobalVariableAdapter */
        $adapter = $this->adapter('globalVariable');
        //Pre validates the request object
        $adapter->validateObject($object, Request::METHOD_POST);
        $globalVar = $this->getVariableInstance();
        $variable = ['name' => $object->name, 'default' => '', 'locked' => '', 'current' => ['name' => $object->name, 'value' => !empty($object->value) ? $object->value : '', 'category' => !empty($object->category) ? strtolower($object->category) : '', 'flagFinal' => !empty($object->locked) ? 1 : 0, 'flagRequired' => !empty($object->requiredIn) ? $object->requiredIn : '', 'flagHidden' => !empty($object->hidden) ? 1 : 0, 'format' => !empty($object->outputFormat) ? $object->outputFormat : '', 'validator' => !empty($object->validationPattern) ? $object->validationPattern : '', 'description' => !empty($object->description) ? $object->description : '', 'scope' => ScopeInterface::SCOPE_FARM], 'flagDelete' => '', 'scopes' => [ScopeInterface::SCOPE_FARM]];
        $checkVar = $this->getGlobalVariable($object->name, $globalVar, 0, $farmId);
        if (!empty($checkVar)) {
            throw new ApiErrorException(409, ErrorMessage::ERR_UNICITY_VIOLATION, sprintf('Variable with name %s already exists', $object->name));
        }
        try {
            $globalVar->setValues([$variable], 0, $farmId);
        } catch (ValidationErrorException $e) {
            throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, $e->getMessage());
        }
        $data = $this->getGlobalVariable($variable['name'], $globalVar, 0, $farmId);
        //Responds with 201 Created status
        $this->response->setStatus(201);
        return $this->result($adapter->convertData($data));
    }