Scalr\Api\Service\User\V1beta0\Controller\AccountScripts::createAction PHP Method

createAction() public method

Create a new Orchestration Rule for an Account
public createAction ( ) : Scalr\Api\DataType\ResultEnvelope
return Scalr\Api\DataType\ResultEnvelope
    public function createAction()
    {
        $object = $this->request->getJsonBody();
        /* @var $ruleAdapter AccountScriptAdapter */
        $ruleAdapter = $this->adapter('OrchestrationRules\\AccountScript');
        //Pre validates the request object
        $ruleAdapter->validateObject($object, Request::METHOD_POST);
        if (!isset($object->target)) {
            $object->target->type = AccountScriptAdapter::TARGET_NAME_NULL;
        }
        if (!isset($object->action)) {
            throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_STRUCTURE, "Missed action");
        }
        $rule = $ruleAdapter->toEntity($object);
        $rule->id = null;
        $rule->accountId = $this->getUser()->getAccountId();
        $ruleAdapter->validateEntity($rule);
        //Saves entity
        $rule->save();
        //Responds with 201 Created status
        $this->response->setStatus(201);
        return $this->result($ruleAdapter->toData($rule));
    }