AAVL#29104 fac_deeplike bookmarks

svn path=/Database/trunk/; revision=23043
This commit is contained in:
Jos Groot Lipman
2014-10-21 12:42:05 +00:00
parent ef5e7e0ea0
commit a4a9ae3eb2
3 changed files with 65 additions and 22 deletions

View File

@@ -129,7 +129,7 @@ CREATE OR REPLACE PACKAGE fac AS
FUNCTION nextcyclusdatesteps (p_insdeel IN NUMBER, p_srtcontrole IN NUMBER, p_steps IN NUMBER DEFAULT 1) RETURN NUMBER;
FUNCTION makehash (p_in VARCHAR2, method IN VARCHAR2 DEFAULT 'MD5') RETURN VARCHAR2;
FUNCTION testhash (p_hash VARCHAR2, p_in VARCHAR2) RETURN NUMBER;
PROCEDURE createlikebookmark (pxmlnode VARCHAR2, prefkey NUMBER, expiresetting VARCHAR2, puserkey NUMBER);
PROCEDURE createlikebookmark (pxmlnode VARCHAR2, prefkey NUMBER);
END fac;
/
@@ -4501,30 +4501,64 @@ CREATE OR REPLACE PACKAGE BODY fac AS
END;
PROCEDURE createlikebookmark (pxmlnode VARCHAR2,
prefkey NUMBER,
expiresetting VARCHAR2,
puserkey NUMBER)
prefkey NUMBER)
IS
expiredays NUMBER (10);
likerkey NUMBER(10);
bookmark_id fac_bookmark.fac_bookmark_id%TYPE;
BEGIN
expiredays := fac.safe_To_Number (fac.getsetting ('expiresetting'));
CASE pxmlnode
WHEN 'melding'
THEN
expiredays := fac.safe_To_Number (fac.getsetting ('fac_mld_deeplike_expire'));
SELECT prs_perslid_key_voor
INTO likerkey
FROM mld_melding
WHERE mld_melding_key = prefkey;
WHEN 'bestelling'
THEN
SELECT prs_perslid_key_voor
INTO likerkey
FROM bes_bestelling
WHERE bes_bestelling_key = prefkey;
WHEN 'reservering'
THEN
SELECT res_rsv_ruimte_host_key
INTO likerkey
FROM res_rsv_ruimte
WHERE res_rsv_ruimte_key = prefkey;
END CASE;
IF expiredays IS NOT NULL AND expiredays > 0
IF expiredays > 0
THEN
INSERT INTO fac_bookmark (fac_bookmark_id,
fac_bookmark_naam,
fac_bookmark_path,
fac_bookmark_query,
fac_bookmark_refkey,
fac_bookmark_expire,
prs_perslid_key_auth)
VALUES (DBMS_RANDOM.string ('a', 16),
'fac-like deeplink',
'appl/fac/fac_deep_like.asp',
'node=' || pxmlnode || '&key=' || prefkey, -- is straks beschermd met HMAC
prefkey,
fac.datumtijdplusuitvoertijd (SYSDATE, expiredays, 'DAGEN'),
puserkey);
BEGIN
-- Als onvoorzien de bookmark er al was geven we weer iets meer tijd
-- We laten hem wel staan omdat er mogelijk al een bon bestaat die hem gebruikt.
UPDATE fac_bookmark
SET fac_bookmark_expire = fac.datumtijdplusuitvoertijd (SYSDATE, expiredays, 'DAGEN')
WHERE fac_bookmark_xmlnode = pxmlnode
AND fac_bookmark_refkey = prefkey
AND fac_bookmark_naam = 'faclikedeeplink';
IF sql%rowcount = 0
THEN
INSERT INTO fac_bookmark (fac_bookmark_id,
fac_bookmark_naam,
fac_bookmark_path,
fac_bookmark_query,
fac_bookmark_xmlnode,
fac_bookmark_refkey,
fac_bookmark_expire,
prs_perslid_key_auth)
VALUES (DBMS_RANDOM.string ('a', 16),
'faclikedeeplink',
'appl/fac/fac_like_deep.asp',
'node=' || pxmlnode || '&key=' || prefkey, -- is straks beschermd met HMAC
pxmlnode,
prefkey,
fac.datumtijdplusuitvoertijd (SYSDATE, expiredays, 'DAGEN'),
likerkey);
END IF;
END;
END IF;
END;
END fac;