2 | module Network.URL.HTTP
4 | import public Network.URL.HTTP.Data
14 | insertParam : QueryParam -> HTTPURL -> HTTPURL
15 | insertParam p@(key, value) url = { query := newQuery } url
18 | params : List QueryParam
22 | hasIn : Maybe (Fin (Prelude.List.length $
url.query))
23 | hasIn = findIndex (\(k,_) => k == key) params
26 | update : Fin (length (url .query)) -> List QueryParam -> List QueryParam
27 | update idx ps = case inBounds (cast idx) ps of
28 | (Yes _) => replaceAt (cast idx) p ps
33 | newQuery : List QueryParam
34 | newQuery = case hasIn of
35 | Nothing => snoc params p
36 | (Just idx) => update idx params