I have simple url builder like this:
prepareUrl : Params -> String
prepareUrl params =
Url.crossOrigin "http://someapi.com/"
["posts"]
[
, Url.string "currency" params.currency
, Url.string "members[0][birthday]" "12.12.1989"
]
When i receive param like membersCount 2 or 3 etc, i need to "clone" members[] in request like this:
params.membersCount = 3
prepareUrl : Params -> String
prepareUrl params =
Url.crossOrigin "http://someapi.com/"
["posts"]
[
, Url.string "currency" params.currency
, Url.string "members[0][birthday]" "12.12.1989"
, Url.string "members[1][birthday]" "12.12.1989"
, Url.string "members[2][birthday]" "12.12.1989"
]
The date string itself can remain the same, it doesn't matter. How can i do that?
Since the third parameter of Url.Builder.crossOrigin
takes a list of QueryParameter
values, you can build a list from 0
to memberCount
using List.range
:
prepareUrl : Params -> String
prepareUrl params =
Url.crossOrigin "http://someapi.com/"
["posts"]
(Url.string "currency" params.currency :: birthdayParams params.memberCount)
birthdayParams : Int -> List Url.QueryParameter
birthdayParams memberCount =
List.range 0 (memberCount - 1)
|> List.map (\i -> Url.string ("members[" ++ String.fromInt i ++ "][birthday]") "12.12.1989")