impls claims
This commit is contained in:
48
src/Api.elm
48
src/Api.elm
@@ -22,8 +22,8 @@ type Update
|
|||||||
= ItemRemoved Item
|
= ItemRemoved Item
|
||||||
| ItemAdded Item
|
| ItemAdded Item
|
||||||
| WealthUpdated Wealth
|
| WealthUpdated Wealth
|
||||||
| ClaimAdded ()
|
| ClaimAdded Claim
|
||||||
| ClaimRemoved ()
|
| ClaimRemoved Claim
|
||||||
|
|
||||||
|
|
||||||
type Msg
|
type Msg
|
||||||
@@ -90,6 +90,22 @@ type alias Claim =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
claimDecoder =
|
||||||
|
D.map3 Claim
|
||||||
|
(D.field "id" int)
|
||||||
|
(D.field "player_id" int)
|
||||||
|
(D.field "loot_id" int)
|
||||||
|
|
||||||
|
|
||||||
|
fetchClaims : Int -> Cmd Msg
|
||||||
|
fetchClaims playerId =
|
||||||
|
Http.get
|
||||||
|
{ url = "http://localhost:8088/api/claims"
|
||||||
|
, expect =
|
||||||
|
valueDecoder (D.list claimDecoder)
|
||||||
|
|> Http.expectJson (GotClaims playerId)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
-- PLAYERS
|
-- PLAYERS
|
||||||
--
|
--
|
||||||
@@ -168,22 +184,6 @@ fetchLoot dest =
|
|||||||
-- CLAIMS
|
-- CLAIMS
|
||||||
|
|
||||||
|
|
||||||
claimDecoder =
|
|
||||||
D.map3 Claim
|
|
||||||
(D.field "id" int)
|
|
||||||
(D.field "player_id" int)
|
|
||||||
(D.field "loot_id" int)
|
|
||||||
|
|
||||||
|
|
||||||
fetchClaims : Int -> Cmd Msg
|
|
||||||
fetchClaims playerId =
|
|
||||||
Http.get
|
|
||||||
{ url = "http://localhost:8088/api/claims"
|
|
||||||
, expect =
|
|
||||||
valueDecoder (D.list claimDecoder)
|
|
||||||
|> Http.expectJson (GotClaims playerId)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- API Response
|
-- API Response
|
||||||
@@ -208,8 +208,8 @@ updatesDecoder =
|
|||||||
[ field "ItemRemoved" (itemDecoder |> D.andThen (\i -> succeed <| ItemRemoved i))
|
[ field "ItemRemoved" (itemDecoder |> D.andThen (\i -> succeed <| ItemRemoved i))
|
||||||
, field "ItemAdded" (itemDecoder |> D.andThen (\i -> succeed <| ItemAdded i))
|
, field "ItemAdded" (itemDecoder |> D.andThen (\i -> succeed <| ItemAdded i))
|
||||||
, field "Wealth" (wealthDecoder |> D.andThen (\i -> succeed <| WealthUpdated i))
|
, field "Wealth" (wealthDecoder |> D.andThen (\i -> succeed <| WealthUpdated i))
|
||||||
, field "ClaimRemoved" (succeed () |> D.andThen (\i -> succeed <| ClaimRemoved i))
|
, field "ClaimRemoved" (claimDecoder |> D.andThen (\i -> succeed <| ClaimRemoved i))
|
||||||
, field "ClaimAdded" (succeed () |> D.andThen (\i -> succeed <| ClaimAdded i))
|
, field "ClaimAdded" (claimDecoder |> D.andThen (\i -> succeed <| ClaimAdded i))
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@@ -247,18 +247,16 @@ buildPayload mode items =
|
|||||||
E.object
|
E.object
|
||||||
[ ( "items", items |> E.list (\i -> E.list identity [ E.int i.id, E.null ]) )
|
[ ( "items", items |> E.list (\i -> E.list identity [ E.int i.id, E.null ]) )
|
||||||
, ( "global_mod", E.null )
|
, ( "global_mod", E.null )
|
||||||
|
, ( "players", E.null )
|
||||||
]
|
]
|
||||||
|
|
||||||
|
-- API expects the list of claimed loot ids
|
||||||
Modes.Grab ->
|
Modes.Grab ->
|
||||||
E.object
|
items |> E.list (\i -> E.int i.id)
|
||||||
[ ( "items", items |> E.list (\i -> E.int i.id) )
|
|
||||||
, ( "global_mod", E.null )
|
|
||||||
]
|
|
||||||
|
|
||||||
Modes.Add ->
|
Modes.Add ->
|
||||||
E.object
|
E.object
|
||||||
[ ( "items", items |> E.list (\i -> E.int i.id) )
|
[ ( "items", items |> E.list (\i -> E.int i.id) )
|
||||||
, ( "global_mod", E.null )
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
13
src/Main.elm
13
src/Main.elm
@@ -306,6 +306,12 @@ setLoot items model =
|
|||||||
{ model | chest = { chest | loot = items } }
|
{ model | chest = { chest | loot = items } }
|
||||||
|
|
||||||
|
|
||||||
|
setClaims : Claims -> Model -> Model
|
||||||
|
setClaims claims model =
|
||||||
|
let
|
||||||
|
chest = model.chest
|
||||||
|
in
|
||||||
|
{ model | chest = { chest | claims = claims } }
|
||||||
|
|
||||||
-- DbUpdates always refer to the active player's loot
|
-- DbUpdates always refer to the active player's loot
|
||||||
|
|
||||||
@@ -340,11 +346,12 @@ applyUpdate u model =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Api.ClaimAdded _ ->
|
Api.ClaimAdded claim ->
|
||||||
model
|
model |> setClaims (claim :: model.chest.claims)
|
||||||
|
|
||||||
Api.ClaimRemoved _ ->
|
Api.ClaimRemoved claim ->
|
||||||
model
|
model
|
||||||
|
|> setClaims (List.filter (\c -> c.id /= claim.id) model.chest.claims)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user