1:- module(bc_api_config, []).
5:- use_module(library(arouter)). 6:- use_module(library(dict_schema)). 7
8:- use_module(bc_view). 9:- use_module(bc_api_io). 10:- use_module(bc_api_auth). 11:- use_module(bc_api_actor). 12:- use_module(bc_data_config). 13
15
16:- route_get(api/configs,
17 bc_auth, config_list). 18
19config_list:-
20 bc_actor(Actor),
21 bc_config_list(Actor, List),
22 bc_reply_success(List).
23
25
26:- route_put(api/config,
27 bc_auth, config_update). 28
29config_update:-
30 bc_actor(Actor),
31 bc_read_by_schema(bc_config, Config),
32 Name = Config.name,
33 Value = Config.value,
34 bc_config_set_api(Actor, Name, Value),
35 bc_view_purge_cache,
36 bc_reply_success(Name).
37
39
40:- route_put(api/configs,
41 bc_auth, config_update_list). 42
43config_update_list:-
44 bc_actor(Actor),
45 bc_read_by_schema(bc_config_list, List),
46 bc_config_set_list_api(Actor, List),
47 bc_view_purge_cache,
48 bc_reply_success(true).
49
51
52:- register_schema(bc_config, _{
53 type: dict,
54 tag: config,
55 keys: _{
56 name: atom,
57 value: [ atom, number ]
58 }
59}). 60
61:- register_schema(bc_config_list, _{
62 type: list,
63 items: bc_config
64}).
HTTP handlers for config entry management */