fix(backend): Skeb連携の照会後ロール付与に失敗しても無視するように
This commit is contained in:
parent
ea5684ffaa
commit
416da28dc3
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue