Files
zxq5.dev/backend/sql/functions/friend.surql
T
FantasyPvP 1707309d95 data
2024-12-02 17:39:27 +00:00

28 lines
978 B
Plaintext

DEFINE FUNCTION friend::request($from: uuid, $to: uuid) {
RELATE Entity:from -> FriendRequest -> Entity:to
content {
created = time::now()
};
}
DEFINE FUNCTION friend::accept($from: uuid, $to: uuid) {
-- check if there is a friend request
IF !HasFriendRequest WHERE out = Entity:from AND in = Entity:to {
RETURN;
}
LET $fsid: uuid = rand::uuid::v4();
CREATE Friendship SET id = $fsid, channel_id = fn::channel::new(), since = time::now();
RELATE Entity:from -> HasFriendship -> Friendship:fsid CONTENT { nickname = Entity:from.displayname };
RELATE Entity:to -> HasFriendship -> Friendship:fsid CONTENT { nickname = Entity:to.displayname };
}
DEFINE FUNCTION friend::reject($from: uuid, $to: uuid) {
DELETE Entity:from -> FriendRequest WHERE out = Entity:to
}
DEFINE FUNCTION friend::remove($from: uuid, $to: uuid) {
DELETE Entity:from -> HasFriendship -> Friendship WHERE <- HasFriendship.out <- Entity:to
}