diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/api.ts | 21 | ||||
| -rw-r--r-- | src/lib/prisma.ts | 2 | ||||
| -rw-r--r-- | src/lib/utils.ts | 10 |
3 files changed, 22 insertions, 11 deletions
diff --git a/src/lib/api.ts b/src/lib/api.ts index 6ea26f4..10f0b3d 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -4,7 +4,8 @@ import { Expense } from '@prisma/client' import { v4 as uuidv4 } from 'uuid' export async function createGroup(groupFormValues: GroupFormValues) { - return getPrisma().group.create({ + const prisma = await getPrisma() + return prisma.group.create({ data: { id: uuidv4(), name: groupFormValues.name, @@ -36,7 +37,8 @@ export async function createExpense( throw new Error(`Invalid participant ID: ${participant}`) } - return getPrisma().expense.create({ + const prisma = await getPrisma() + return prisma.expense.create({ data: { id: uuidv4(), groupId, @@ -73,7 +75,8 @@ export async function updateExpense( throw new Error(`Invalid participant ID: ${participant}`) } - return getPrisma().expense.update({ + const prisma = await getPrisma() + return prisma.expense.update({ where: { id: expenseId }, data: { amount: expenseFormValues.amount, @@ -104,7 +107,8 @@ export async function updateGroup( const existingGroup = await getGroup(groupId) if (!existingGroup) throw new Error('Invalid group ID') - return getPrisma().group.update({ + const prisma = await getPrisma() + return prisma.group.update({ where: { id: groupId }, data: { name: groupFormValues.name, @@ -134,21 +138,24 @@ export async function updateGroup( } export async function getGroup(groupId: string) { - return getPrisma().group.findUnique({ + const prisma = await getPrisma() + return prisma.group.findUnique({ where: { id: groupId }, include: { participants: true }, }) } export async function getGroupExpenses(groupId: string) { - return getPrisma().expense.findMany({ + const prisma = await getPrisma() + return prisma.expense.findMany({ where: { groupId }, include: { paidFor: { include: { participant: true } }, paidBy: true }, }) } export async function getExpense(groupId: string, expenseId: string) { - return getPrisma().expense.findUnique({ + const prisma = await getPrisma() + return prisma.expense.findUnique({ where: { id: expenseId }, include: { paidBy: true, paidFor: true }, }) diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts index 773547e..210e691 100644 --- a/src/lib/prisma.ts +++ b/src/lib/prisma.ts @@ -2,7 +2,7 @@ import { PrismaClient } from '@prisma/client' let prisma: PrismaClient -export function getPrisma() { +export async function getPrisma() { if (!prisma) { if (process.env.NODE_ENV === 'production') { prisma = new PrismaClient() diff --git a/src/lib/utils.ts b/src/lib/utils.ts index ec79801..502daf3 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,6 +1,10 @@ -import { type ClassValue, clsx } from "clsx" -import { twMerge } from "tailwind-merge" - +import { clsx, type ClassValue } from 'clsx' +import { twMerge } from 'tailwind-merge' + export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } + +export function delay(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)) +} |
