A music player that connects to your cloud/distributed storage.
at main 976 B view raw
1module Sources.Services.Dropbox.Parser exposing (parseErrorResponse, parseTreeResponse) 2 3import Json.Decode exposing (..) 4import Sources.Processing exposing (Marker(..), TreeAnswer) 5 6 7 8-- TREE 9 10 11parseTreeResponse : String -> Marker -> TreeAnswer Marker 12parseTreeResponse response _ = 13 let 14 hasMore = 15 decodeString (field "has_more" bool) response 16 17 cursor = 18 decodeString (field "cursor" string) response 19 20 paths = 21 decodeString 22 (field "entries" <| list <| field "path_display" string) 23 response 24 in 25 { filePaths = Result.withDefault [] paths 26 , marker = 27 if Result.withDefault False hasMore then 28 InProgress (Result.withDefault "" cursor) 29 30 else 31 TheEnd 32 } 33 34 35 36-- Error 37 38 39parseErrorResponse : String -> Maybe String 40parseErrorResponse response = 41 response 42 |> decodeString (field "error_summary" string) 43 |> Result.toMaybe