carousal.service.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { HttpException, Injectable } from '@nestjs/common';
  2. import { InjectRepository } from '@nestjs/typeorm';
  3. import { Carousal } from '../entity/carousal.entity';
  4. import { Repository } from 'typeorm';
  5. import { CreateCarousalRequest } from '../dto/create-carousal.request';
  6. import { SearchCarousalFilter } from '../dto/search-carousal.filter';
  7. import { CarousalStatus } from '../enum/carousal-status.enum';
  8. @Injectable()
  9. export class CarousalService {
  10. constructor(
  11. @InjectRepository(Carousal)
  12. private readonly carousalRepository: Repository<Carousal>,
  13. ) {}
  14. create(createCarousalRequest: CreateCarousalRequest) {
  15. const carousal = this.carousalRepository.create({
  16. imageUrl: createCarousalRequest.imageUrl,
  17. targetType: createCarousalRequest.targetType,
  18. targetId: createCarousalRequest.targetId,
  19. targetUrl: createCarousalRequest.targetUrl,
  20. });
  21. return this.carousalRepository.save(carousal);
  22. }
  23. async search(searchCarousalFilter: SearchCarousalFilter) {
  24. return this.carousalRepository.findAndCount({
  25. where: searchCarousalFilter.getConditions(),
  26. skip: searchCarousalFilter.getSkip(),
  27. take: searchCarousalFilter.getSize(),
  28. order: searchCarousalFilter.getOrderBy(),
  29. });
  30. }
  31. async get(id: string) {
  32. const carousal = await this.carousalRepository.findOneBy({ id });
  33. if (!carousal) {
  34. throw new HttpException('Not Found', 404);
  35. }
  36. return carousal;
  37. }
  38. async update(id: string, updateCarousalRequest: CreateCarousalRequest) {
  39. const carousal = await this.get(id);
  40. carousal.imageUrl = updateCarousalRequest.imageUrl;
  41. carousal.targetType = updateCarousalRequest.targetType;
  42. carousal.targetId = updateCarousalRequest.targetId;
  43. carousal.targetUrl = updateCarousalRequest.targetUrl;
  44. return this.carousalRepository.save(carousal);
  45. }
  46. async active(id: string) {
  47. const carousal = await this.get(id);
  48. carousal.status = CarousalStatus.ACTIVE;
  49. return this.carousalRepository.save(carousal);
  50. }
  51. async inactive(id: string) {
  52. const carousal = await this.get(id);
  53. carousal.status = CarousalStatus.INACTIVE;
  54. return this.carousalRepository.save(carousal);
  55. }
  56. async delete(id: string) {
  57. const carousal = await this.get(id);
  58. return this.carousalRepository.remove(carousal);
  59. }
  60. async activeList() {
  61. return this.carousalRepository.find({
  62. where: {
  63. status: CarousalStatus.ACTIVE,
  64. },
  65. order: { createdTime: 'DESC' },
  66. });
  67. }
  68. }