1
0
forked from noxious/server

use camelcase file names from now on...

This commit is contained in:
2024-08-21 20:55:58 +02:00
parent acc9eaae9e
commit 6b97e7d9cb
55 changed files with 396 additions and 116 deletions

View File

@ -0,0 +1,75 @@
import { Zone } from '@prisma/client'
import prisma from '../utilities/prisma' // Import the global Prisma instance
class ZoneRepository {
async getFirst(): Promise<Zone | null> {
try {
return await prisma.zone.findFirst()
} catch (error: any) {
// Handle error
throw new Error(`Failed to get first zone: ${error.message}`)
}
}
async getAll(): Promise<Zone[]> {
try {
return await prisma.zone.findMany()
} catch (error: any) {
// Handle error
throw new Error(`Failed to get all zone: ${error.message}`)
}
}
async getById(id: number) {
try {
return await prisma.zone.findUnique({
where: {
id: id
},
include: {
zoneEventTiles: {
include: {
zone: true
}
},
zoneObjects: {
include: {
object: true
}
}
}
})
} catch (error: any) {
// Handle error
throw new Error(`Failed to get zone by id: ${error.message}`)
}
}
async getEventTiles(id: number) {
try {
return await prisma.zoneEventTile.findMany({
where: {
zoneId: id
}
})
} catch (error: any) {
// Handle error
throw new Error(`Failed to get zone event tiles: ${error.message}`)
}
}
async getObjects(id: number) {
try {
return await prisma.zoneObject.findMany({
where: {
zoneId: id
}
})
} catch (error: any) {
// Handle error
throw new Error(`Failed to get zone objects: ${error.message}`)
}
}
}
export default new ZoneRepository()