diff options
Diffstat (limited to 'src/db/rest/media/api_profile_avatar.sql')
-rw-r--r-- | src/db/rest/media/api_profile_avatar.sql | 30 |
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; |