blob: 08f6483520646fb41df671900592454006f0dfd9 (
plain)
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
|
CREATE FUNCTION _api.serve_user_or_default_media(
_user_id INTEGER,
_type xssbook.user_media_type,
_default TEXT
)
RETURNS sys."*/*"
LANGUAGE plpgsql VOLATILE
AS $BODY$
DECLARE
_media_id INTEGER;
BEGIN
SELECT id
FROM xssbook.user_media m
WHERE m.type = _type
AND m.user_id = _user_id
INTO _media_id;
IF FOUND THEN
RETURN _api.serve_user_media(_media_id);
END IF;
SELECT id
FROM xssbook.media m
WHERE m.name = _default
INTO _media_id;
IF FOUND THEN
RETURN _api.serve_system_media(_media_id);
END IF;
PERFORM _api_raise_not_found();
END
$BODY$;
GRANT EXECUTE ON FUNCTION _api.serve_user_or_default_media(INTEGER, xssbook.user_media_type, TEXT)
TO rest_anon, rest_user;
GRANT SELECT ON TABLE xssbook.user_media
TO rest_anon, rest_user;
GRANT SELECT ON TABLE xssbook.media
TO rest_anon, rest_user;
|