public function createForumTopic($forumID, $authorID, $title, $post, $extra = [])
    {
        $data = ["forum" => $forumID, "author" => $authorID, "title" => $title, "post" => $post];
        $data = array_merge($data, $extra);

        $validator = \Validator::make($data, [
            "forum"       => "required|numeric",
            "author"      => "required|numeric",
            "title"       => "required|string",
            "post"        => "required|string",
            "author_name" => "required_if:author,0|string",
            "prefix"      => "string",
            "tags"        => "string|is_csv_alphanumeric",
            "date"        => "date_format:YYYY-mm-dd H:i:s",
            "ip_address"  => "ip",
            "locked"      => "in:0,1",
            "open_time"   => "date_format:YYYY-mm-dd H:i:s",
            "close_time"  => "date_format:YYYY-mm-dd H:i:s",
            "hidden"      => "in:-1,0,1",
            "pinned"      => "in:0,1",
            "featured"    => "in:0,1",
        ], [
            "is_csv_alphanumeric" => "The :attribute must be a comma separated string.",
        ]);

        if ($validator->fails()) {
            $message = head(array_flatten($validator->messages()));
            throw new Exceptions\InvalidFormat($message);
        }

        return $this->postRequest("forums/topics", $data);
    }