@eventista/ticketing-common 1.1.8 → 1.1.9-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/database/redis/index.d.ts +1 -0
  2. package/dist/database/redis/index.js +1 -0
  3. package/dist/database/redis/index.js.map +1 -1
  4. package/dist/database/redis/record-lock.service.d.ts +20 -0
  5. package/dist/database/redis/record-lock.service.js +102 -0
  6. package/dist/database/redis/record-lock.service.js.map +1 -0
  7. package/dist/database/redis/redis.service.d.ts +1 -0
  8. package/dist/database/redis/redis.service.js +34 -2
  9. package/dist/database/redis/redis.service.js.map +1 -1
  10. package/dist/decorators/index.d.ts +1 -0
  11. package/dist/decorators/index.js +1 -0
  12. package/dist/decorators/index.js.map +1 -1
  13. package/dist/decorators/record-lock.decorator.d.ts +9 -0
  14. package/dist/decorators/record-lock.decorator.js +8 -0
  15. package/dist/decorators/record-lock.decorator.js.map +1 -0
  16. package/dist/examples/custom-lock-response.example.d.ts +14 -0
  17. package/dist/examples/custom-lock-response.example.js +71 -0
  18. package/dist/examples/custom-lock-response.example.js.map +1 -0
  19. package/dist/examples/redis-lock-usage.example.d.ts +49 -0
  20. package/dist/examples/redis-lock-usage.example.js +164 -0
  21. package/dist/examples/redis-lock-usage.example.js.map +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/interceptors/index.d.ts +1 -0
  26. package/dist/interceptors/index.js +18 -0
  27. package/dist/interceptors/index.js.map +1 -0
  28. package/dist/interceptors/record-lock.interceptor.d.ts +12 -0
  29. package/dist/interceptors/record-lock.interceptor.js +85 -0
  30. package/dist/interceptors/record-lock.interceptor.js.map +1 -0
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +1 -1
@@ -1,2 +1,3 @@
1
1
  export * from './redis.module';
2
2
  export * from './redis.service';
3
+ export * from './record-lock.service';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./redis.module"), exports);
18
18
  __exportStar(require("./redis.service"), exports);
19
+ __exportStar(require("./record-lock.service"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/redis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/redis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC;AAChC,wDAAsC"}
@@ -0,0 +1,20 @@
1
+ import { RedisService } from './redis.service';
2
+ export interface LockOptions {
3
+ ttlSeconds?: number;
4
+ timeoutMs?: number;
5
+ prefix?: string;
6
+ }
7
+ export interface LockResult {
8
+ success: boolean;
9
+ lockToken?: string;
10
+ error?: string;
11
+ }
12
+ export declare class RecordLockService {
13
+ private readonly redisService;
14
+ private readonly customLogger;
15
+ constructor(redisService: RedisService);
16
+ executeWithLock<T>(recordType: string, recordId: string, fn: () => Promise<T>, options?: LockOptions): Promise<T>;
17
+ acquireRecordLock(recordType: string, recordId: string, options?: LockOptions): Promise<LockResult>;
18
+ releaseRecordLock(recordType: string, recordId: string, lockToken: string, prefix?: string): Promise<boolean>;
19
+ private generateLockKey;
20
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RecordLockService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const redis_service_1 = require("./redis.service");
15
+ const custom_logger_1 = require("../../logger/custom.logger");
16
+ const uuid_1 = require("uuid");
17
+ let RecordLockService = class RecordLockService {
18
+ constructor(redisService) {
19
+ this.redisService = redisService;
20
+ this.customLogger = new custom_logger_1.CustomLogger('RecordLockService');
21
+ }
22
+ async executeWithLock(recordType, recordId, fn, options = {}) {
23
+ const { ttlSeconds = 30, timeoutMs = 5000, prefix = 'record_lock' } = options;
24
+ const lockKey = this.generateLockKey(prefix, recordType, recordId);
25
+ const lockToken = (0, uuid_1.v4)();
26
+ const lockAcquired = await this.redisService.acquireLock(lockKey, lockToken, ttlSeconds, timeoutMs);
27
+ if (!lockAcquired) {
28
+ throw new Error(`Failed to acquire lock for ${recordType}:${recordId} within ${timeoutMs}ms`);
29
+ }
30
+ this.customLogger.log(`Lock acquired for ${recordType}:${recordId}`);
31
+ try {
32
+ const result = await fn();
33
+ return result;
34
+ }
35
+ finally {
36
+ try {
37
+ await this.redisService.releaseLock(lockKey, lockToken);
38
+ this.customLogger.log(`Lock released for ${recordType}:${recordId}`);
39
+ }
40
+ catch (releaseError) {
41
+ this.customLogger.error(`Failed to release lock for ${recordType}:${recordId}`, releaseError.stack);
42
+ }
43
+ }
44
+ }
45
+ async acquireRecordLock(recordType, recordId, options = {}) {
46
+ const { ttlSeconds = 30, timeoutMs = 5000, prefix = 'record_lock' } = options;
47
+ const lockKey = this.generateLockKey(prefix, recordType, recordId);
48
+ const lockToken = (0, uuid_1.v4)();
49
+ try {
50
+ const success = await this.redisService.acquireLock(lockKey, lockToken, ttlSeconds, timeoutMs);
51
+ if (success) {
52
+ this.customLogger.log(`Record lock acquired: ${recordType}:${recordId}`);
53
+ return {
54
+ success: true,
55
+ lockToken
56
+ };
57
+ }
58
+ else {
59
+ const error = `Failed to acquire lock for ${recordType}:${recordId} within ${timeoutMs}ms`;
60
+ this.customLogger.warn(error);
61
+ return {
62
+ success: false,
63
+ error
64
+ };
65
+ }
66
+ }
67
+ catch (err) {
68
+ const error = `Error acquiring lock for ${recordType}:${recordId}: ${err.message}`;
69
+ this.customLogger.error(error, err.stack);
70
+ return {
71
+ success: false,
72
+ error
73
+ };
74
+ }
75
+ }
76
+ async releaseRecordLock(recordType, recordId, lockToken, prefix = 'record_lock') {
77
+ const lockKey = this.generateLockKey(prefix, recordType, recordId);
78
+ try {
79
+ const success = await this.redisService.releaseLock(lockKey, lockToken);
80
+ if (success) {
81
+ this.customLogger.log(`Record lock released: ${recordType}:${recordId}`);
82
+ }
83
+ else {
84
+ this.customLogger.warn(`Failed to release lock for ${recordType}:${recordId} - invalid token`);
85
+ }
86
+ return success;
87
+ }
88
+ catch (err) {
89
+ this.customLogger.error(`Error releasing lock for ${recordType}:${recordId}`, err.stack);
90
+ throw err;
91
+ }
92
+ }
93
+ generateLockKey(prefix, recordType, recordId) {
94
+ return `${prefix}:${recordType}:${recordId}`;
95
+ }
96
+ };
97
+ exports.RecordLockService = RecordLockService;
98
+ exports.RecordLockService = RecordLockService = __decorate([
99
+ (0, common_1.Injectable)(),
100
+ __metadata("design:paramtypes", [redis_service_1.RedisService])
101
+ ], RecordLockService);
102
+ //# sourceMappingURL=record-lock.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-lock.service.js","sourceRoot":"","sources":["../../../src/database/redis/record-lock.service.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class RedisService implements OnModuleInit, OnModuleDestroy {
27
27
  decrby(key: string, decrement: number): Promise<number>;
28
28
  pipeline(commands: Array<[string, ...any[]]>): Promise<any[]>;
29
29
  executeScript(script: string, keys: string[], args: string[]): Promise<any>;
30
+ acquireLock(lockKey: string, value: string, ttlSeconds?: number, timeoutMs?: number): Promise<boolean>;
30
31
  releaseLock(lockKey: string, value: string): Promise<boolean>;
31
32
  zadd(key: string, ...args: string[]): Promise<number>;
32
33
  zrevrange(key: string, start: number, stop: number, withScores?: boolean): Promise<string[]>;
@@ -252,6 +252,25 @@ let RedisService = class RedisService {
252
252
  throw err;
253
253
  }
254
254
  }
255
+ async acquireLock(lockKey, value, ttlSeconds = 30, timeoutMs = 5000) {
256
+ const startTime = Date.now();
257
+ while (Date.now() - startTime < timeoutMs) {
258
+ try {
259
+ const result = await this.redis.set(lockKey, value, 'PX', ttlSeconds * 1000, 'NX');
260
+ if (result === 'OK') {
261
+ this.customLogger.log(`Lock acquired: ${lockKey}`);
262
+ return true;
263
+ }
264
+ await new Promise(resolve => setTimeout(resolve, 50));
265
+ }
266
+ catch (error) {
267
+ this.customLogger.error(`Error acquiring lock ${lockKey}`, error.stack);
268
+ throw error;
269
+ }
270
+ }
271
+ this.customLogger.warn(`Failed to acquire lock ${lockKey} within ${timeoutMs}ms`);
272
+ return false;
273
+ }
255
274
  async releaseLock(lockKey, value) {
256
275
  const script = `
257
276
  if redis.call("get", KEYS[1]) == ARGV[1] then
@@ -260,8 +279,21 @@ let RedisService = class RedisService {
260
279
  return 0
261
280
  end
262
281
  `;
263
- const result = await this.redis.eval(script, 1, lockKey, value);
264
- return result === 1;
282
+ try {
283
+ const result = await this.redis.eval(script, 1, lockKey, value);
284
+ const success = result === 1;
285
+ if (success) {
286
+ this.customLogger.log(`Lock released: ${lockKey}`);
287
+ }
288
+ else {
289
+ this.customLogger.warn(`Failed to release lock ${lockKey} - not owned by this value`);
290
+ }
291
+ return success;
292
+ }
293
+ catch (error) {
294
+ this.customLogger.error(`Error releasing lock ${lockKey}`, error.stack);
295
+ throw error;
296
+ }
265
297
  }
266
298
  async zadd(key, ...args) {
267
299
  return this.redis.zadd(key, ...args);
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/database/redis/redis.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/database/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmF;AACnF,qCAAkC;AAClC,2CAA+C;AAC/C,8DAA0D;AAGnD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAMvB,YAC2B,KAA+B,EACvC,aAA4B;QADH,UAAK,GAAL,KAAK,CAAS;QACvC,kBAAa,GAAb,aAAa,CAAe;QAP9B,iBAAY,GAAG,IAAI,4BAAY,CAAC,cAAc,CAAC,CAAC;QAEzD,sBAAiB,GAAG,CAAC,CAAC;QACb,yBAAoB,GAAG,EAAE,CAAC;IAKxC,CAAC;IAEJ,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAGvD,IAAI,CAAC,6BAA6B,GAAG,WAAW,CAAC,GAAG,EAAE;YACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,EAAE,KAAK,CAAC,CAAC;QAGV,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAKO,gBAAgB;QACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,oBAAoB,WAAW,CAAC,CAAC;YACpG,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,6CAA6C,IAAI,CAAC,iBAAiB,QAAQ,KAAK,OAAO,CAAC,CAAC;QAE/G,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC;gBAEH,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;gBAEf,CAAC;gBAGD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAG3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;oBACnE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,iBAAiB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAKO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAEtC,IAAI,WAAW,EAAE,CAAC;YASlB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBACnF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAA2B,EAAE,CAAC;YAExC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAClC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACrC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;4BACjB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAG7D,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACvC,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAE/E,IAAI,CAAC;gBAEH,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,gDAAgD,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO,MAAM,KAAK,MAAM,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,OAAc,EAAE,EAChB,UAAU,GAAG,CAAC;QAEd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAgB,CAAC;QAErB,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC;gBAEH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;gBAGlB,IACE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;oBAC9C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;oBAC5C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EACvD,CAAC;oBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,OAAO,oBAAoB,OAAO,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAGvH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;oBAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBAEzD,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBAGD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAGD,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,EAAE,CAAC;YAEhB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,GAAG,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,GAAY;QAChD,IAAI,CAAC;YACH,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,GAAG,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,sBAAsB,GAAG,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,SAAiB;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,SAAiB;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAGD,KAAK,CAAC,QAAQ,CAAC,QAAmC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAGD,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,IAAc,EAAE,IAAc;QAEhE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAGrF,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAErC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAWD,KAAK,CAAC,WAAW,CACf,OAAe,EACf,KAAa,EACb,aAAqB,EAAE,EACvB,YAAoB,IAAI;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEnF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;oBACnD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAGD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAExD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wBAAwB,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0BAA0B,OAAO,WAAW,SAAS,IAAI,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,KAAa;QAC9C,MAAM,MAAM,GAAG;;;;;;KAMd,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC;YAE7B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0BAA0B,OAAO,4BAA4B,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wBAAwB,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,IAAc;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAGD,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,UAAoB;QAC5E,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,UAAoB;QACzE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAAiB;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,MAAc;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAGD,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AAhaY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,eAAM,EAAC,eAAe,CAAC,CAAA;qCAAyB,iBAAO;QACxB,sBAAa;GARpC,YAAY,CAgaxB"}
@@ -1,2 +1,3 @@
1
1
  export * from './public.decorator';
2
2
  export * from './is-object-id.decorator';
3
+ export * from './record-lock.decorator';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./public.decorator"), exports);
18
18
  __exportStar(require("./is-object-id.decorator"), exports);
19
+ __exportStar(require("./record-lock.decorator"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2DAAyC;AACzC,0DAAwC"}
@@ -0,0 +1,9 @@
1
+ export declare const RECORD_LOCK_KEY = "record_lock";
2
+ export interface RecordLockMetadata {
3
+ recordType: string;
4
+ recordIdParam: string;
5
+ ttlSeconds?: number;
6
+ timeoutMs?: number;
7
+ prefix?: string;
8
+ }
9
+ export declare const RecordLock: (metadata: RecordLockMetadata) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecordLock = exports.RECORD_LOCK_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.RECORD_LOCK_KEY = 'record_lock';
6
+ const RecordLock = (metadata) => (0, common_1.SetMetadata)(exports.RECORD_LOCK_KEY, metadata);
7
+ exports.RecordLock = RecordLock;
8
+ //# sourceMappingURL=record-lock.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-lock.decorator.js","sourceRoot":"","sources":["../../src/decorators/record-lock.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,eAAe,GAAG,aAAa,CAAC;AAgCtC,MAAM,UAAU,GAAG,CAAC,QAA4B,EAAE,EAAE,CACzD,IAAA,oBAAW,EAAC,uBAAe,EAAE,QAAQ,CAAC,CAAC;AAD5B,QAAA,UAAU,cACkB"}
@@ -0,0 +1,14 @@
1
+ export declare class TicketController {
2
+ processPayment(ticketId: string, paymentData: any): Promise<{
3
+ paymentId: string;
4
+ ticketId: string;
5
+ amount: any;
6
+ status: string;
7
+ processedAt: Date;
8
+ }>;
9
+ updateTicket(ticketId: string, updateData: any): Promise<{
10
+ ticketId: string;
11
+ updatedFields: string[];
12
+ updatedAt: Date;
13
+ }>;
14
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TicketController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const record_lock_decorator_1 = require("../decorators/record-lock.decorator");
18
+ const record_lock_interceptor_1 = require("../interceptors/record-lock.interceptor");
19
+ let TicketController = class TicketController {
20
+ async processPayment(ticketId, paymentData) {
21
+ console.log(`Processing payment for ticket ${ticketId}`);
22
+ await new Promise(resolve => setTimeout(resolve, 2000));
23
+ return {
24
+ paymentId: '12345',
25
+ ticketId: ticketId,
26
+ amount: paymentData.amount,
27
+ status: 'completed',
28
+ processedAt: new Date()
29
+ };
30
+ }
31
+ async updateTicket(ticketId, updateData) {
32
+ console.log(`Updating ticket ${ticketId}`);
33
+ return {
34
+ ticketId: ticketId,
35
+ updatedFields: Object.keys(updateData),
36
+ updatedAt: new Date()
37
+ };
38
+ }
39
+ };
40
+ exports.TicketController = TicketController;
41
+ __decorate([
42
+ (0, common_1.Post)(':ticketId/payment'),
43
+ (0, record_lock_decorator_1.RecordLock)({
44
+ recordType: 'ticket_payment',
45
+ recordIdParam: 'ticketId',
46
+ ttlSeconds: 120
47
+ }),
48
+ __param(0, (0, common_1.Param)('ticketId')),
49
+ __param(1, (0, common_1.Body)()),
50
+ __metadata("design:type", Function),
51
+ __metadata("design:paramtypes", [String, Object]),
52
+ __metadata("design:returntype", Promise)
53
+ ], TicketController.prototype, "processPayment", null);
54
+ __decorate([
55
+ (0, common_1.Put)(':ticketId'),
56
+ (0, record_lock_decorator_1.RecordLock)({
57
+ recordType: 'ticket',
58
+ recordIdParam: 'ticketId',
59
+ ttlSeconds: 60
60
+ }),
61
+ __param(0, (0, common_1.Param)('ticketId')),
62
+ __param(1, (0, common_1.Body)()),
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", [String, Object]),
65
+ __metadata("design:returntype", Promise)
66
+ ], TicketController.prototype, "updateTicket", null);
67
+ exports.TicketController = TicketController = __decorate([
68
+ (0, common_1.Controller)('tickets'),
69
+ (0, common_1.UseInterceptors)(record_lock_interceptor_1.RecordLockInterceptor)
70
+ ], TicketController);
71
+ //# sourceMappingURL=custom-lock-response.example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-lock-response.example.js","sourceRoot":"","sources":["../../src/examples/custom-lock-response.example.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,2CAAqF;AACrF,+EAAiE;AACjE,qFAAgF;AAIzE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAQrB,AAAN,KAAK,CAAC,cAAc,CACC,QAAgB,EAC3B,WAAgB;QAGxB,OAAO,CAAC,GAAG,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;QAGzD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAGxD,OAAO;YACL,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,YAAY,CACG,QAAgB,EAC3B,UAAe;QAGvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAG3C,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;CACF,CAAA;AAhDY,4CAAgB;AAQrB;IANL,IAAA,aAAI,EAAC,mBAAmB,CAAC;IACzB,IAAA,kCAAU,EAAC;QACV,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,UAAU;QACzB,UAAU,EAAE,GAAG;KAChB,CAAC;IAEC,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,aAAI,GAAE,CAAA;;;;sDAgBR;AAQK;IANL,IAAA,YAAG,EAAC,WAAW,CAAC;IAChB,IAAA,kCAAU,EAAC;QACV,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,UAAU;QACzB,UAAU,EAAE,EAAE;KACf,CAAC;IAEC,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAWR;2BA/CU,gBAAgB;IAF5B,IAAA,mBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,wBAAe,EAAC,+CAAqB,CAAC;GAC1B,gBAAgB,CAgD5B"}
@@ -0,0 +1,49 @@
1
+ import { RecordLockService } from '../database/redis/record-lock.service';
2
+ export declare class TicketController {
3
+ updateTicket(ticketId: string, updateData: any): Promise<{
4
+ success: boolean;
5
+ ticketId: string;
6
+ updateData: any;
7
+ }>;
8
+ processPayment(ticketId: string, paymentData: any): Promise<{
9
+ success: boolean;
10
+ ticketId: string;
11
+ paymentData: any;
12
+ }>;
13
+ transferTicket(ticketId: string, transferData: {
14
+ toUserId: string;
15
+ }): Promise<{
16
+ success: boolean;
17
+ ticketId: string;
18
+ transferData: {
19
+ toUserId: string;
20
+ };
21
+ }>;
22
+ }
23
+ export declare class TicketService {
24
+ private readonly recordLockService;
25
+ constructor(recordLockService: RecordLockService);
26
+ updateTicketStatus(ticketId: string, status: string): Promise<{
27
+ ticketId: string;
28
+ status: string;
29
+ updatedAt: Date;
30
+ }>;
31
+ processTicketBooking(ticketId: string, userId: string): Promise<{
32
+ success: boolean;
33
+ ticketId: string;
34
+ userId: string;
35
+ bookedAt: Date;
36
+ }>;
37
+ cancelTicket(ticketId: string, reason: string): Promise<{
38
+ success: boolean;
39
+ ticketId: string;
40
+ reason: string;
41
+ cancelledAt: Date;
42
+ }>;
43
+ bulkUpdateTickets(ticketIds: string[], updateData: any): Promise<{
44
+ totalProcessed: number;
45
+ successful: number;
46
+ failed: number;
47
+ results: any[];
48
+ }>;
49
+ }
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TicketService = exports.TicketController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const record_lock_service_1 = require("../database/redis/record-lock.service");
18
+ const record_lock_decorator_1 = require("../decorators/record-lock.decorator");
19
+ const record_lock_interceptor_1 = require("../interceptors/record-lock.interceptor");
20
+ let TicketController = class TicketController {
21
+ async updateTicket(ticketId, updateData) {
22
+ console.log(`Updating ticket ${ticketId}`, updateData);
23
+ await new Promise(resolve => setTimeout(resolve, 2000));
24
+ return { success: true, ticketId, updateData };
25
+ }
26
+ async processPayment(ticketId, paymentData) {
27
+ console.log(`Processing payment for ticket ${ticketId}`, paymentData);
28
+ await new Promise(resolve => setTimeout(resolve, 3000));
29
+ return { success: true, ticketId, paymentData };
30
+ }
31
+ async transferTicket(ticketId, transferData) {
32
+ console.log(`Transferring ticket ${ticketId} to user ${transferData.toUserId}`);
33
+ await new Promise(resolve => setTimeout(resolve, 1500));
34
+ return { success: true, ticketId, transferData };
35
+ }
36
+ };
37
+ exports.TicketController = TicketController;
38
+ __decorate([
39
+ (0, common_1.Put)(':ticketId'),
40
+ (0, record_lock_decorator_1.RecordLock)({
41
+ recordType: 'ticket',
42
+ recordIdParam: 'ticketId',
43
+ ttlSeconds: 60,
44
+ timeoutMs: 5000
45
+ }),
46
+ __param(0, (0, common_1.Param)('ticketId')),
47
+ __param(1, (0, common_1.Body)()),
48
+ __metadata("design:type", Function),
49
+ __metadata("design:paramtypes", [String, Object]),
50
+ __metadata("design:returntype", Promise)
51
+ ], TicketController.prototype, "updateTicket", null);
52
+ __decorate([
53
+ (0, common_1.Post)(':ticketId/payment'),
54
+ (0, record_lock_decorator_1.RecordLock)({
55
+ recordType: 'ticket_payment',
56
+ recordIdParam: 'ticketId',
57
+ ttlSeconds: 120,
58
+ prefix: 'payment_lock'
59
+ }),
60
+ __param(0, (0, common_1.Param)('ticketId')),
61
+ __param(1, (0, common_1.Body)()),
62
+ __metadata("design:type", Function),
63
+ __metadata("design:paramtypes", [String, Object]),
64
+ __metadata("design:returntype", Promise)
65
+ ], TicketController.prototype, "processPayment", null);
66
+ __decorate([
67
+ (0, common_1.Post)(':ticketId/transfer'),
68
+ (0, record_lock_decorator_1.RecordLock)({
69
+ recordType: 'ticket_transfer',
70
+ recordIdParam: 'ticketId',
71
+ ttlSeconds: 90
72
+ }),
73
+ __param(0, (0, common_1.Param)('ticketId')),
74
+ __param(1, (0, common_1.Body)()),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [String, Object]),
77
+ __metadata("design:returntype", Promise)
78
+ ], TicketController.prototype, "transferTicket", null);
79
+ exports.TicketController = TicketController = __decorate([
80
+ (0, common_1.Controller)('tickets'),
81
+ (0, common_1.UseInterceptors)(record_lock_interceptor_1.RecordLockInterceptor)
82
+ ], TicketController);
83
+ let TicketService = class TicketService {
84
+ constructor(recordLockService) {
85
+ this.recordLockService = recordLockService;
86
+ }
87
+ async updateTicketStatus(ticketId, status) {
88
+ return await this.recordLockService.executeWithLock('ticket', ticketId, async () => {
89
+ console.log(`Updating ticket ${ticketId} status to ${status}`);
90
+ await new Promise(resolve => setTimeout(resolve, 1000));
91
+ return { ticketId, status, updatedAt: new Date() };
92
+ }, {
93
+ ttlSeconds: 30,
94
+ timeoutMs: 5000
95
+ });
96
+ }
97
+ async processTicketBooking(ticketId, userId) {
98
+ return await this.recordLockService.executeWithLock('ticket_booking', ticketId, async () => {
99
+ console.log(`Checking availability for ticket ${ticketId}`);
100
+ await new Promise(resolve => setTimeout(resolve, 500));
101
+ console.log(`Reserving ticket ${ticketId} for user ${userId}`);
102
+ await new Promise(resolve => setTimeout(resolve, 1000));
103
+ console.log(`Updating database for ticket ${ticketId}`);
104
+ await new Promise(resolve => setTimeout(resolve, 500));
105
+ return {
106
+ success: true,
107
+ ticketId,
108
+ userId,
109
+ bookedAt: new Date()
110
+ };
111
+ }, {
112
+ ttlSeconds: 60,
113
+ timeoutMs: 8000
114
+ });
115
+ }
116
+ async cancelTicket(ticketId, reason) {
117
+ return await this.recordLockService.executeWithLock('ticket_cancel', ticketId, async () => {
118
+ console.log(`Cancelling ticket ${ticketId} with reason: ${reason}`);
119
+ await new Promise(resolve => setTimeout(resolve, 2000));
120
+ return {
121
+ success: true,
122
+ ticketId,
123
+ reason,
124
+ cancelledAt: new Date()
125
+ };
126
+ }, {
127
+ ttlSeconds: 45,
128
+ timeoutMs: 6000,
129
+ prefix: 'cancel_lock'
130
+ });
131
+ }
132
+ async bulkUpdateTickets(ticketIds, updateData) {
133
+ const results = [];
134
+ for (const ticketId of ticketIds) {
135
+ try {
136
+ const result = await this.recordLockService.executeWithLock('ticket', ticketId, async () => {
137
+ console.log(`Updating ticket ${ticketId}`);
138
+ await new Promise(resolve => setTimeout(resolve, 200));
139
+ return { ticketId, ...updateData, updatedAt: new Date() };
140
+ }, { ttlSeconds: 20, timeoutMs: 3000 });
141
+ results.push({ success: true, ...result });
142
+ }
143
+ catch (error) {
144
+ results.push({
145
+ success: false,
146
+ ticketId,
147
+ error: error.message
148
+ });
149
+ }
150
+ }
151
+ return {
152
+ totalProcessed: results.length,
153
+ successful: results.filter(r => r.success).length,
154
+ failed: results.filter(r => !r.success).length,
155
+ results
156
+ };
157
+ }
158
+ };
159
+ exports.TicketService = TicketService;
160
+ exports.TicketService = TicketService = __decorate([
161
+ (0, common_1.Injectable)(),
162
+ __metadata("design:paramtypes", [record_lock_service_1.RecordLockService])
163
+ ], TicketService);
164
+ //# sourceMappingURL=redis-lock-usage.example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-lock-usage.example.js","sourceRoot":"","sources":["../../src/examples/redis-lock-usage.example.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export * from './schemas';
10
10
  export * from './schemas/schema.module';
11
11
  export * from './cluster/index';
12
12
  export * from './decorators/index';
13
+ export * from './interceptors/index';
13
14
  export * from './auth/index';
14
15
  export * from './sentry/index';
15
16
  export * from './shared.module';
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ __exportStar(require("./schemas"), exports);
26
26
  __exportStar(require("./schemas/schema.module"), exports);
27
27
  __exportStar(require("./cluster/index"), exports);
28
28
  __exportStar(require("./decorators/index"), exports);
29
+ __exportStar(require("./interceptors/index"), exports);
29
30
  __exportStar(require("./auth/index"), exports);
30
31
  __exportStar(require("./sentry/index"), exports);
31
32
  __exportStar(require("./shared.module"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,6CAA2B;AAC3B,+DAA6C;AAC7C,uEAAqD;AACrD,uDAAqC;AAErC,2CAAyB;AAEzB,iEAA+C;AAC/C,kEAA+C;AAC/C,uEAAqD;AAErD,4CAA0B;AAC1B,0DAAwC;AAExC,kDAAgC;AAEhC,qDAAmC;AAEnC,+CAA6B;AAE7B,iDAA+B;AAG/B,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,6CAA2B;AAC3B,+DAA6C;AAC7C,uEAAqD;AACrD,uDAAqC;AAErC,2CAAyB;AAEzB,iEAA+C;AAC/C,kEAA+C;AAC/C,uEAAqD;AAErD,4CAA0B;AAC1B,0DAAwC;AAExC,kDAAgC;AAEhC,qDAAmC;AAEnC,uDAAqC;AAErC,+CAA6B;AAE7B,iDAA+B;AAG/B,kDAAgC"}
@@ -0,0 +1 @@
1
+ export * from './record-lock.interceptor';