35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import PocketBase from "pocketbase";
|
|
import { transformReaction } from "../util/transform-types";
|
|
|
|
export const createReactionsService = (pb: PocketBase) => ({
|
|
async getReactionsForMatch(matchId: string) {
|
|
const reactions = await pb.collection('reactions').getFullList({
|
|
filter: `match="${matchId}"`,
|
|
expand: 'player',
|
|
});
|
|
return reactions.map(transformReaction)
|
|
},
|
|
|
|
async getUserReaction(matchId: string, userId: string, emoji: string) {
|
|
try {
|
|
return await pb.collection('reactions').getFirstListItem(`match="${matchId}" && player="${userId}" && emoji="${emoji}"`);
|
|
} catch (error) {
|
|
return;
|
|
}
|
|
},
|
|
|
|
async createReaction(matchId: string, userId: string, emoji: string) {
|
|
const reaction = await pb.collection('reactions').create({
|
|
match: matchId,
|
|
player: userId,
|
|
emoji: emoji,
|
|
}, {
|
|
expand: 'player'
|
|
});
|
|
return transformReaction(reaction)
|
|
},
|
|
|
|
async deleteReaction(reactionId: string) {
|
|
return await pb.collection('reactions').delete(reactionId);
|
|
},
|
|
}); |