| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'www/handler/battlemap/load_state.yaws')
| -rw-r--r-- | www/handler/battlemap/load_state.yaws | 40 | 
1 files changed, 39 insertions, 1 deletions
diff --git a/www/handler/battlemap/load_state.yaws b/www/handler/battlemap/load_state.yaws index c778b66..fb7cda6 100644 --- a/www/handler/battlemap/load_state.yaws +++ b/www/handler/battlemap/load_state.yaws @@ -1,8 +1,46 @@  <erl> +-record(input, {battlemap_id}). + +parse_input (Req) -> +   JSONReqMap = jiffy:decode(Req, [return_maps]), +   #input { +      battlemap_id = maps:get(<<"battlemap_id">>, JSONReqMap) +   }. + +fetch_battlemap (Input) -> +   {Battlemap, CharList} = +      timed_cache:fetch( +         battlemap_db, +         Input#input.battlemap_id +      ), + +handle (Req) -> +   Input = parse_input(Req), +   io:format("~nLoading Battlemap ~p...~n", [Input#input.battlemap_id]), +%%   ok = users_manager:ping(UserToken), +   jiffy:encode( +      [ +         [ +            <<"set_map">>, +            battlemap:encode_in_json(Battlemap) +         ] +         | +         lists:map( +            fun (Char) -> +               [ +                  <<"add_char">>, +                  character:encode_in_json(Char) +               ] +            end, +            CharList +         ) +      ] +   ). +  out(A) ->     {        content,        "application/json; charset=UTF-8", -      battlemap_load_state:handle(A#arg.clidata) +      handle(A#arg.clidata)     }.  </erl>  | 


