coryd.dev/queries/views/globals/index.sql

48 lines
1.3 KiB
SQL

CREATE OR REPLACE VIEW optimized_globals AS
SELECT
*
FROM
(
SELECT
g.site_name,
g.site_description,
g.intro,
g.author,
g.email,
g.mastodon,
g.url,
g.cdn_url,
g.sitemap_uri,
g.theme_color,
g.site_type,
g.locale,
g.lang,
g.webfinger_username,
g.webfinger_hostname,
CONCAT(g.cdn_url, '/', df.filename_disk) AS avatar,
CONCAT(g.cdn_url, '/', df2.filename_disk) AS avatar_transparent,
CONCAT(g.cdn_url, '/', df3.filename_disk) AS avatar_header,
json_build_object(
'open_graph_image',
CASE
WHEN df.filename_disk IS NOT NULL
AND df.filename_disk != ''
AND df.filename_disk != '/' THEN CONCAT('/', df.filename_disk)
ELSE NULL
END,
'open_graph_image_transparent',
CASE
WHEN df2.filename_disk IS NOT NULL
AND df2.filename_disk != ''
AND df2.filename_disk != '/' THEN CONCAT('/', df2.filename_disk)
ELSE NULL
END
) AS metadata
FROM
globals g
LEFT JOIN directus_files df ON g.avatar = df.id
LEFT JOIN directus_files df2 ON g.avatar_transparent = df2.id
LEFT JOIN directus_files df3 ON g.avatar_header = df3.id
LIMIT
1
) sub;