ruleset = new Ruleset(strict: true); $this->ruleset->GET([ (new Rules(WorkPermalinksModel::ID->value)) ->type(Type::STRING) ->min(1) ->max(parent::MYSQL_VARCHAR_MAX_LENGTH), (new Rules(WorkPermalinksModel::REF_WORK_ID->value)) ->type(Type::STRING) ->min(1) ->max(parent::MYSQL_VARCHAR_MAX_LENGTH) ]); parent::__construct(Databases::VLW, $this->ruleset); } public function main(): Response { $response = $this->db->for(WorkPermalinksModel::TABLE) ->where($_GET) ->select([ WorkPermalinksModel::ID->value, WorkPermalinksModel::REF_WORK_ID->value, WorkPermalinksModel::DATE_CREATED->value ]); return $response->num_rows > 0 ? new Response($response->fetch_all(MYSQLI_ASSOC)) : new Response([], 404); } }