public function createVariableAction($farmRoleId)
{
$farmRole = $this->getFarmRole($farmRoleId, null, true);
$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_FARMROLE], 'flagDelete' => '', 'scopes' => [ScopeInterface::SCOPE_FARMROLE]];
$checkVar = $this->getGlobalVariable($object->name, $globalVar, $farmRole->roleId, $farmRole->farmId, $farmRoleId);
if (!empty($checkVar)) {
throw new ApiErrorException(409, ErrorMessage::ERR_UNICITY_VIOLATION, sprintf('Variable with name %s already exists', $object->name));
}
try {
$globalVar->setValues([$variable], $farmRole->roleId, $farmRole->farmId, $farmRoleId);
} catch (ValidationErrorException $e) {
throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, $e->getMessage());
}
$data = $this->getGlobalVariable($variable['name'], $globalVar, $farmRole->roleId, $farmRole->farmId, $farmRoleId);
//Responds with 201 Created status
$this->response->setStatus(201);
return $this->result($adapter->convertData($data));
}