summaryrefslogtreecommitdiff
path: root/src/db/rest/media/api_profile_avatar.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/rest/media/api_profile_avatar.sql')
-rw-r--r--src/db/rest/media/api_profile_avatar.sql30
1 files changed, 7 insertions, 23 deletions
diff --git a/src/db/rest/media/api_profile_avatar.sql b/src/db/rest/media/api_profile_avatar.sql
index 8607999..b3e456c 100644
--- a/src/db/rest/media/api_profile_avatar.sql
+++ b/src/db/rest/media/api_profile_avatar.sql
@@ -5,32 +5,16 @@ RETURNS sys."*/*"
LANGUAGE plpgsql VOLATILE
AS $BODY$
DECLARE
- _id INTEGER;
- _mod INTEGER;
- _name TEXT;
+ _default TEXT;
BEGIN
- SELECT media_id INTO _id
- FROM admin.user_media m
- WHERE m.user_id = profile_avatar.user_id
- AND type = 'avatar'::admin.user_media_type;
-
- -- get default if not exists
- IF NOT FOUND THEN
- _mod = MOD(user_id, 24);
- _name = 'default_avatar_' || _mod || '.png';
-
- SELECT id INTO _id
- FROM admin.media
- WHERE name = _name;
- END IF;
-
- RETURN _api.serve_media(_id);
+ _default := 'default_avatar_' || MOD(user_id, 25) || '.png';
+ RETURN _api.serve_user_or_default_media(
+ user_id,
+ 'avatar'::admin.user_media_type,
+ _default
+ );
END
$BODY$;
GRANT EXECUTE ON FUNCTION api.profile_avatar(INTEGER)
TO rest_anon, rest_user;
-GRANT SELECT ON TABLE admin.user_media
- TO rest_anon, rest_user;
-GRANT SELECT ON TABLE admin.media
- TO rest_anon, rest_user;