init
This commit is contained in:
97
backend/src/utils/supabase-comments-functions.sql
Normal file
97
backend/src/utils/supabase-comments-functions.sql
Normal file
@@ -0,0 +1,97 @@
|
||||
-- 创建获取所有评论的函数
|
||||
CREATE
|
||||
OR REPLACE FUNCTION public .get_comments_with_posts() RETURNS TABLE (
|
||||
comment_id UUID,
|
||||
content TEXT,
|
||||
sentiment_score FLOAT,
|
||||
created_at TIMESTAMP WITH TIME ZONE,
|
||||
updated_at TIMESTAMP WITH TIME ZONE,
|
||||
post_id UUID,
|
||||
user_id UUID,
|
||||
user_profile JSONB,
|
||||
post JSONB
|
||||
) LANGUAGE plpgsql SECURITY DEFINER AS $$ BEGIN
|
||||
RETURN QUERY
|
||||
SELECT
|
||||
c .comment_id,
|
||||
c .content,
|
||||
c .sentiment_score,
|
||||
c .created_at,
|
||||
c .updated_at,
|
||||
c .post_id,
|
||||
c .user_id,
|
||||
jsonb_build_object(
|
||||
'id',
|
||||
up.id,
|
||||
'full_name',
|
||||
up.full_name,
|
||||
'avatar_url',
|
||||
up.avatar_url
|
||||
) AS user_profile,
|
||||
jsonb_build_object(
|
||||
'post_id',
|
||||
p.post_id,
|
||||
'title',
|
||||
p.title,
|
||||
'description',
|
||||
p.description,
|
||||
'platform',
|
||||
p.platform,
|
||||
'post_url',
|
||||
p.post_url,
|
||||
'published_at',
|
||||
p.published_at,
|
||||
'influencer_id',
|
||||
p.influencer_id
|
||||
) AS post
|
||||
FROM
|
||||
public .comments c
|
||||
LEFT JOIN public .user_profiles up ON c .user_id = up.id
|
||||
LEFT JOIN public .posts p ON c .post_id = p.post_id
|
||||
ORDER BY
|
||||
c .created_at DESC;
|
||||
|
||||
END;
|
||||
|
||||
$$;
|
||||
|
||||
-- 创建获取特定帖子评论的函数
|
||||
CREATE
|
||||
OR REPLACE FUNCTION public .get_comments_for_post(post_id_param UUID) RETURNS TABLE (
|
||||
comment_id UUID,
|
||||
content TEXT,
|
||||
sentiment_score FLOAT,
|
||||
created_at TIMESTAMP WITH TIME ZONE,
|
||||
updated_at TIMESTAMP WITH TIME ZONE,
|
||||
post_id UUID,
|
||||
user_id UUID,
|
||||
user_profile JSONB
|
||||
) LANGUAGE plpgsql SECURITY DEFINER AS $$ BEGIN
|
||||
RETURN QUERY
|
||||
SELECT
|
||||
c .comment_id,
|
||||
c .content,
|
||||
c .sentiment_score,
|
||||
c .created_at,
|
||||
c .updated_at,
|
||||
c .post_id,
|
||||
c .user_id,
|
||||
jsonb_build_object(
|
||||
'id',
|
||||
up.id,
|
||||
'full_name',
|
||||
up.full_name,
|
||||
'avatar_url',
|
||||
up.avatar_url
|
||||
) AS user_profile
|
||||
FROM
|
||||
public .comments c
|
||||
LEFT JOIN public .user_profiles up ON c .user_id = up.id
|
||||
WHERE
|
||||
c .post_id = post_id_param
|
||||
ORDER BY
|
||||
c .created_at DESC;
|
||||
|
||||
END;
|
||||
|
||||
$$;
|
||||
Reference in New Issue
Block a user