40 lines
1.1 KiB
SQL
40 lines
1.1 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;
|