fix(backend): Skeb連携の照会後ロール付与に失敗しても無視するように

This commit is contained in:
まっちゃとーにゅ 2024-04-01 23:18:58 +09:00
parent ea5684ffaa
commit 416da28dc3
No known key found for this signature in database
GPG Key ID: 6AFBBF529601C1DB
1 changed files with 13 additions and 5 deletions

View File

@ -134,17 +134,25 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
if (res.status > 299 || (json.error ?? json.ban_reason)) { if (res.status > 299 || (json.error ?? json.ban_reason)) {
logger.error('Skeb status response error', { url: url.href, userId: ps.userId, status: res.status, statusText: res.statusText, error: json.error ?? json.ban_reason }); logger.error('Skeb status response error', { url: url.href, userId: ps.userId, status: res.status, statusText: res.statusText, error: json.error ?? json.ban_reason });
try {
if (res.status === 404 && hasSkebRole) await this.roleService.unassign(ps.userId, this.config.skebStatus.roleId); if (res.status === 404 && hasSkebRole) await this.roleService.unassign(ps.userId, this.config.skebStatus.roleId);
} catch (err) {
logger.error('Failed to unassign role', { userId: ps.userId, roleId: this.config.skebStatus.roleId, error: err });
}
throw new ApiError(meta.errors.noSuchUser); throw new ApiError(meta.errors.noSuchUser);
} }
logger.info('Skeb status response', { url: url.href, userId: ps.userId, status: res.status, statusText: res.statusText, skebStatus: json }); logger.info('Skeb status response', { url: url.href, userId: ps.userId, status: res.status, statusText: res.statusText, skebStatus: json });
try {
if (json.is_acceptable) { if (json.is_acceptable) {
if (!hasSkebRole) await this.roleService.assign(ps.userId, this.config.skebStatus.roleId); if (!hasSkebRole) await this.roleService.assign(ps.userId, this.config.skebStatus.roleId);
} else if (hasSkebRole) { } else if (hasSkebRole) {
await this.roleService.unassign(ps.userId, this.config.skebStatus.roleId); await this.roleService.unassign(ps.userId, this.config.skebStatus.roleId);
} }
} catch (err) {
logger.error('Failed to assign/unassign role', { userId: ps.userId, roleId: this.config.skebStatus.roleId, error: err });
}
return { return {
screenName: json.screen_name, screenName: json.screen_name,