chore: add landing module
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
import { Injectable, NotFoundException } from "@nestjs/common";
|
||||
|
||||
import { PaginationDto } from "../../../common/DTO/pagination.dto";
|
||||
import { CommonMessage, SliderMessage } from "../../../common/enums/message.enum";
|
||||
import { CreateSliderDto } from "../DTO/create-slider.dto";
|
||||
import { UpdateSliderDto } from "../DTO/update-slider.dto";
|
||||
import { SlidersRepository } from "../repositories/sliders.repository";
|
||||
@Injectable()
|
||||
export class SlidersService {
|
||||
constructor(private readonly slidersRepository: SlidersRepository) {}
|
||||
|
||||
async create(createSliderDto: CreateSliderDto) {
|
||||
const slider = this.slidersRepository.create(createSliderDto);
|
||||
await this.slidersRepository.save(slider);
|
||||
return {
|
||||
message: CommonMessage.CREATED,
|
||||
slider,
|
||||
};
|
||||
}
|
||||
//*************************** */
|
||||
async getSlidersList(queryDto: PaginationDto) {
|
||||
const [sliders, count] = await this.slidersRepository.getSlidersListForAdmin(queryDto);
|
||||
return {
|
||||
sliders,
|
||||
count,
|
||||
paginate: true,
|
||||
};
|
||||
}
|
||||
//************************* */
|
||||
async getSliderById(id: string) {
|
||||
const slider = await this.slidersRepository.findOne({ where: { id } });
|
||||
if (!slider) throw new NotFoundException(SliderMessage.SLIDER_NOT_FOUND);
|
||||
|
||||
return {
|
||||
slider,
|
||||
};
|
||||
}
|
||||
//****************** */
|
||||
async update(id: string, updateSliderDto: UpdateSliderDto) {
|
||||
const { slider } = await this.getSliderById(id);
|
||||
|
||||
await this.slidersRepository.save({ ...slider, ...updateSliderDto });
|
||||
return {
|
||||
message: CommonMessage.UPDATE_SUCCESS,
|
||||
};
|
||||
}
|
||||
//****************** */
|
||||
async remove(id: string) {
|
||||
const { slider } = await this.getSliderById(id);
|
||||
await this.slidersRepository.remove(slider);
|
||||
|
||||
return {
|
||||
message: CommonMessage.DELETED,
|
||||
};
|
||||
}
|
||||
//****************** */
|
||||
|
||||
async toggleSliderStatus(id: string) {
|
||||
const { slider } = await this.getSliderById(id);
|
||||
slider.isActive = !slider.isActive;
|
||||
await this.slidersRepository.save(slider);
|
||||
return {
|
||||
message: CommonMessage.UPDATE_SUCCESS,
|
||||
};
|
||||
}
|
||||
//****************** */
|
||||
|
||||
async getSlidersListForLanding() {
|
||||
const sliders = await this.slidersRepository.find({ where: { isActive: true } });
|
||||
return sliders;
|
||||
}
|
||||
//****************** */
|
||||
}
|
||||
Reference in New Issue
Block a user