diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/listenbrainz.atd | 20 | ||||
| -rw-r--r-- | lib/listenbrainz_util.ml | 10 | 
2 files changed, 17 insertions, 13 deletions
| diff --git a/lib/listenbrainz.atd b/lib/listenbrainz.atd index cf4e09a..ede37f5 100644 --- a/lib/listenbrainz.atd +++ b/lib/listenbrainz.atd @@ -1,12 +1,12 @@  type mbid = string <ocaml valid="Listenbrainz_util.validate_mbid"> -type isrc = string +type isrc = string <ocaml valid="Listenbrainz_util.validate_isrc">  type unixtime = float <json repr="int">  type tm = unixtime wrap <ocaml module="Unix" t="Unix.tm" wrap="Unix.gmtime" unwrap="Listenbrainz_util.tm_unwrap">  type additional_info = {    ?artist_mbids : mbid list option; -  ?release_group_mbid : mbid list option; -  ?release_mid : mbid option; +  ?release_group_mbid : mbid option; +  ?release_mbid : mbid option;    ?recording_mbid : mbid option;    ?track_mbid : mbid option;    ?work_mbids : mbid list option; @@ -41,6 +41,12 @@ type payload_listen = {    track_metadata : track_metadata;  } +type payload_listens = { +  count : int; +  user_id : mbid; +  listens : payload_listen list; +} +  type payload_listen_count = {    count : int;  } @@ -69,17 +75,13 @@ type get_user_listen_count = {  }  type get_user_playing_now = { -  count : int; -  user_id : mbid; -  listens : payload_listen list; +  payload : payload_listens;  } <ocaml valid="Listenbrainz_util.validate_get_user_playing_now">  type get_user_similar_to = similar_user  type get_user_listens = { -  count : int; -  user_id : mbid; -  listens : payload_listen list; +  payload : payload_listens  } <ocaml valid="Listenbrainz_util.validate_get_user_listens">  type get_latest_import = { diff --git a/lib/listenbrainz_util.ml b/lib/listenbrainz_util.ml index 5056c09..f0b90dd 100644 --- a/lib/listenbrainz_util.ml +++ b/lib/listenbrainz_util.ml @@ -14,6 +14,8 @@ let tm_unwrap tm =  let validate_mbid mbid = Str.string_match uuid_v4_re mbid 0 +let validate_isrc isrc = Str.string_match uuid_v4_re isrc 0 +  let validate_post_submit_listens s =    match s.listen_type with    | `Single -> List.length s.payload = 1 @@ -22,11 +24,11 @@ let validate_post_submit_listens s =  let validate_get_validate_token r =    r.code = 200 || r.code = 400 -let validate_get_user_playing_now r = -  match r.listens with +let validate_get_user_playing_now (r : get_user_playing_now) = +  match r.payload.listens with    | [] -> true    | [l] -> l.listened_at = None    | _ -> false -let validate_get_user_listens r = -  List.length r.listens = r.count +let validate_get_user_listens (r : get_user_listens) = +  List.length r.payload.listens = r.payload.count | 
