import { inject, injectable } from "inversify"; import { CreateSiteSettingDTO, UpdateSiteSettingDTO } from "./DTO/siteSetting.dto"; import { SiteSettingRepo } from "./siteSetting.repository"; import { CommonMessage } from "../../common/enums/message.enum"; import { BadRequestError } from "../../core/app/app.errors"; import { IOCTYPES } from "../../IOC/ioc.types"; @injectable() export class SiteSettingService { @inject(IOCTYPES.SiteSettingRepo) siteSettingRepo: SiteSettingRepo; async createSiteSetting(createDto: CreateSiteSettingDTO) { const existSiteSetting = await this.siteSettingRepo.findAll(); if (existSiteSetting.length > 0) throw new BadRequestError(CommonMessage.SettingExists); const siteSetting = await this.siteSettingRepo.model.create(createDto); return { siteSetting }; } async getSiteSetting(name?: string) { const projection = name ? { [name]: 1 } : {}; const siteSetting = await this.siteSettingRepo.model.findOne({}, projection); return { siteSetting }; } async updateSiteSetting(updateDto: UpdateSiteSettingDTO) { const siteSetting = await this.siteSettingRepo.model.findOneAndUpdate({}, updateDto, { new: true }); return { siteSetting }; } }