hk_trigger.anubis
2.18 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*
* Created by PyramIDE.
* User: フランスのトトロ aka (David RENÉ)
* Date: 18/06/2017
* Time: 23:12
* © David RENÉ
*/
transmit xlib/web/types/web_session.anubis
read tools/basis.anubis
public type HK_Trigger_Result:
ok,
error,
abort
.
public type HK_Trigger_Type:
before_create,
after_create,
before_update,
after_update,
before_delete,
after_delete
.
public type HK_Trigger:
hk_trigger(
String trigger_name,
HK_Trigger_Type trigger_type,
((SQLite3DataBase db, WEB_Session session ) -> HK_Trigger_Result) trigger_call_back)
.
public type HK_Trigger_Set:
hk_trigger_set(
Var(List(HK_Trigger)) before_create, //must be called before create the requested
Var(List(HK_Trigger)) after_create, //must be called after create the requested
Var(List(HK_Trigger)) before_update, //must be called before update the requested
Var(List(HK_Trigger)) after_update, //must be called after update the requested
Var(List(HK_Trigger)) before_delete, //must be called before delete the requested
Var(List(HK_Trigger)) after_delete //must be called after delete the requested
)
.
public define Maybe(HK_Trigger)
get_trigger
(
List(HK_Trigger) triggers,
String _trigger_name
) =
if triggers is
{
[] then failure,
[h . t] then
if h.trigger_name = _trigger_name then
success(h)
else
get_trigger(t, _trigger_name)
}
.
public define One
add_trigger
(
Var(List(HK_Trigger)) triggers,
HK_Trigger added_trigger
)=
println(">>> TRIGGER "+added_trigger.trigger_name+" added");
triggers <- [added_trigger . *triggers]
.
define List(HK_Trigger)
_remove_trigger
(
List(HK_Trigger) triggers,
String _trigger_name
)=
if triggers is
{
[] then [],
[h . t] then
if h.trigger_name = _trigger_name then
_remove_trigger(t, _trigger_name)
else
[h . _remove_trigger(t, _trigger_name)]
}
.
public define One
remove_trigger
(
Var(List(HK_Trigger)) triggers,
String trigger_name
)=
triggers <- _remove_trigger(*triggers, trigger_name)
.