diff options
| author | anatawa12 <anatawa12@icloud.com> | 2024-05-23 15:55:47 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-23 15:55:47 +0900 |
| commit | 83a9aa4533912c685a74a107be3894c4a85a338c (patch) | |
| tree | 7081d74a9e461470ac27252f480a10eec903a307 /packages/backend/src/server/api/endpoints/admin/federation | |
| parent | feat(backend): add /healthz endpoint (#13834) (diff) | |
| download | sharkey-83a9aa4533912c685a74a107be3894c4a85a338c.tar.gz sharkey-83a9aa4533912c685a74a107be3894c4a85a338c.tar.bz2 sharkey-83a9aa4533912c685a74a107be3894c4a85a338c.zip | |
feat: suspend instance improvements (#13861)
* feat(backend): dead instance detection
* feat(backend): suspend type detection
* feat(frontend): show suspend reason on frontend
* feat(backend): resume federation automatically if the server is automatically suspended
* docs(changelog): 配信停止まわりの改善
* lint: fix lint errors
* Update packages/frontend/src/pages/instance-info.vue
* lint: fix lint error
* chore: suspendedState => suspensionState
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin/federation')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts b/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts index 0bcdc2a4b8..fed7bfbbde 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts @@ -46,12 +46,19 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- throw new Error('instance not found'); } + const isSuspendedBefore = instance.suspensionState !== 'none'; + let suspensionState: undefined | 'manuallySuspended' | 'none'; + + if (ps.isSuspended != null && isSuspendedBefore !== ps.isSuspended) { + suspensionState = ps.isSuspended ? 'manuallySuspended' : 'none'; + } + await this.federatedInstanceService.update(instance.id, { - isSuspended: ps.isSuspended, + suspensionState, moderationNote: ps.moderationNote, }); - if (ps.isSuspended != null && instance.isSuspended !== ps.isSuspended) { + if (ps.isSuspended != null && isSuspendedBefore !== ps.isSuspended) { if (ps.isSuspended) { this.moderationLogService.log(me, 'suspendRemoteInstance', { id: instance.id, |