fix(backend): リバーシの設定変更が反映されないのを修正 (#14404)

* fix(backend): リバーシの設定変更が反映されないのを修正

* Update Changelog

* add bindthis
This commit is contained in:
かっこかり
2024-08-16 21:02:12 +09:00
committed by GitHub
parent 45d88574c3
commit a8810af8d9
6 changed files with 47 additions and 12 deletions

View File

@@ -12,6 +12,7 @@ import { ReversiGameEntityService } from '@/core/entities/ReversiGameEntityServi
import { isJsonObject } from '@/misc/json-value.js';
import type { JsonObject, JsonValue } from '@/misc/json-value.js';
import Channel, { type MiChannelService } from '../channel.js';
import { reversiUpdateKeys } from 'misskey-js';
class ReversiGameChannel extends Channel {
public readonly chName = 'reversiGame';
@@ -46,8 +47,9 @@ class ReversiGameChannel extends Channel {
break;
case 'updateSettings':
if (!isJsonObject(body)) return;
if (typeof body.key !== 'string') return;
if (!isJsonObject(body.value)) return;
if (!this.reversiService.isValidReversiUpdateKey(body.key)) return;
if (!this.reversiService.isValidReversiUpdateValue(body.key, body.value)) return;
this.updateSettings(body.key, body.value);
break;
case 'cancel':
@@ -64,7 +66,7 @@ class ReversiGameChannel extends Channel {
}
@bindThis
private async updateSettings(key: string, value: JsonObject) {
private async updateSettings<K extends typeof reversiUpdateKeys[number]>(key: K, value: MiReversiGame[K]) {
if (this.user == null) return;
this.reversiService.updateSettings(this.gameId!, this.user, key, value);