31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
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 };
|
|
}
|
|
}
|