Skip to content
Snippets Groups Projects
Commit 86bcfab3 authored by Genvictus's avatar Genvictus
Browse files

feat: trigger for adding likes

parent 45e11722
No related merge requests found
...@@ -43,6 +43,8 @@ CREATE TABLE "posts" ( ...@@ -43,6 +43,8 @@ CREATE TABLE "posts" (
"refer_post" integer DEFAULT null, "refer_post" integer DEFAULT null,
"refer_post_owner" integer DEFAULT null, "refer_post_owner" integer DEFAULT null,
"tags" varchar[] DEFAULT '{}', "tags" varchar[] DEFAULT '{}',
"likes" integer DEFAULT 0,
"shares" integer DEFAULT 0,
PRIMARY KEY ("post_id", "owner_id"), PRIMARY KEY ("post_id", "owner_id"),
CONSTRAINT no_self_refer CHECK (refer_post <> post_id AND refer_post_owner <> owner_id) CONSTRAINT no_self_refer CHECK (refer_post <> post_id AND refer_post_owner <> owner_id)
...@@ -158,6 +160,20 @@ CREATE TRIGGER validate_post_reference ...@@ -158,6 +160,20 @@ CREATE TRIGGER validate_post_reference
FOR EACH ROW FOR EACH ROW
EXECUTE FUNCTION validate_post_reference(); EXECUTE FUNCTION validate_post_reference();
CREATE FUNCTION increment_like() RETURNS TRIGGER AS $$
BEGIN
UPDATE posts
SET likes = likes + 1
WHERE owner_id = NEW.post_owner_id AND post_id = NEW.post_id;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER increment_like
AFTER INSERT ON likes
FOR EACH ROW
EXECUTE FUNCTION increment_like();
-- add basic roles -- add basic roles
INSERT INTO user_roles(role) VALUES('admin'); INSERT INTO user_roles(role) VALUES('admin');
INSERT INTO user_roles(role) VALUES('moderator'); INSERT INTO user_roles(role) VALUES('moderator');
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment