chore: add landing module

This commit is contained in:
mahyargdz
2025-04-13 11:57:03 +03:30
parent 78f481871c
commit 6f55f7a1d6
14 changed files with 210 additions and 81 deletions
@@ -1,48 +0,0 @@
import { Injectable, NotFoundException } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
import { SliderMessage } from "../../../common/enums/message.enum";
import { CreateSliderDto } from "../DTO/create-slider.dto";
import { UpdateSliderDto } from "../DTO/update-slider.dto";
import { Slider } from "../entities/slider.entity";
@Injectable()
export class SliderService {
constructor(
@InjectRepository(Slider)
private readonly sliderRepository: Repository<Slider>,
) {}
async create(createSliderDto: CreateSliderDto): Promise<Slider> {
const slider = this.sliderRepository.create(createSliderDto);
return await this.sliderRepository.save(slider);
}
async findAll(): Promise<Slider[]> {
return await this.sliderRepository.find({
order: {
order: "ASC",
},
});
}
async getSliderById(id: string): Promise<Slider> {
const slider = await this.sliderRepository.findOne({ where: { id } });
if (!slider) {
throw new NotFoundException(SliderMessage.SLIDER_NOT_FOUND);
}
return slider;
}
async update(id: string, updateSliderDto: UpdateSliderDto): Promise<Slider> {
const slider = await this.getSliderById(id);
Object.assign(slider, updateSliderDto);
return await this.sliderRepository.save(slider);
}
async remove(id: string): Promise<void> {
const slider = await this.getSliderById(id);
await this.sliderRepository.remove(slider);
}
}
@@ -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;
}
//****************** */
}