ruleset = new Ruleset(strict: true); $this->ruleset->POST([ (new Rules(MessagesTable::EMAIL->value)) ->type(Type::STRING) ->max(255) ->default(null), (new Rules(MessagesTable::MESSAGE->value)) ->required() ->type(Type::STRING) ->min(1) ->max(parent::MYSQL_TEXT_MAX_LENGTH) ]); $ruleset->validate_or_exit(); parent::__construct(); } public function main(): Response { // Use copy of request body as entity $entity = $_POST; $entity[MessagesTable::ID->value] = parent::gen_uuid4(); $entity[MessagesTable::DATE_CREATED->value] = time(); return $this->db->for(MessagesTable::NAME)->insert($entity) === true ? new Response($entity[MessagesTable::ID->value], 201) : new Response("Failed to create message", 500); } }