mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
chore: add template_with_user
view to include user contextual data (#8568)
* chore: Refactor template sql queries to use new view * TemplateWithUser -> Template * Add unit test to enforce good view
This commit is contained in:
6
coderd/database/migrations/000138_join_users.down.sql
Normal file
6
coderd/database/migrations/000138_join_users.down.sql
Normal file
@ -0,0 +1,6 @@
|
||||
BEGIN;
|
||||
|
||||
DROP VIEW template_with_users;
|
||||
DROP VIEW visible_users;
|
||||
|
||||
COMMIT;
|
30
coderd/database/migrations/000138_join_users.up.sql
Normal file
30
coderd/database/migrations/000138_join_users.up.sql
Normal file
@ -0,0 +1,30 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE VIEW
|
||||
visible_users
|
||||
AS
|
||||
SELECT
|
||||
id, username, avatar_url
|
||||
FROM
|
||||
users;
|
||||
|
||||
COMMENT ON VIEW visible_users IS 'Visible fields of users are allowed to be joined with other tables for including context of other resources.';
|
||||
|
||||
-- If you need to update this view, put 'DROP VIEW template_with_users;' before this.
|
||||
CREATE VIEW
|
||||
template_with_users
|
||||
AS
|
||||
SELECT
|
||||
templates.*,
|
||||
coalesce(visible_users.avatar_url, '') AS created_by_avatar_url,
|
||||
coalesce(visible_users.username, '') AS created_by_username
|
||||
FROM
|
||||
templates
|
||||
LEFT JOIN
|
||||
visible_users
|
||||
ON
|
||||
templates.created_by = visible_users.id;
|
||||
|
||||
COMMENT ON VIEW template_with_users IS 'Joins in the username + avatar url of the created by user.';
|
||||
|
||||
COMMIT;
|
Reference in New Issue
Block a user