@checkfirst/nestjs-outlook 6.0.0 → 6.1.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/microsoft-outlook.module.js +3 -0
- package/dist/microsoft-outlook.module.js.map +1 -1
- package/dist/services/calendar/calendar.service.d.ts +5 -1
- package/dist/services/calendar/calendar.service.js +83 -17
- package/dist/services/calendar/calendar.service.js.map +1 -1
- package/dist/services/shared/graph-rate-limiter.service.d.ts +34 -0
- package/dist/services/shared/graph-rate-limiter.service.js +171 -0
- package/dist/services/shared/graph-rate-limiter.service.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './services/calendar/recurrence.service';
|
|
|
4
4
|
export * from './services/email/email.service';
|
|
5
5
|
export * from './services/shared/user-id-converter.service';
|
|
6
6
|
export * from './services/subscription/microsoft-subscription.service';
|
|
7
|
+
export * from './services/shared/graph-rate-limiter.service';
|
|
7
8
|
export * from './microsoft-outlook.module';
|
|
8
9
|
export * from './interfaces/outlook/token-response.interface';
|
|
9
10
|
export * from './interfaces/config/outlook-config.interface';
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ __exportStar(require("./services/calendar/recurrence.service"), exports);
|
|
|
20
20
|
__exportStar(require("./services/email/email.service"), exports);
|
|
21
21
|
__exportStar(require("./services/shared/user-id-converter.service"), exports);
|
|
22
22
|
__exportStar(require("./services/subscription/microsoft-subscription.service"), exports);
|
|
23
|
+
__exportStar(require("./services/shared/graph-rate-limiter.service"), exports);
|
|
23
24
|
__exportStar(require("./microsoft-outlook.module"), exports);
|
|
24
25
|
__exportStar(require("./interfaces/outlook/token-response.interface"), exports);
|
|
25
26
|
__exportStar(require("./interfaces/config/outlook-config.interface"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,yEAAuD;AACvD,uEAAqD;AACrD,yEAAuD;AACvD,iEAA+C;AAC/C,8EAA4D;AAC5D,yFAAuE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,yEAAuD;AACvD,uEAAqD;AACrD,yEAAuD;AACvD,iEAA+C;AAC/C,8EAA4D;AAC5D,yFAAuE;AACvE,+EAA6D;AAG7D,6DAA2C;AAG3C,gFAA8D;AAC9D,+EAA6D;AAC7D,qEAAmD;AAGnD,gEAA8C;AAC9C,2DAAyC;AACzC,4DAA0C;AAG1C,8CAA4B;AAG5B,oEAAkD;AAClD,0EAAwD;AACxD,iEAA+C;AAG/C,yEAAuD;AAGvD,iFAA+D;AAC/D,mEAAiD;AAGjD,yFAAuE;AAGvE,0CAAwB"}
|
|
@@ -31,6 +31,7 @@ const user_id_converter_service_1 = require("./services/shared/user-id-converter
|
|
|
31
31
|
const lifecycle_event_handler_service_1 = require("./services/calendar/lifecycle-event-handler.service");
|
|
32
32
|
const recurrence_service_1 = require("./services/calendar/recurrence.service");
|
|
33
33
|
const microsoft_subscription_service_1 = require("./services/subscription/microsoft-subscription.service");
|
|
34
|
+
const graph_rate_limiter_service_1 = require("./services/shared/graph-rate-limiter.service");
|
|
34
35
|
_a = new common_1.ConfigurableModuleBuilder()
|
|
35
36
|
.setClassMethodName("forRoot")
|
|
36
37
|
.build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN;
|
|
@@ -67,6 +68,7 @@ exports.MicrosoftOutlookModule = MicrosoftOutlookModule = __decorate([
|
|
|
67
68
|
lifecycle_event_handler_service_1.LifecycleEventHandlerService,
|
|
68
69
|
recurrence_service_1.RecurrenceService,
|
|
69
70
|
microsoft_subscription_service_1.MicrosoftSubscriptionService,
|
|
71
|
+
graph_rate_limiter_service_1.GraphRateLimiterService,
|
|
70
72
|
],
|
|
71
73
|
exports: [
|
|
72
74
|
calendar_service_1.CalendarService,
|
|
@@ -77,6 +79,7 @@ exports.MicrosoftOutlookModule = MicrosoftOutlookModule = __decorate([
|
|
|
77
79
|
delta_sync_service_1.DeltaSyncService,
|
|
78
80
|
user_id_converter_service_1.UserIdConverterService,
|
|
79
81
|
microsoft_subscription_service_1.MicrosoftSubscriptionService,
|
|
82
|
+
graph_rate_limiter_service_1.GraphRateLimiterService,
|
|
80
83
|
],
|
|
81
84
|
})
|
|
82
85
|
], MicrosoftOutlookModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microsoft-outlook.module.js","sourceRoot":"","sources":["../src/microsoft-outlook.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAmE;AACnE,6CAAgD;AAChD,+CAAkD;AAClD,yDAA2D;AAC3D,mFAA8E;AAC9E,uFAAkF;AAClF,2EAAuE;AACvE,qEAAiE;AACjE,wGAA4F;AAC5F,oHAA8G;AAC9G,2CAA+C;AAE/C,oEAAkE;AAClE,oGAA8F;AAC9F,2EAAuE;AACvE,kEAA8D;AAC9D,4EAAiE;AACjE,oEAAgE;AAChE,gGAA0F;AAC1F,6EAAwE;AACxE,2FAAqF;AACrF,yGAAmG;AACnG,+EAA2E;AAC3E,2GAAsG;
|
|
1
|
+
{"version":3,"file":"microsoft-outlook.module.js","sourceRoot":"","sources":["../src/microsoft-outlook.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAmE;AACnE,6CAAgD;AAChD,+CAAkD;AAClD,yDAA2D;AAC3D,mFAA8E;AAC9E,uFAAkF;AAClF,2EAAuE;AACvE,qEAAiE;AACjE,wGAA4F;AAC5F,oHAA8G;AAC9G,2CAA+C;AAE/C,oEAAkE;AAClE,oGAA8F;AAC9F,2EAAuE;AACvE,kEAA8D;AAC9D,4EAAiE;AACjE,oEAAgE;AAChE,gGAA0F;AAC1F,6EAAwE;AACxE,2FAAqF;AACrF,yGAAmG;AACnG,+EAA2E;AAC3E,2GAAsG;AACtG,6FAAuF;AAE1E,KACX,IAAI,kCAAyB,EAA0B;KACpD,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,EAHG,+BAAuB,+BAAE,4BAAoB,2BAG/C;AAiDN,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,+BAAuB;CAAG,CAAA;AAAzD,wDAAsB;iCAAtB,sBAAsB;IA3ClC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc,CAAC,OAAO,EAAE;YACxB,uBAAa,CAAC,UAAU,CAAC;gBACvB,gEAA0B;gBAC1B,sCAAkB;gBAClB,qCAAa;gBACb,oCAAgB;aACjB,CAAC;YACF,kCAAkB,CAAC,OAAO,EAAE;SAC7B;QACD,WAAW,EAAE,CAAC,mDAAuB,EAAE,wCAAkB,EAAE,kCAAe,CAAC;QAC3E,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,4BAAgB;gBACzB,UAAU,EAAE,CAAC,OAA+B,EAAE,EAAE,CAAC,OAAO;gBACxD,MAAM,EAAE,CAAC,4BAAoB,CAAC;aAC/B;YACD,8EAAoC;YACpC,8DAA4B;YAC5B,kCAAe;YACf,4BAAY;YACZ,6CAAoB;YACpB,0DAA0B;YAC1B,qCAAgB;YAChB,kDAAsB;YACtB,8DAA4B;YAC5B,sCAAiB;YACjB,6DAA4B;YAC5B,oDAAuB;SACxB;QACD,OAAO,EAAE;YACP,kCAAe;YACf,sCAAiB;YACjB,4BAAY;YACZ,6CAAoB;YACpB,0DAA0B;YAC1B,qCAAgB;YAChB,kDAAsB;YACtB,6DAA4B;YAC5B,oDAAuB;SACxB;KACF,CAAC;GACW,sBAAsB,CAAmC"}
|
|
@@ -11,6 +11,7 @@ import { DeltaSyncService } from "../shared/delta-sync.service";
|
|
|
11
11
|
import { UserIdConverterService } from "../shared/user-id-converter.service";
|
|
12
12
|
import { MicrosoftSubscriptionService } from "../subscription/microsoft-subscription.service";
|
|
13
13
|
import { OutlookWebhookSubscription } from "../../entities/outlook-webhook-subscription.entity";
|
|
14
|
+
import { GraphRateLimiterService } from "../shared/graph-rate-limiter.service";
|
|
14
15
|
export declare class CalendarService {
|
|
15
16
|
private readonly microsoftAuthService;
|
|
16
17
|
private readonly webhookSubscriptionRepository;
|
|
@@ -21,9 +22,10 @@ export declare class CalendarService {
|
|
|
21
22
|
private readonly deltaSyncService;
|
|
22
23
|
private readonly userIdConverter;
|
|
23
24
|
private readonly subscriptionService;
|
|
25
|
+
private readonly rateLimiter;
|
|
24
26
|
private readonly logger;
|
|
25
27
|
private readonly syncLocks;
|
|
26
|
-
constructor(microsoftAuthService: MicrosoftAuthService, webhookSubscriptionRepository: OutlookWebhookSubscriptionRepository, eventEmitter: EventEmitter2, microsoftConfig: MicrosoftOutlookConfig, deltaLinkRepository: OutlookDeltaLinkRepository, microsoftUserRepository: Repository<MicrosoftUser>, deltaSyncService: DeltaSyncService, userIdConverter: UserIdConverterService, subscriptionService: MicrosoftSubscriptionService);
|
|
28
|
+
constructor(microsoftAuthService: MicrosoftAuthService, webhookSubscriptionRepository: OutlookWebhookSubscriptionRepository, eventEmitter: EventEmitter2, microsoftConfig: MicrosoftOutlookConfig, deltaLinkRepository: OutlookDeltaLinkRepository, microsoftUserRepository: Repository<MicrosoftUser>, deltaSyncService: DeltaSyncService, userIdConverter: UserIdConverterService, subscriptionService: MicrosoftSubscriptionService, rateLimiter: GraphRateLimiterService);
|
|
27
29
|
getDefaultCalendarId(externalUserId: string): Promise<string>;
|
|
28
30
|
createEvent(event: Partial<Event>, externalUserId: string, calendarId: string): Promise<{
|
|
29
31
|
event: Event;
|
|
@@ -75,6 +77,8 @@ export declare class CalendarService {
|
|
|
75
77
|
saveDeltaLink(externalUserId: string, deltaLink: string): Promise<void>;
|
|
76
78
|
getEventDetails(resource: string, externalUserId: string): Promise<Event | null>;
|
|
77
79
|
getEventsBatch(eventIds: string[], externalUserId: string): Promise<Event[]>;
|
|
80
|
+
private getEventsBatchInternal;
|
|
81
|
+
private extractRetryAfterFromResponse;
|
|
78
82
|
importEventsStream(externalUserId: string, options?: {
|
|
79
83
|
startDate?: Date;
|
|
80
84
|
endDate?: Date;
|
|
@@ -58,6 +58,7 @@ const user_id_converter_service_1 = require("../shared/user-id-converter.service
|
|
|
58
58
|
const resource_type_enum_1 = require("../../enums/resource-type.enum");
|
|
59
59
|
const microsoft_subscription_service_1 = require("../subscription/microsoft-subscription.service");
|
|
60
60
|
const outlook_api_executor_util_1 = require("../../utils/outlook-api-executor.util");
|
|
61
|
+
const graph_rate_limiter_service_1 = require("../shared/graph-rate-limiter.service");
|
|
61
62
|
const OUTLOOK_EVENT_CREATED = event_types_enum_1.OutlookEventTypes.EVENT_CREATED;
|
|
62
63
|
const OUTLOOK_EVENT_UPDATED = event_types_enum_1.OutlookEventTypes.EVENT_UPDATED;
|
|
63
64
|
const OUTLOOK_EVENT_DELETED = event_types_enum_1.OutlookEventTypes.EVENT_DELETED;
|
|
@@ -82,7 +83,7 @@ function detectEventType(change) {
|
|
|
82
83
|
return isNewEvent(change) ? OUTLOOK_EVENT_CREATED : OUTLOOK_EVENT_UPDATED;
|
|
83
84
|
}
|
|
84
85
|
let CalendarService = CalendarService_1 = class CalendarService {
|
|
85
|
-
constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, deltaLinkRepository, microsoftUserRepository, deltaSyncService, userIdConverter, subscriptionService) {
|
|
86
|
+
constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, deltaLinkRepository, microsoftUserRepository, deltaSyncService, userIdConverter, subscriptionService, rateLimiter) {
|
|
86
87
|
this.microsoftAuthService = microsoftAuthService;
|
|
87
88
|
this.webhookSubscriptionRepository = webhookSubscriptionRepository;
|
|
88
89
|
this.eventEmitter = eventEmitter;
|
|
@@ -92,6 +93,7 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
92
93
|
this.deltaSyncService = deltaSyncService;
|
|
93
94
|
this.userIdConverter = userIdConverter;
|
|
94
95
|
this.subscriptionService = subscriptionService;
|
|
96
|
+
this.rateLimiter = rateLimiter;
|
|
95
97
|
this.logger = new common_1.Logger(CalendarService_1.name);
|
|
96
98
|
this.syncLocks = new Map();
|
|
97
99
|
}
|
|
@@ -115,6 +117,7 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
async createEvent(event, externalUserId, calendarId) {
|
|
120
|
+
await this.rateLimiter.acquirePermit(externalUserId);
|
|
118
121
|
try {
|
|
119
122
|
const accessToken = await this.microsoftAuthService.getUserAccessToken({ externalUserId });
|
|
120
123
|
const client = microsoft_graph_client_1.Client.init({
|
|
@@ -134,8 +137,12 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
134
137
|
this.logger.error(`Failed to create Outlook calendar event: ${errorMessage}`);
|
|
135
138
|
throw new Error(`Failed to create Outlook calendar event: ${errorMessage}`);
|
|
136
139
|
}
|
|
140
|
+
finally {
|
|
141
|
+
this.rateLimiter.releasePermit(externalUserId);
|
|
142
|
+
}
|
|
137
143
|
}
|
|
138
144
|
async updateEvent(eventId, updates, externalUserId, calendarId) {
|
|
145
|
+
await this.rateLimiter.acquirePermit(externalUserId);
|
|
139
146
|
try {
|
|
140
147
|
const accessToken = await this.microsoftAuthService.getUserAccessToken({ externalUserId });
|
|
141
148
|
const client = microsoft_graph_client_1.Client.init({
|
|
@@ -156,8 +163,12 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
156
163
|
this.logger.error(`Failed to update Outlook calendar event: ${errorMessage}`);
|
|
157
164
|
throw new Error(`Failed to update Outlook calendar event: ${errorMessage}`);
|
|
158
165
|
}
|
|
166
|
+
finally {
|
|
167
|
+
this.rateLimiter.releasePermit(externalUserId);
|
|
168
|
+
}
|
|
159
169
|
}
|
|
160
170
|
async deleteEvent(event, externalUserId, calendarId) {
|
|
171
|
+
await this.rateLimiter.acquirePermit(externalUserId);
|
|
161
172
|
try {
|
|
162
173
|
const internalUserId = await this.userIdConverter.toInternalUserId(externalUserId);
|
|
163
174
|
const accessToken = await this.microsoftAuthService.getUserAccessToken({ internalUserId });
|
|
@@ -182,6 +193,9 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
182
193
|
this.logger.error(`Failed to delete Outlook calendar event after retries: ${errorMessage}`);
|
|
183
194
|
throw new Error(`Failed to delete Outlook calendar event: ${errorMessage}`);
|
|
184
195
|
}
|
|
196
|
+
finally {
|
|
197
|
+
this.rateLimiter.releasePermit(externalUserId);
|
|
198
|
+
}
|
|
185
199
|
}
|
|
186
200
|
async createBatchEvents(events, externalUserId, calendarId) {
|
|
187
201
|
if (events.length === 0) {
|
|
@@ -194,19 +208,20 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
194
208
|
const BATCH_SIZE = 20;
|
|
195
209
|
for (let i = 0; i < events.length; i += BATCH_SIZE) {
|
|
196
210
|
const batchEvents = events.slice(i, i + BATCH_SIZE);
|
|
197
|
-
|
|
198
|
-
requests: batchEvents.map((event, index) => ({
|
|
199
|
-
id: `${index}`,
|
|
200
|
-
method: 'POST',
|
|
201
|
-
url: `/me/calendars/${calendarId}/events`,
|
|
202
|
-
body: event,
|
|
203
|
-
headers: {
|
|
204
|
-
'Content-Type': 'application/json',
|
|
205
|
-
},
|
|
206
|
-
})),
|
|
207
|
-
};
|
|
208
|
-
this.logger.log(`Creating batch of ${batchEvents.length} events in calendar ${calendarId} for user ${externalUserId}`);
|
|
211
|
+
await this.rateLimiter.acquirePermit(externalUserId);
|
|
209
212
|
try {
|
|
213
|
+
const batchPayload = {
|
|
214
|
+
requests: batchEvents.map((event, index) => ({
|
|
215
|
+
id: `${index}`,
|
|
216
|
+
method: 'POST',
|
|
217
|
+
url: `/me/calendars/${calendarId}/events`,
|
|
218
|
+
body: event,
|
|
219
|
+
headers: {
|
|
220
|
+
'Content-Type': 'application/json',
|
|
221
|
+
},
|
|
222
|
+
})),
|
|
223
|
+
};
|
|
224
|
+
this.logger.log(`Creating batch of ${batchEvents.length} events in calendar ${calendarId} for user ${externalUserId}`);
|
|
210
225
|
const batchResponse = await (0, retry_util_1.retryWithBackoff)(async () => {
|
|
211
226
|
const response = await axios_1.default.post('https://graph.microsoft.com/v1.0/$batch', batchPayload, {
|
|
212
227
|
headers: {
|
|
@@ -249,6 +264,9 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
249
264
|
});
|
|
250
265
|
this.logger.error(`Batch creation failed for ${batchEvents.length} events: ${errorMessage}`);
|
|
251
266
|
}
|
|
267
|
+
finally {
|
|
268
|
+
this.rateLimiter.releasePermit(externalUserId);
|
|
269
|
+
}
|
|
252
270
|
}
|
|
253
271
|
const successCount = results.filter(r => r.success).length;
|
|
254
272
|
const failCount = results.filter(r => !r.success).length;
|
|
@@ -778,12 +796,16 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
778
796
|
}
|
|
779
797
|
}
|
|
780
798
|
async getEventsBatch(eventIds, externalUserId) {
|
|
799
|
+
return this.getEventsBatchInternal(eventIds, externalUserId, new Map());
|
|
800
|
+
}
|
|
801
|
+
async getEventsBatchInternal(eventIds, externalUserId, retryCount, maxRetries = 2) {
|
|
781
802
|
if (eventIds.length === 0) {
|
|
782
803
|
return [];
|
|
783
804
|
}
|
|
784
805
|
if (eventIds.length > 20) {
|
|
785
|
-
this.logger.warn(`getEventsBatch
|
|
806
|
+
this.logger.warn(`[getEventsBatch] Called with ${eventIds.length} events, exceeding limit. Only first 20 will be fetched.`);
|
|
786
807
|
}
|
|
808
|
+
await this.rateLimiter.acquirePermit(externalUserId);
|
|
787
809
|
try {
|
|
788
810
|
const accessToken = await this.microsoftAuthService.getUserAccessToken({ externalUserId });
|
|
789
811
|
const batchPayload = {
|
|
@@ -810,6 +832,7 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
810
832
|
return [];
|
|
811
833
|
}
|
|
812
834
|
const events = [];
|
|
835
|
+
const rateLimitedEventIds = [];
|
|
813
836
|
let successCount = 0;
|
|
814
837
|
let notFoundCount = 0;
|
|
815
838
|
let errorCount = 0;
|
|
@@ -824,16 +847,41 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
824
847
|
notFoundCount++;
|
|
825
848
|
}
|
|
826
849
|
else if (batchResponse.status === 429) {
|
|
827
|
-
|
|
850
|
+
rateLimitedEventIds.push(eventId);
|
|
851
|
+
this.logger.warn(`[getEventsBatch] Event ${eventId} rate limited (429) within batch response`);
|
|
828
852
|
errorCount++;
|
|
829
853
|
}
|
|
830
854
|
else {
|
|
831
|
-
this.logger.error(`[getEventsBatch]
|
|
855
|
+
this.logger.error(`[getEventsBatch] Event ${eventId} failed: status ${batchResponse.status}, ` +
|
|
856
|
+
`body: ${JSON.stringify(batchResponse.body)}`);
|
|
832
857
|
errorCount++;
|
|
833
858
|
}
|
|
834
859
|
}
|
|
835
860
|
this.logger.log(`[getEventsBatch] Batch complete for user ${externalUserId}: ` +
|
|
836
861
|
`success=${successCount}, notFound=${notFoundCount}, errors=${errorCount}`);
|
|
862
|
+
if (rateLimitedEventIds.length > 0) {
|
|
863
|
+
const retryableEvents = rateLimitedEventIds.filter(id => {
|
|
864
|
+
const count = retryCount.get(id) || 0;
|
|
865
|
+
return count < maxRetries;
|
|
866
|
+
});
|
|
867
|
+
if (retryableEvents.length > 0) {
|
|
868
|
+
const retryAfter = this.extractRetryAfterFromResponse(response);
|
|
869
|
+
if (retryAfter) {
|
|
870
|
+
this.rateLimiter.handleRateLimitResponse(externalUserId, retryAfter);
|
|
871
|
+
}
|
|
872
|
+
retryableEvents.forEach(id => {
|
|
873
|
+
retryCount.set(id, (retryCount.get(id) || 0) + 1);
|
|
874
|
+
});
|
|
875
|
+
const maxAttempt = Math.max(...retryableEvents.map(id => retryCount.get(id) || 0));
|
|
876
|
+
this.logger.log(`[getEventsBatch] Retrying ${retryableEvents.length} rate-limited events ` +
|
|
877
|
+
`(attempt ${maxAttempt}/${maxRetries})`);
|
|
878
|
+
const retriedEvents = await this.getEventsBatchInternal(retryableEvents, externalUserId, retryCount, maxRetries);
|
|
879
|
+
events.push(...retriedEvents);
|
|
880
|
+
}
|
|
881
|
+
else {
|
|
882
|
+
this.logger.error(`[getEventsBatch] ${rateLimitedEventIds.length} events exceeded max retries - DATA LOSS WARNING`);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
837
885
|
return events;
|
|
838
886
|
}
|
|
839
887
|
catch (error) {
|
|
@@ -841,6 +889,23 @@ let CalendarService = CalendarService_1 = class CalendarService {
|
|
|
841
889
|
this.logger.error(`[getEventsBatch] Batch request failed for user ${externalUserId}: ${errorMessage}`);
|
|
842
890
|
throw error;
|
|
843
891
|
}
|
|
892
|
+
finally {
|
|
893
|
+
this.rateLimiter.releasePermit(externalUserId);
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
extractRetryAfterFromResponse(response) {
|
|
897
|
+
var _a;
|
|
898
|
+
try {
|
|
899
|
+
const retryAfter = (_a = response.headers) === null || _a === void 0 ? void 0 : _a['retry-after'];
|
|
900
|
+
if (typeof retryAfter === 'string' || typeof retryAfter === 'number') {
|
|
901
|
+
const parsed = parseInt(String(retryAfter), 10);
|
|
902
|
+
return !isNaN(parsed) ? Math.max(parsed, 5) : null;
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
catch (_error) {
|
|
906
|
+
this.logger.debug('[extractRetryAfterFromResponse] Failed to extract Retry-After header');
|
|
907
|
+
}
|
|
908
|
+
return null;
|
|
844
909
|
}
|
|
845
910
|
importEventsStream(externalUserId, options) {
|
|
846
911
|
return __asyncGenerator(this, arguments, function* importEventsStream_1() {
|
|
@@ -1081,6 +1146,7 @@ exports.CalendarService = CalendarService = CalendarService_1 = __decorate([
|
|
|
1081
1146
|
typeorm_2.Repository,
|
|
1082
1147
|
delta_sync_service_1.DeltaSyncService,
|
|
1083
1148
|
user_id_converter_service_1.UserIdConverterService,
|
|
1084
|
-
microsoft_subscription_service_1.MicrosoftSubscriptionService
|
|
1149
|
+
microsoft_subscription_service_1.MicrosoftSubscriptionService,
|
|
1150
|
+
graph_rate_limiter_service_1.GraphRateLimiterService])
|
|
1085
1151
|
], CalendarService);
|
|
1086
1152
|
//# sourceMappingURL=calendar.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.service.js","sourceRoot":"","sources":["../../../src/services/calendar/calendar.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar.service.js","sourceRoot":"","sources":["../../../src/services/calendar/calendar.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
export declare class GraphRateLimiterService implements OnModuleInit {
|
|
3
|
+
private readonly logger;
|
|
4
|
+
private readonly MAX_REQUESTS_PER_SECOND;
|
|
5
|
+
private readonly MAX_REQUESTS_PER_10_MINUTES;
|
|
6
|
+
private readonly ONE_SECOND_MS;
|
|
7
|
+
private readonly TEN_MINUTES_MS;
|
|
8
|
+
private readonly INACTIVE_USER_THRESHOLD_MS;
|
|
9
|
+
private readonly userLimiters;
|
|
10
|
+
private totalPermitsAcquired;
|
|
11
|
+
private totalWaitTime;
|
|
12
|
+
private cooldownCount;
|
|
13
|
+
onModuleInit(): void;
|
|
14
|
+
acquirePermit(userId: string): Promise<void>;
|
|
15
|
+
releasePermit(userId: string): void;
|
|
16
|
+
handleRateLimitResponse(userId: string, retryAfterSeconds: number): void;
|
|
17
|
+
private canMakeRequest;
|
|
18
|
+
private initializeLimiter;
|
|
19
|
+
private cleanupInactiveUsers;
|
|
20
|
+
getStats(): {
|
|
21
|
+
activeUsers: number;
|
|
22
|
+
totalPermitsAcquired: number;
|
|
23
|
+
totalWaitTimeMs: number;
|
|
24
|
+
averageWaitTimeMs: number;
|
|
25
|
+
cooldownCount: number;
|
|
26
|
+
};
|
|
27
|
+
getUserStats(userId: string): {
|
|
28
|
+
userId: string;
|
|
29
|
+
recentRequestCount: number;
|
|
30
|
+
tenMinuteRequestCount: number;
|
|
31
|
+
cooldownUntil: number | null;
|
|
32
|
+
lastActivity: string;
|
|
33
|
+
} | null;
|
|
34
|
+
}
|