Skip to content

Commit e29e234

Browse files
RangerMauveMauve Signweaver
andauthored
chore: Add more logs for invites (#1064)
Co-authored-by: Mauve Signweaver <[email protected]>
1 parent 3d578e9 commit e29e234

File tree

2 files changed

+34
-23
lines changed

2 files changed

+34
-23
lines changed

src/invite/invite-api.js

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -281,35 +281,43 @@ export class InviteApi extends TypedEmitter {
281281
* @returns {Promise<string>}
282282
*/
283283
async accept({ inviteId: inviteIdString }) {
284-
const inviteId = Buffer.from(inviteIdString, 'hex')
285-
286-
const invite = this.#invites.get(inviteId)
287-
assert(!!invite, new NotFoundError(`Cannot find invite ${inviteIdString}`))
288-
assertCanSend(invite.actor, { type: 'ACCEPT_INVITE' })
284+
try {
285+
const inviteId = Buffer.from(inviteIdString, 'hex')
289286

290-
this.#l.log('Accepting invite %h', inviteId)
291-
invite.actor.send({ type: 'ACCEPT_INVITE' })
292-
293-
for (const { value, actor } of this.#invites.values()) {
294-
if (value.inviteId.equals(inviteId)) continue
295-
const inviteIsForSameProject = value.projectInviteId.equals(
296-
invite.value.projectInviteId
287+
const invite = this.#invites.get(inviteId)
288+
assert(
289+
!!invite,
290+
new NotFoundError(`Cannot find invite ${inviteIdString}`)
297291
)
298-
if (inviteIsForSameProject) {
299-
actor.send({ type: 'ALREADY_IN_PROJECT' })
292+
assertCanSend(invite.actor, { type: 'ACCEPT_INVITE' })
293+
294+
this.#l.log('Accepting invite %h', inviteId)
295+
invite.actor.send({ type: 'ACCEPT_INVITE' })
296+
297+
for (const { value, actor } of this.#invites.values()) {
298+
if (value.inviteId.equals(inviteId)) continue
299+
const inviteIsForSameProject = value.projectInviteId.equals(
300+
invite.value.projectInviteId
301+
)
302+
if (inviteIsForSameProject) {
303+
actor.send({ type: 'ALREADY_IN_PROJECT' })
304+
}
300305
}
301-
}
302306

303-
const { projectPublicId } = await toPromise(invite.actor)
307+
const { projectPublicId } = await toPromise(invite.actor)
304308

305-
if (!projectPublicId) {
306-
const { context, value } = invite.actor.getSnapshot()
307-
throw value === 'respondedAlready'
308-
? new AlreadyJoinedError('Already joining or in project')
309-
: context.error || new Error('Unknown error')
310-
}
309+
if (!projectPublicId) {
310+
const { context, value } = invite.actor.getSnapshot()
311+
throw value === 'respondedAlready'
312+
? new AlreadyJoinedError('Already joining or in project')
313+
: context.error || new Error('Unknown error')
314+
}
311315

312-
return projectPublicId
316+
return projectPublicId
317+
} catch (err) {
318+
this.#l.log('ERROR: Unable to accept invite', err)
319+
throw err
320+
}
313321
}
314322

315323
/**

src/member-api.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ export class MemberApi extends TypedEmitter {
235235
}
236236
} catch (err) {
237237
if (err instanceof Error && err.name === 'RPCDisconnectBeforeAckError') {
238+
this.#l.log('ERROR: Disconnect before ack', err)
238239
throw new InviteAbortedError()
239240
}
240241
throw err
@@ -283,8 +284,10 @@ export class MemberApi extends TypedEmitter {
283284
return await responsePromise
284285
} catch (err) {
285286
if (err instanceof Error && err.name === 'AbortError') {
287+
this.#l.log('ERROR: Timed out sending invite', err)
286288
throw new InviteAbortedError()
287289
} else {
290+
this.#l.log('ERROR: Unexpected error during invite send', err)
288291
throw err
289292
}
290293
} finally {

0 commit comments

Comments
 (0)