A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 64 lines 1.4 kB view raw
1module Sources.Services.Azure.BlobParser exposing (parseErrorResponse, parseTreeResponse) 2 3import Sources.Processing exposing (Marker(..), TreeAnswer) 4import Xml.Decode exposing (..) 5 6 7 8-- TREE 9 10 11parseTreeResponse : String -> Marker -> TreeAnswer Marker 12parseTreeResponse response _ = 13 response 14 |> decodeString 15 (map2 16 (\f m -> { filePaths = f, marker = m }) 17 filePathsDecoder 18 markerDecoder 19 ) 20 |> Result.withDefault { filePaths = [], marker = TheEnd } 21 22 23filePathsDecoder : Decoder (List String) 24filePathsDecoder = 25 string 26 |> single 27 |> path [ "Name" ] 28 |> list 29 |> path [ "Blobs", "Blob" ] 30 31 32markerDecoder : Decoder Marker 33markerDecoder = 34 map 35 (\maybeNextMarker -> 36 case maybeNextMarker of 37 Just "" -> 38 TheEnd 39 40 Just nextMarker -> 41 InProgress nextMarker 42 43 Nothing -> 44 TheEnd 45 ) 46 (maybe <| path [ "NextMarker" ] <| single string) 47 48 49 50-- ERROR 51 52 53parseErrorResponse : String -> Maybe String 54parseErrorResponse response = 55 response 56 |> decodeString errorMessagesDecoder 57 |> Result.toMaybe 58 59 60errorMessagesDecoder : Decoder String 61errorMessagesDecoder = 62 string 63 |> single 64 |> path [ "Message" ]