From b9ee77f8153090e9d47e73ab195540d10720c7b6 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 10 Jan 2019 13:12:49 -0700 Subject: AAAAAAAAAAAAAAAAAAAAAAAA --- lib/models/embed.ml | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 8 deletions(-) (limited to 'lib/models/embed.ml') diff --git a/lib/models/embed.ml b/lib/models/embed.ml index ce25e78..789e959 100644 --- a/lib/models/embed.ml +++ b/lib/models/embed.ml @@ -1,8 +1,44 @@ -module Make(Http : S.Http) = struct - type footer = Embed_t.footer - type image = Embed_t.image - type video = Embed_t.video - type provider = Embed_t.provider - type field = Embed_t.field - type t = Embed_t.t -end \ No newline at end of file +type footer = { + text: string; + icon_url: string option [@default None]; + proxy_icon_url: string option [@default None]; +} [@@deriving yojson] + +type image = { + url: string option [@default None]; + proxy_url: string option [@default None]; + height: int option [@default None]; + width: int option [@default None]; +} [@@deriving yojson] + +type video = { + url: string option [@default None]; + height: int option [@default None]; + width: int option [@default None]; +} [@@deriving yojson] + +type provider = { + name: string option [@default None]; + url: string option [@default None]; +} [@@deriving yojson] + +type field = { + name: string; + value: string; + inline: bool option [@default None]; +} [@@deriving yojson] + +type t = { + title: string option [@default None]; + kind: string option [@default None]; + description: string option [@default None]; + url: string option [@default None]; + timestamp: string option [@default None]; + colour: int option [@default None]; + footer: footer option [@default None]; + image: image option [@default None]; + thumbnail: image option [@default None]; + video: video option [@default None]; + provider: provider option [@default None]; + fields: field list [@default []]; +} [@@deriving yojson] \ No newline at end of file -- cgit v1.2.3 From cba1fa3ab1b085600f3a73dae62682d21d112afb Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 11 Jan 2019 12:44:22 -0700 Subject: More deserialization fixes --- lib/models/embed.ml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib/models/embed.ml') diff --git a/lib/models/embed.ml b/lib/models/embed.ml index 789e959..627d617 100644 --- a/lib/models/embed.ml +++ b/lib/models/embed.ml @@ -22,15 +22,22 @@ type provider = { url: string option [@default None]; } [@@deriving yojson] +type author = { + name: string option [@default None]; + url: string option [@default None]; + icon_url: string option [@default None]; + proxy_icon_url: string option [@default None]; +} [@@deriving yojson] + type field = { name: string; value: string; - inline: bool option [@default None]; + inline: bool [@default true]; } [@@deriving yojson] type t = { title: string option [@default None]; - kind: string option [@default None]; + kind: string option [@default None][@key "type"]; description: string option [@default None]; url: string option [@default None]; timestamp: string option [@default None]; @@ -40,5 +47,6 @@ type t = { thumbnail: image option [@default None]; video: video option [@default None]; provider: provider option [@default None]; + author: author option [@default None]; fields: field list [@default []]; -} [@@deriving yojson] \ No newline at end of file +} [@@deriving yojson { strict = false }] \ No newline at end of file -- cgit v1.2.3 From c5bfc108ca6a1e7a21492b4318de78a74ed801f9 Mon Sep 17 00:00:00 2001 From: Adelyn Breedlove Date: Sun, 13 Jan 2019 16:51:04 -0700 Subject: Add deriving sexp to models --- lib/models/embed.ml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'lib/models/embed.ml') diff --git a/lib/models/embed.ml b/lib/models/embed.ml index 627d617..4faaba7 100644 --- a/lib/models/embed.ml +++ b/lib/models/embed.ml @@ -1,39 +1,41 @@ +open Core + type footer = { text: string; icon_url: string option [@default None]; proxy_icon_url: string option [@default None]; -} [@@deriving yojson] +} [@@deriving sexp, yojson] type image = { url: string option [@default None]; proxy_url: string option [@default None]; height: int option [@default None]; width: int option [@default None]; -} [@@deriving yojson] +} [@@deriving sexp, yojson] type video = { url: string option [@default None]; height: int option [@default None]; width: int option [@default None]; -} [@@deriving yojson] +} [@@deriving sexp, yojson] type provider = { name: string option [@default None]; url: string option [@default None]; -} [@@deriving yojson] +} [@@deriving sexp, yojson] type author = { name: string option [@default None]; url: string option [@default None]; icon_url: string option [@default None]; proxy_icon_url: string option [@default None]; -} [@@deriving yojson] +} [@@deriving sexp, yojson] type field = { name: string; value: string; inline: bool [@default true]; -} [@@deriving yojson] +} [@@deriving sexp, yojson] type t = { title: string option [@default None]; @@ -49,4 +51,4 @@ type t = { provider: provider option [@default None]; author: author option [@default None]; fields: field list [@default []]; -} [@@deriving yojson { strict = false }] \ No newline at end of file +} [@@deriving sexp, yojson { strict = false }] \ No newline at end of file -- cgit v1.2.3