GSD-RestApi Action event macro
This is a complete list of parameters that event macro must have in order to be properly executed when action of type "macro" takes place.
Parameter |
Type |
Description |
&res: HJSON |
IN-OUT |
JSON Handle with returned error message, if any error occurs |
data: HJSON |
IN |
Data section from the request |
action: HJSON |
IN |
JSON Handle with Action |
obj: DBOBJECT |
IN |
Currently created/modified/deleted object on which action will be executed |
&ok: BOOL |
OUT |
False when something went wrong, error info will be added to 'res HJSON' |
Example declaration:
| INT ExampleActionEvent( HJSON &res, HJSON data, HJSON action, DBOBJECT obj, BOOL &ok )
RETURN( 1 )
|
Example usage:
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 | INT ExampleActionEvent( HJSON &res, HJSON data, HJSON action, DBOBJECT obj, BOOL &ok )
BOOL ok = TRUE;
HJSON tmp;
STRING oid, path, class;
DBOBJECT parentObj;
tmp = action.GetMember( "object" );
IF( tmp == NULL )
res.xRestApi_Error_Missing_ActionsAssignObject();
ok = FALSE;
ELSEIF( tmp.GetType() != JSONT_STRING )
res.xRestApi_Error_InvalidType_ActionsAssignObject();
ok = FALSE;
ELSE
oid = tmp.GetString();
ENDIF
IF( ok )
tmp = action.GetMember( "path" );
IF( tmp != NULL )
IF( tmp.GetType() != JSONT_STRING )
res.xRestApi_Error_InvalidType_ActionsAssignPath();
ok = FALSE;
ELSE
path = tmp.GetString();
ENDIF
ENDIF
ENDIF
IF( ok )
tmp = action.GetMember( "class" );
IF( tmp != NULL )
class = tmp.GetString();
ENDIF
IF( xRestApi_CheckObjectAccessFromEx( oid, res, parentObj, SR_WRITE, class ) )
IF( !DBDocAssign( obj, parentObj, path ) )
res.xRestApi_Error_Error_DocAssign();
ok = FALSE;
ENDIF
ELSE
ok = FALSE;
ENDIF
ENDIF
RETURN( 1 )
|