summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin/update-meta.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-09-21 02:35:49 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-09-21 02:35:49 +0900
commitdc43fc68ef2b8e0d6f2cfd94911b367fd915f445 (patch)
tree0ee0971bd64cad08fa493745e9c6b43786452eb0 /packages/backend/src/server/api/endpoints/admin/update-meta.ts
parentfix(backend): add missing noteEntityService dep (diff)
downloadsharkey-dc43fc68ef2b8e0d6f2cfd94911b367fd915f445.tar.gz
sharkey-dc43fc68ef2b8e0d6f2cfd94911b367fd915f445.tar.bz2
sharkey-dc43fc68ef2b8e0d6f2cfd94911b367fd915f445.zip
enhance(backend): metaのポーリング頻度を減らし、redisで更新を受け取るように
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin/update-meta.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts16
1 files changed, 14 insertions, 2 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
index 968ed4d26d..0ab0780e3d 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -5,6 +5,7 @@ import { ModerationLogService } from '@/core/ModerationLogService.js';
import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits.js';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { DI } from '@/di-symbols.js';
+import { GlobalEventService } from '@/core/GlobalEventService.js';
export const meta = {
tags: ['admin'],
@@ -115,6 +116,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.db)
private db: DataSource,
+ private globalEventService: GlobalEventService,
private moderationLogService: ModerationLogService,
) {
super(meta, paramDef, async (ps, me) => {
@@ -436,7 +438,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
set.enableActiveEmailValidation = ps.enableActiveEmailValidation;
}
- await this.db.transaction(async transactionalEntityManager => {
+ const updated = await this.db.transaction(async transactionalEntityManager => {
const metas = await transactionalEntityManager.find(Meta, {
order: {
id: 'DESC',
@@ -447,11 +449,21 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
if (meta) {
await transactionalEntityManager.update(Meta, meta.id, set);
+
+ const metas = await transactionalEntityManager.find(Meta, {
+ order: {
+ id: 'DESC',
+ },
+ });
+
+ return metas[0];
} else {
- await transactionalEntityManager.save(Meta, set);
+ return await transactionalEntityManager.save(Meta, set);
}
});
+ this.globalEventService.publishInternalEvent('metaUpdated', updated);
+
this.moderationLogService.insertModerationLog(me, 'updateMeta');
});
}