| |
|
1 |
ad_page_contract { |
| |
|
2 |
Insert or update the subscription. |
| |
|
3 |
} { |
| |
|
4 |
impl_id:notnull,naturalnum |
| |
|
5 |
summary_context_id:notnull,naturalnum |
| |
|
6 |
return_url:optional |
| |
|
7 |
timeout:notnull,naturalnum |
| |
|
8 |
timeout_units:notnull |
| |
|
9 |
{meta:optional 1} |
| |
|
10 |
} |
| |
|
11 |
|
| |
|
12 |
switch $timeout_units { |
| |
|
13 |
m { set timeout [expr $timeout * 60] } |
| |
|
14 |
h { set timeout [expr $timeout * 3600] } |
| |
|
15 |
d { set timeout [expr $timeout * 86400] } |
| |
|
16 |
} |
| |
|
17 |
|
| |
|
18 |
if [db_0or1row get_susbcr_id { |
| |
|
19 |
select subscr_id |
| |
|
20 |
from rss_gen_subscrs |
| |
|
21 |
where summary_context_id = :summary_context_id |
| |
|
22 |
and impl_id = :impl_id |
| |
|
23 |
}] { |
| |
|
24 |
# Subscription exists |
| |
|
25 |
db_dml update_subscr { |
| |
|
26 |
update rss_gen_subscrs |
| |
|
27 |
set timeout = :timeout |
| |
|
28 |
where subscr_id = :subscr_id |
| |
|
29 |
} |
| |
|
30 |
} else { |
| |
|
31 |
# Create a new subscription. |
| |
|
32 |
set creation_user [ad_conn user_id] |
| |
|
33 |
set creation_ip [ns_conn peeraddr] |
| |
|
34 |
db_exec_plsql create_subscr { |
| |
|
35 |
select rss_gen_subscr__new ( |
| |
|
36 |
null, -- subscr_id |
| |
|
37 |
:impl_id, -- impl_id |
| |
|
38 |
:summary_context_id, -- summary_context_id |
| |
|
39 |
:timeout, -- timeout |
| |
|
40 |
null, -- lastbuild |
| |
|
41 |
'rss_gen_subscr', -- object_type |
| |
|
42 |
now(), -- creation_date |
| |
|
43 |
:creation_user, -- creation_user |
| |
|
44 |
:creation_ip, -- creation_ip |
| |
|
45 |
:summary_context_id -- context_id |
| |
|
46 |
) |
| |
|
47 |
} |
| |
|
48 |
} |
| |
|
49 |
|
| |
|
50 |
|
| |
|
51 |
set context_bar [ad_context_bar] |
| |
|
52 |
|
| |
|
53 |
set review_url subscr-ae?[export_url_vars impl_id summary_context_id return_url meta] |