From f4b7f8ccfa249289941d237c57e1c035a3a61028 Mon Sep 17 00:00:00 2001 From: zigBalthazar Date: Mon, 9 Dec 2024 14:01:52 +0330 Subject: [PATCH] feat: add delete for subscription --- .../subscriptions/subscriptions.controller.ts | 7 ++++++- .../subscriptions/subscriptions.repository.ts | 4 ++++ src/modules/subscriptions/subscriptions.service.ts | 12 ++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/modules/subscriptions/subscriptions.controller.ts b/src/modules/subscriptions/subscriptions.controller.ts index dd88d76..f64f2b2 100644 --- a/src/modules/subscriptions/subscriptions.controller.ts +++ b/src/modules/subscriptions/subscriptions.controller.ts @@ -1,6 +1,6 @@ import * as crypto from 'node:crypto'; -import { Body, Controller, Headers, Param, Patch, Post, UnauthorizedException } from '@nestjs/common'; +import { Body, Controller, Delete, Headers, Param, Patch, Post, UnauthorizedException } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { ApiConfigService } from '../../../src/shared/services/api-config.service'; @@ -89,4 +89,9 @@ export class SubscriptionsController { updateSubscription(@Param('id') id: string, @Body() props: UpdateSubscriptionDto) { return this.subscriptionService.updateSubscription(id, props); } + + @Delete(':id') + deleteSubscription(@Param('id') id: string) { + return this.subscriptionService.deleteSubscription(id); + } } diff --git a/src/modules/subscriptions/subscriptions.repository.ts b/src/modules/subscriptions/subscriptions.repository.ts index 0f60266..15ef3b2 100644 --- a/src/modules/subscriptions/subscriptions.repository.ts +++ b/src/modules/subscriptions/subscriptions.repository.ts @@ -27,4 +27,8 @@ export class SubscriptionRepository { create(entityLike: DeepPartial) { return this.repository.create(entityLike); } + + delete(id: string) { + return this.repository.delete(id); + } } diff --git a/src/modules/subscriptions/subscriptions.service.ts b/src/modules/subscriptions/subscriptions.service.ts index 7fd9ade..f1a9b52 100644 --- a/src/modules/subscriptions/subscriptions.service.ts +++ b/src/modules/subscriptions/subscriptions.service.ts @@ -133,4 +133,16 @@ export class SubscriptionsService { await this.subscriptionRepository.save(s); } + + async deleteSubscription(id: string) { + const s = await this.subscriptionRepository.findOne({ where: { _id: new ObjectId(id) } }); + + if (!s) { + throw new NotFoundException('subscription not found'); + } + + await this.subscriptionRepository.delete(id); + + await this.redis.call('CF.DEL', 'SUBSCRIPTIONS', s.subscriber); + } }