fix(calendar): persist settings on PUT/POST
Accept calendar.settings (e.g. week_patterns) in validate_update and convert_field; apply on create like tags. Unblocks Front#42 pattern save which previously got 200 with empty settings.
This commit is contained in:
@@ -117,12 +117,21 @@ create_calendar(Req) ->
|
||||
Confirmation = parse_confirmation(maps:get(<<"confirmation">>, Decoded, <<"manual">>)),
|
||||
Tags = maps:get(<<"tags">>, Decoded, []),
|
||||
Type = parse_type(maps:get(<<"type">>, Decoded, <<"personal">>)),
|
||||
Settings = maps:get(<<"settings">>, Decoded, undefined),
|
||||
case logic_calendar:create_calendar(UserId, Title, Description, Confirmation, Type) of
|
||||
{ok, Calendar} ->
|
||||
Updated = case Tags of
|
||||
Extra0 = case Tags of
|
||||
[] -> [];
|
||||
_ -> [{tags, Tags}]
|
||||
end,
|
||||
Extra = case Settings of
|
||||
S when is_map(S) -> [{settings, S} | Extra0];
|
||||
_ -> Extra0
|
||||
end,
|
||||
Updated = case Extra of
|
||||
[] -> Calendar;
|
||||
_ ->
|
||||
case logic_calendar:update_calendar(UserId, Calendar#calendar.id, [{tags, Tags}]) of
|
||||
case logic_calendar:update_calendar(UserId, Calendar#calendar.id, Extra) of
|
||||
{ok, C2} -> C2;
|
||||
_ -> Calendar
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user