package reddit_api_kernel
Source file subreddit_rules.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44open! Core_kernel include Json_object.Utils module Rule = struct include Json_object.Utils module Kind = struct type t = | Link | Comment | All [@@deriving sexp] let of_string string = match string with | "link" -> Link | "comment" -> Comment | "all" -> All | _ -> raise_s [%message "Unrecognized [Subreddit_rules.Rule.Kind.t] string" (string : string)] ;; end let kind = required_field "kind" (string >> Kind.of_string) let description t markup = let field = match markup with | `markdown -> "description" | `HTML -> "description_html" in required_field field string t ;; let short_name = required_field "short_name" string let report_reason = required_field "violation_reason" string let creation_time = required_field "created_utc" time let priority = required_field "priority" int end let subreddit_rules = required_field "rules" (Json.get_list Rule.of_json) let site_rules = required_field "site_rules" ident let site_rules_flow = required_field "site_rules_flow" ident