From 10909c233b7be188520ffcaf70db54ae76366523 Mon Sep 17 00:00:00 2001 From: Seth Etter Date: Sat, 30 May 2026 11:46:12 -0500 Subject: [PATCH] chore(OpenMeetClient): Extract url and headers helpers --- openmeet.ts | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/openmeet.ts b/openmeet.ts index 2a09836..c2d4ca7 100644 --- a/openmeet.ts +++ b/openmeet.ts @@ -22,6 +22,20 @@ export class OpenMeetClient { this.tokens = { ...tokens, tokenExpires: 0 }; } + private url(path: string): string { + return `${this.API_BASE}${path}`; + } + + private headers( + additionalHeaders?: RequestInit["headers"], + ): RequestInit["headers"] { + return { + "X-Tenant-Id": this.TENANT_ID, + Authorization: `Bearer ${this.tokens.token}`, + ...additionalHeaders, + }; + } + async getEvents( opts: { start: Temporal.PlainDateTime; @@ -29,18 +43,13 @@ export class OpenMeetClient { }, attempt = 1, ): Promise { - const url = new URL( - `${this.API_BASE}/api/groups/${this.GROUP_SLUG}/events`, - ); + const url = new URL(this.url(`/api/groups/${this.GROUP_SLUG}/events`)); url.searchParams.set("startDate", opts.start.toString()); url.searchParams.set("endDate", opts.end.toString()); const resp = await fetch(url, { - headers: { - "X-Tenant-Id": this.TENANT_ID, - Authorization: `Bearer ${this.tokens.token}`, - }, + headers: this.headers(), }); if (!resp.ok) { @@ -57,11 +66,8 @@ export class OpenMeetClient { } private async refreshTokens() { - const resp = await fetch(`${this.API_BASE}/api/v1/auth/refresh`, { - headers: { - Authorization: `Bearer ${this.tokens.refreshToken}`, - "X-Tenant-Id": this.TENANT_ID, - }, + const resp = await fetch(this.url("/api/v1/auth/refresh"), { + headers: this.headers(), method: "POST", body: JSON.stringify({ ...this.tokens }), }); -- 2.51.2