sinProject-Inc/talk

View on GitHub
src/lib/locale/locale_repository_prisma.ts

Summary

Maintainability
A
0 mins
Test Coverage
import type { Locale, PrismaClient } from '@prisma/client'
import type { LocaleCode } from './locale_code'
import type { LocaleRepository } from './locale_repository'

export class LocaleRepositoryPrisma implements LocaleRepository {
    public constructor(private readonly _prisma_client: PrismaClient) {}

    public async find_many(): Promise<Locale[]> {
        const locales = await this._prisma_client.locale.findMany({
            orderBy: [{ language: 'asc' }, { country: 'asc' }],
        })

        return locales
    }

    public async find_unique(locale_code: LocaleCode): Promise<Locale | null> {
        const code = locale_code.code
        const locale = await this._prisma_client.locale.findUnique({ where: { code } })

        return locale
    }
}