1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
define_type(
'notifo',
-prototype,
-description='Wrapper for the Notifo API.'
);
local(
'api_username' = string,
'api_secret' = string,
'api_root' = 'https://api.notifo.com/',
'api_version' = 'v1'
);
define_tag(
'oncreate',
-req='username',
-req='secret'
);
self->'api_username' = #username;
self->'api_secret' = #secret;
/define_tag;
define_tag(
'send',
-req='method',
-req='params'
);
local('response') = null;
local('url') = (self->'api_root' + self->'api_version' + '/' + #method);
protect;
handle_error;
#response = map(
'status' = 'error',
'response_code' = error_code,
'response_message' = error_msg
);
/handle_error;
#response = decode_json(include_url(
#url,
-username=self->'api_username',
-password=self->'api_secret',
-postparams=#params,
-timeout=10,
-connecttimeout=10
));
/protect;
return(#response);
/define_tag;
define_tag('_unknowntag');
local('params') = array;
iterate(params, local('i'));
local('n') = string(#i->first)->removeleading('-')&;
#params->insert(#n = #i->second);
/iterate;
return(self->send( -method=tag_name, -params=#params));
/define_tag;
/define_type;
|