Skip to content

Commit c5fb6bc

Browse files
authored
bridge: naming-clarity refactor for broker/webhook payloads (#132)
1 parent 98e154a commit c5fb6bc

4 files changed

Lines changed: 92 additions & 92 deletions

File tree

bin/broker-register.mjs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -173,32 +173,32 @@ export async function generateServerKeyMaterial() {
173173
export async function fetchBrokerPubkeys(brokerUrl, fetchImpl = fetch) {
174174
const endpoint = new URL("/api/broker-pubkey", brokerUrl);
175175

176-
let response;
176+
let brokerPubkeyResponse;
177177
try {
178-
response = await fetchImpl(endpoint, { method: "GET" });
178+
brokerPubkeyResponse = await fetchImpl(endpoint, { method: "GET" });
179179
} catch (err) {
180180
throw new Error(`network failure fetching broker pubkey: ${err instanceof Error ? err.message : "unknown error"}`);
181181
}
182182

183-
let body;
183+
let brokerPubkeyResponseBody;
184184
try {
185-
body = await response.json();
185+
brokerPubkeyResponseBody = await brokerPubkeyResponse.json();
186186
} catch {
187187
throw new Error("broker pubkey endpoint returned invalid JSON");
188188
}
189189

190-
if (!response.ok || !body?.ok) {
191-
const errorMessage = body?.error || `HTTP ${response.status}`;
190+
if (!brokerPubkeyResponse.ok || !brokerPubkeyResponseBody?.ok) {
191+
const errorMessage = brokerPubkeyResponseBody?.error || `HTTP ${brokerPubkeyResponse.status}`;
192192
throw new Error(`failed to fetch broker pubkey: ${errorMessage}`);
193193
}
194194

195-
if (!isLikelyBase64(body.broker_pubkey) || !isLikelyBase64(body.broker_signing_pubkey)) {
195+
if (!isLikelyBase64(brokerPubkeyResponseBody.broker_pubkey) || !isLikelyBase64(brokerPubkeyResponseBody.broker_signing_pubkey)) {
196196
throw new Error("broker pubkey endpoint returned malformed keys");
197197
}
198198

199199
return {
200-
broker_pubkey: body.broker_pubkey,
201-
broker_signing_pubkey: body.broker_signing_pubkey,
200+
broker_pubkey: brokerPubkeyResponseBody.broker_pubkey,
201+
broker_signing_pubkey: brokerPubkeyResponseBody.broker_signing_pubkey,
202202
};
203203
}
204204

@@ -279,7 +279,7 @@ export async function registerWithBroker({
279279
const fetchedBrokerKeys = await fetchBrokerPubkeys(brokerUrl, fetchImpl);
280280

281281
const endpoint = new URL("/api/register", brokerUrl);
282-
const payload = {
282+
const registerRequestBody = {
283283
workspace_id: workspaceId,
284284
server_pubkey: serverKeys.server_pubkey,
285285
server_signing_pubkey: serverKeys.server_signing_pubkey,
@@ -288,30 +288,30 @@ export async function registerWithBroker({
288288

289289
logger(`Registering workspace ${workspaceId} at ${endpoint}`);
290290

291-
let response;
291+
let registerResponse;
292292
try {
293-
response = await fetchImpl(endpoint, {
293+
registerResponse = await fetchImpl(endpoint, {
294294
method: "POST",
295295
headers: { "Content-Type": "application/json" },
296-
body: JSON.stringify(payload),
296+
body: JSON.stringify(registerRequestBody),
297297
});
298298
} catch (err) {
299299
throw new Error(`network failure registering workspace: ${err instanceof Error ? err.message : "unknown error"}`);
300300
}
301301

302-
let body = {};
302+
let registerResponseBody = {};
303303
try {
304-
body = await response.json();
304+
registerResponseBody = await registerResponse.json();
305305
} catch {
306306
// keep default empty body for error handling
307307
}
308308

309-
if (!response.ok || !body?.ok) {
310-
throw new Error(mapRegisterError(response.status, body?.error));
309+
if (!registerResponse.ok || !registerResponseBody?.ok) {
310+
throw new Error(mapRegisterError(registerResponse.status, registerResponseBody?.error));
311311
}
312312

313-
const registerBrokerPubkey = body?.broker_pubkey;
314-
const registerBrokerSigningPubkey = body?.broker_signing_pubkey;
313+
const registerBrokerPubkey = registerResponseBody?.broker_pubkey;
314+
const registerBrokerSigningPubkey = registerResponseBody?.broker_signing_pubkey;
315315

316316
if (
317317
registerBrokerPubkey &&
@@ -328,11 +328,11 @@ export async function registerWithBroker({
328328
}
329329

330330
let decryptedBotToken = null;
331-
if (body?.encrypted_bot_token) {
331+
if (registerResponseBody?.encrypted_bot_token) {
332332
logger("Decrypting bot token from broker response...");
333333
try {
334334
decryptedBotToken = await decryptSealedBox(
335-
body.encrypted_bot_token,
335+
registerResponseBody.encrypted_bot_token,
336336
serverKeys.server_private_key,
337337
serverKeys.server_pubkey,
338338
);
@@ -350,13 +350,13 @@ export async function registerWithBroker({
350350
return {
351351
broker_pubkey: registerBrokerPubkey || fetchedBrokerKeys.broker_pubkey,
352352
broker_signing_pubkey: registerBrokerSigningPubkey || fetchedBrokerKeys.broker_signing_pubkey,
353-
broker_access_token: body?.broker_access_token,
354-
broker_access_token_expires_at: body?.broker_access_token_expires_at,
355-
broker_access_token_scopes: Array.isArray(body?.broker_access_token_scopes)
356-
? body.broker_access_token_scopes.filter((scope) => typeof scope === "string")
353+
broker_access_token: registerResponseBody?.broker_access_token,
354+
broker_access_token_expires_at: registerResponseBody?.broker_access_token_expires_at,
355+
broker_access_token_scopes: Array.isArray(registerResponseBody?.broker_access_token_scopes)
356+
? registerResponseBody.broker_access_token_scopes.filter((scope) => typeof scope === "string")
357357
: undefined,
358358
decrypted_bot_token: decryptedBotToken,
359-
request_payload: payload,
359+
request_payload: registerRequestBody,
360360
};
361361
}
362362

slack-bridge/bridge.mjs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -389,12 +389,12 @@ function startApiServer() {
389389
}
390390

391391
// Read body
392-
let body = "";
393-
for await (const chunk of req) body += chunk;
392+
let rawApiRequestBody = "";
393+
for await (const chunk of req) rawApiRequestBody += chunk;
394394

395-
let params;
395+
let apiRequestBody;
396396
try {
397-
params = JSON.parse(body);
397+
apiRequestBody = JSON.parse(rawApiRequestBody);
398398
} catch {
399399
res.writeHead(400, { "Content-Type": "application/json" });
400400
res.end(JSON.stringify({ error: "Invalid JSON" }));
@@ -406,14 +406,14 @@ function startApiServer() {
406406
const pathname = url.pathname;
407407

408408
if (pathname === "/send") {
409-
const validationError = validateSendParams(params);
409+
const validationError = validateSendParams(apiRequestBody);
410410
if (validationError) {
411411
res.writeHead(400, { "Content-Type": "application/json" });
412412
res.end(JSON.stringify({ error: validationError }));
413413
return;
414414
}
415415

416-
const { channel, text, thread_ts } = params;
416+
const { channel, text, thread_ts } = apiRequestBody;
417417
const result = await app.client.chat.postMessage({
418418
token: process.env.SLACK_BOT_TOKEN,
419419
channel,
@@ -427,7 +427,7 @@ function startApiServer() {
427427

428428
} else if (pathname === "/reply") {
429429
// Look up thread by friendly ID and post a reply
430-
const { thread_id, text } = params;
430+
const { thread_id, text } = apiRequestBody;
431431

432432
if (typeof thread_id !== "string" || !thread_id) {
433433
res.writeHead(400, { "Content-Type": "application/json" });
@@ -464,14 +464,14 @@ function startApiServer() {
464464
res.end(JSON.stringify({ ok: true, ts: result.ts, channel: result.channel }));
465465

466466
} else if (pathname === "/react") {
467-
const validationError = validateReactParams(params);
467+
const validationError = validateReactParams(apiRequestBody);
468468
if (validationError) {
469469
res.writeHead(400, { "Content-Type": "application/json" });
470470
res.end(JSON.stringify({ error: validationError }));
471471
return;
472472
}
473473

474-
const { channel, timestamp, emoji } = params;
474+
const { channel, timestamp, emoji } = apiRequestBody;
475475
await app.client.reactions.add({
476476
token: process.env.SLACK_BOT_TOKEN,
477477
channel,

0 commit comments

Comments
 (0)