ruleset = new Ruleset(strict: true); $this->ruleset->POST([ (new Rules(WorkActionsModel::REF_WORK_ID->value)) ->required() ->min(1) ->max(parent::MYSQL_VARCHAR_MAX_LENGTH), (new Rules(WorkActionsModel::DISPLAY_TEXT->value)) ->required() ->type(Type::STRING) ->min(1) ->max(parent::MYSQL_VARCHAR_MAX_LENGTH), (new Rules(WorkActionsModel::HREF->value)) ->required() ->type(Type::STRING) ->type(Type::NULL) ->min(1) ->max(parent::MYSQL_VARCHAR_MAX_LENGTH), (new Rules(WorkActionsModel::CLASS_LIST->value)) ->type(Type::ARRAY) ->min(1) ->default([]) ]); parent::__construct(Databases::VLW, $this->ruleset); } private static function get_entity(): Response { return (new Call(Endpoints::WORK->value))->params([ WorkModel::ID->value => $_POST[WorkActionsModel::REF_WORK_ID->value] ])->get(); } public function main(): Response { // Bail out if work entity could not be fetched $entity = self::get_entity(); if (!$entity->ok) { return $entity; } return $this->db->for(WorkActionsModel::TABLE)->insert($_POST) === true ? new Response($_POST[WorkActionsModel::REF_WORK_ID->value], 201) : new Response("Failed to add action to work entity", 500); } }