This commit is contained in:
anlicheng 2024-01-17 10:40:09 +08:00
parent f4aa27065a
commit 1a49c4628b

View File

@ -15,7 +15,7 @@
%% API %% API
-export([start_link/0]). -export([start_link/0]).
-export([get_pid/0, forward/3, get_stat/0]). -export([get_pid/0, forward/3, get_stat/0]).
-export([parse_json_file/0, export/0]). -export([parse_json_file/0, export/0, export_n/1]).
%% gen_statem callbacks %% gen_statem callbacks
-export([init/1, handle_event/4, terminate/3, code_change/4, callback_mode/0]). -export([init/1, handle_event/4, terminate/3, code_change/4, callback_mode/0]).
@ -52,6 +52,18 @@ export() ->
end end
end || Line <- Lines]. end || Line <- Lines].
export_n(N) when N > 0 ->
Lines0 = parse_json_file(),
Lines = lists:sublist(Lines0, 1, N),
[begin
case catch jiffy:decode(Line, [return_maps]) of
M when is_map(M) ->
export0(M);
Error ->
lager:notice("invalid data: ~p, error: ~p", [Line, Error])
end
end || Line <- Lines].
export0(Fields0 = #{<<"device_uuid">> := DeviceUUID, <<"timestamp">> := Timestamp}) -> export0(Fields0 = #{<<"device_uuid">> := DeviceUUID, <<"timestamp">> := Timestamp}) ->
Fields = lists:foldl(fun(Key, M) -> maps:remove(Key, M) end, Fields0, [<<"device_uuid">>]), Fields = lists:foldl(fun(Key, M) -> maps:remove(Key, M) end, Fields0, [<<"device_uuid">>]),
%% %%
@ -237,6 +249,7 @@ do_post(PostmanPid, #north_data{id = Id, location_code = LocationCode, fields =
<<"version">> => <<"1.0">>, <<"version">> => <<"1.0">>,
<<"location_code">> => LocationCode, <<"location_code">> => LocationCode,
<<"ts">> => Timestamp, <<"ts">> => Timestamp,
<<"repair">> => true,
<<"properties">> => Fields <<"properties">> => Fields
}, },
try try