ruleset = new Ruleset(strict: true); $this->ruleset->GET([ (new Rules("id")) ->required() ->type(Type::STRING) ->min(1) ->max(parent::MYSQL_VARCHAR_MAX_LENGTH) ]); } // # Responses // Return 422 Unprocessable Content error if request validation failed private function resp_rules_invalid(): Response { return new Response($this->ruleset->get_errors(), 422); } // Return a 503 Service Unavailable error if something went wrong with the database call private function resp_database_error(): Response { return new Response("Failed to delete work data, please try again later", 503); } public function main(): Response { // Bail out if request validation failed if (!$this->ruleset->is_valid()) { return $this->resp_rules_invalid(); } // Attempt to update the entity $update = $this->db->for(WorkModel::TABLE) ->where([WorkModel::ID->value => $_GET["id"]]) ->update([ WorkModel::IS_LISTABLE->value => false, WorkModel::IS_READABLE->value => false ]); return $update ? new Response($_GET["id"]) : $this->resp_database_error(); } }