diff --git a/src/modules/ttl/ttl.controller.ts b/src/modules/ttl/ttl.controller.ts index 300ae4ff010bf4324990e035985ed4b41e5d2ce0..92e8092db18d3c1e12a23ba69036e9639bf900d6 100644 --- a/src/modules/ttl/ttl.controller.ts +++ b/src/modules/ttl/ttl.controller.ts @@ -34,4 +34,13 @@ export class TtlController { return res.status(200).json(result); } + + remove(req: Request, res: Response): Response { + const result = this.ttlService.remove(req.params.key); + if (!result) { + return res.status(404).json({ message: 'Not found key' }) + } + + return res.status(204).send(); + } } diff --git a/src/modules/ttl/ttl.repository.ts b/src/modules/ttl/ttl.repository.ts index 646361190a46df3ef96ea2396dfb996da4e7e6c3..f92288bc825580936c11ed7341d0bcd5cb6e5554 100644 --- a/src/modules/ttl/ttl.repository.ts +++ b/src/modules/ttl/ttl.repository.ts @@ -23,6 +23,11 @@ export class TtlRepository { if (!value) { return value; } + return { key, value } } + + remove(key: string): number { + return this.store.del(key); + } } diff --git a/src/modules/ttl/ttl.router.ts b/src/modules/ttl/ttl.router.ts index 935a0ee08d318de84530eda6d737e0d15312d9c6..5c4b0a6f55ecd407e57748af923b1343a1741d34 100644 --- a/src/modules/ttl/ttl.router.ts +++ b/src/modules/ttl/ttl.router.ts @@ -10,6 +10,11 @@ ttlRouter.get( ttlController.get.bind(ttlController), ); +ttlRouter.delete( + '/:key', + ttlController.remove.bind(ttlController), +); + ttlRouter.post( '/', ttlController.add.bind(ttlController), diff --git a/src/modules/ttl/ttl.service.ts b/src/modules/ttl/ttl.service.ts index 292fdc01e21b544a823192a5de027957ff9a4658..038a3f5b1d52a0f0c5fb440146f812080a2e2036 100644 --- a/src/modules/ttl/ttl.service.ts +++ b/src/modules/ttl/ttl.service.ts @@ -13,4 +13,8 @@ export class TtlService { get(key: string): TtlResponse { return this.ttlRepository.get(key); } + + remove(key: string): number { + return this.ttlRepository.remove(key); + } } \ No newline at end of file