Skip to content
This repository was archived by the owner on Sep 8, 2019. It is now read-only.

Commit 3a5ded5

Browse files
frontend: update paths to match backend changes
1 parent 75dd76f commit 3a5ded5

File tree

1 file changed

+116
-75
lines changed

1 file changed

+116
-75
lines changed

frontend/src/User.elm

Lines changed: 116 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,15 @@ type alias User =
5151
, email : Maybe String
5252
}
5353

54+
5455
type alias CreateUser =
5556
{ first_name : String
5657
, last_name : String
5758
, banner_id : Maybe Int
5859
, email : Maybe String
5960
}
6061

62+
6163
type alias UserList =
6264
List User
6365

@@ -73,7 +75,7 @@ init _ =
7375
, create_user = Nothing
7476
}
7577
, Http.get
76-
{ url = "http://localhost:8000/users"
78+
{ url = "http://localhost:8000/users/"
7779
, expect = Http.expectJson GotUsers decodeUserList
7880
}
7981
)
@@ -138,57 +140,76 @@ update msg model =
138140
case model.create_user of
139141
Just create_user ->
140142
let
141-
new_create_user = { create_user | first_name = first_name }
143+
new_create_user =
144+
{ create_user | first_name = first_name }
142145
in
143-
( { model | create_user = Just new_create_user }, Cmd.none )
146+
( { model | create_user = Just new_create_user }, Cmd.none )
147+
144148
Nothing ->
145-
( model, Cmd.none)
149+
( model, Cmd.none )
146150

147151
CreateUserLastName last_name ->
148152
case model.create_user of
149153
Just create_user ->
150154
let
151-
new_create_user = { create_user | last_name = last_name }
155+
new_create_user =
156+
{ create_user | last_name = last_name }
152157
in
153-
( { model | create_user = Just new_create_user }, Cmd.none )
158+
( { model | create_user = Just new_create_user }, Cmd.none )
159+
154160
Nothing ->
155-
( model, Cmd.none)
161+
( model, Cmd.none )
156162

157163
CreateUserBannerId banner_id ->
158164
case model.create_user of
159165
Just create_user ->
160166
let
161-
new_create_user = { create_user | banner_id = emptyToNothingInt banner_id }
167+
new_create_user =
168+
{ create_user | banner_id = emptyToNothingInt banner_id }
162169
in
163-
( { model | create_user = Just new_create_user }, Cmd.none )
170+
( { model | create_user = Just new_create_user }, Cmd.none )
171+
164172
Nothing ->
165-
( model, Cmd.none)
173+
( model, Cmd.none )
166174

167175
CreateUserHasEmail has_email ->
168176
case model.create_user of
169177
Just create_user ->
170178
let
171-
new_create_user = { create_user | email = if has_email then Just "" else Nothing }
179+
new_create_user =
180+
{ create_user
181+
| email =
182+
if has_email then
183+
Just ""
184+
185+
else
186+
Nothing
187+
}
172188
in
173-
( { model | create_user = Just new_create_user }, Cmd.none )
189+
( { model | create_user = Just new_create_user }, Cmd.none )
190+
174191
Nothing ->
175-
( model, Cmd.none)
192+
( model, Cmd.none )
176193

177194
CreateUserEmail email ->
178195
case model.create_user of
179196
Just create_user ->
180197
let
181-
new_create_user = { create_user | email = Just email }
198+
new_create_user =
199+
{ create_user | email = Just email }
182200
in
183-
( { model | create_user = Just new_create_user }, Cmd.none )
201+
( { model | create_user = Just new_create_user }, Cmd.none )
202+
184203
Nothing ->
185-
( model, Cmd.none)
204+
( model, Cmd.none )
186205

187206
SubmitCreateUser _ ->
188207
case model.create_user of
189208
Just create_user ->
190209
( { model | create_user = Nothing }, createCmd create_user )
191-
Nothing -> ( model, Cmd.none )
210+
211+
Nothing ->
212+
( model, Cmd.none )
192213

193214
SubmittedCreateUser err ->
194215
( model, searchCmd model )
@@ -199,23 +220,30 @@ createCmd create_user =
199220
case create_user.banner_id of
200221
Just banner_id ->
201222
let
202-
user_body = Encode.object
203-
[ ("first_name", Encode.string create_user.first_name)
204-
, ("last_name", Encode.string create_user.last_name)
205-
, ("banner_id", Encode.int banner_id)
206-
, ("email",
207-
case create_user.email of
208-
Just email -> Encode.string email
209-
Nothing -> Encode.null
210-
)
211-
]
223+
user_body =
224+
Encode.object
225+
[ ( "first_name", Encode.string create_user.first_name )
226+
, ( "last_name", Encode.string create_user.last_name )
227+
, ( "banner_id", Encode.int banner_id )
228+
, ( "email"
229+
, case create_user.email of
230+
Just email ->
231+
Encode.string email
232+
233+
Nothing ->
234+
Encode.null
235+
)
236+
]
212237
in
213-
Http.post
214-
{ url = "http://localhost:8000/users"
215-
, body = Http.jsonBody user_body
216-
, expect = Http.expectWhatever SubmittedCreateUser
217-
}
218-
Nothing -> Cmd.none
238+
Http.post
239+
{ url = "http://localhost:8000/users/"
240+
, body = Http.jsonBody user_body
241+
, expect = Http.expectWhatever SubmittedCreateUser
242+
}
243+
244+
Nothing ->
245+
Cmd.none
246+
219247

220248
emptyCreateUser : CreateUser
221249
emptyCreateUser =
@@ -225,6 +253,7 @@ emptyCreateUser =
225253
, email = Nothing
226254
}
227255

256+
228257
emptyToNothingInt : String -> Maybe Int
229258
emptyToNothingInt s =
230259
if String.isEmpty s then
@@ -242,24 +271,26 @@ emptyToNothing s =
242271
else
243272
Just s
244273

274+
245275
deleteCmd : Int -> Cmd UserMsg
246276
deleteCmd id =
247277
Http.request
248278
{ method = "DELETE"
249279
, headers = []
250-
, url = crossOrigin "http://localhost:8000" ["users", String.fromInt id] []
280+
, url = crossOrigin "http://localhost:8000" [ "users", String.fromInt id ] []
251281
, body = Http.emptyBody
252282
, expect = Http.expectWhatever UserDeleted
253283
, timeout = Nothing
254284
, tracker = Nothing
255285
}
256286

287+
257288
searchCmd : UserModel -> Cmd UserMsg
258289
searchCmd model =
259290
Http.get
260291
{ url =
261292
crossOrigin "http://localhost:8000"
262-
[ "users" ]
293+
[ "users/" ]
263294
([]
264295
|> concatConditional
265296
(Maybe.map (\a -> Url.Builder.string "first_name_exact" a) model.first_name_search)
@@ -361,54 +392,64 @@ view model =
361392
, case model.create_user of
362393
Nothing ->
363394
input [ type_ "button", value "Add User", onClick (ShowCreateUser ()) ] []
395+
364396
Just create_user ->
365397
viewCreateUser create_user
366398
]
367399

400+
368401
viewCreateUser : CreateUser -> Html UserMsg
369402
viewCreateUser create_user =
370403
div []
371404
(([ input
372-
[ type_ "text"
373-
, value create_user.first_name
374-
, onInput CreateUserFirstName
375-
] []
376-
, input
377-
[ type_ "text"
378-
, value create_user.last_name
379-
, onInput CreateUserLastName
380-
] []
381-
, input
382-
[ type_ "text"
383-
, value (Maybe.withDefault "" (Maybe.map String.fromInt create_user.banner_id))
384-
, onInput CreateUserBannerId
385-
] []
386-
, div []
387-
[ text "Has email?"
388-
, input
389-
[ type_ "checkbox"
390-
, checked
391-
( case create_user.email of
392-
Just _ -> True
393-
Nothing -> False
394-
)
395-
, onCheck CreateUserHasEmail
396-
] []
397-
]
398-
]
399-
|> concatConditional
400-
( Maybe.map
401-
(\email -> input [ type_ "text", value email, onInput CreateUserEmail ] [])
402-
create_user.email
403-
))
404-
++
405-
[ input
406-
[ type_ "button"
407-
, value "Submit User"
408-
, onClick (SubmitCreateUser ())
409-
] []
410-
])
411-
405+
[ type_ "text"
406+
, value create_user.first_name
407+
, onInput CreateUserFirstName
408+
]
409+
[]
410+
, input
411+
[ type_ "text"
412+
, value create_user.last_name
413+
, onInput CreateUserLastName
414+
]
415+
[]
416+
, input
417+
[ type_ "text"
418+
, value (Maybe.withDefault "" (Maybe.map String.fromInt create_user.banner_id))
419+
, onInput CreateUserBannerId
420+
]
421+
[]
422+
, div []
423+
[ text "Has email?"
424+
, input
425+
[ type_ "checkbox"
426+
, checked
427+
(case create_user.email of
428+
Just _ ->
429+
True
430+
431+
Nothing ->
432+
False
433+
)
434+
, onCheck CreateUserHasEmail
435+
]
436+
[]
437+
]
438+
]
439+
|> concatConditional
440+
(Maybe.map
441+
(\email -> input [ type_ "text", value email, onInput CreateUserEmail ] [])
442+
create_user.email
443+
)
444+
)
445+
++ [ input
446+
[ type_ "button"
447+
, value "Submit User"
448+
, onClick (SubmitCreateUser ())
449+
]
450+
[]
451+
]
452+
)
412453

413454

414455
viewUsers : List User -> Html UserMsg

0 commit comments

Comments
 (0)