Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 3x 8x 8x | import { Services } from "@/types/Constants"; import { Inject, Injectable, Logger } from "@nestjs/common"; import { Guild } from "discord.js"; import { GuildEntity } from "../entities"; import { PrismaService } from "../prisma/Prisma.service"; import { DatabaseStatus } from "../types"; import type { IGuildRepository } from "./interfaces"; @Injectable() export class GuildRepository implements IGuildRepository { public constructor(@Inject(Services.Prisma) private readonly prisma: PrismaService) {} private readonly logger = new Logger(GuildRepository.name); public async get(guildId: string): Promise<GuildEntity> { return await this.prisma.guild.findUnique({ where: { id: guildId }, include: { Settings: true, }, }); } public async create(guild: Guild): Promise<{ callback: void | GuildEntity; status: DatabaseStatus }> { let status = DatabaseStatus.Created; const callback = await this.prisma.guild .create({ data: { id: guild.id, Name: guild.name, Settings: { create: {}, }, }, include: { Settings: true, }, }) .catch((err) => { this.logger.error(err); status = DatabaseStatus.Error; }); this.logger.log(`${guild.name} Configuration Created on Database`); return { callback, status, }; } public async update(oldGuild: Guild, newGuild: Guild): Promise<GuildEntity> { return await this.prisma.guild.update({ where: { id: oldGuild.id }, data: { Name: newGuild.name, updatedAt: new Date(), }, include: { Settings: true, }, }); } public async delete(guild: Guild): Promise<GuildEntity> { return await this.prisma.guild.delete({ where: { id: guild.id }, include: { Settings: true, }, }); } public async getCreated(guild: Guild): Promise<GuildEntity> { await this.create(guild).then(({ status }) => { if (status === DatabaseStatus.Created) { this.logger.log(`${guild.name} Configuration Crated on Database`); } }); return await this.get(guild.id); } } |