diff --git a/server/data/Chat.ts b/server/data/Chat.ts index aca0c6e..1c62787 100644 --- a/server/data/Chat.ts +++ b/server/data/Chat.ts @@ -25,7 +25,7 @@ export default class Chat { /* Chat ID */ id TEXT NOT NULL, /* 標題 (群組) */ title TEXT, /* 頭像 (群組) */ avatar BLOB, - /* UserIdA (私信) */ user_a_id TEXT + /* UserIdA (私信) */ user_a_id TEXT, /* UserIdB (私信) */ user_b_id TEXT, /* 设置 */ settings TEXT NOT NULL ); @@ -57,8 +57,8 @@ export default class Chat { avatar, user_a_id, user_b_id, - settings, - ) VALUES (?, ?);`).run( + settings + ) VALUES (?, ?, ?, ?, ?, ?, ?);`).run( type, chatId, null, @@ -76,7 +76,7 @@ export default class Chat { constructor(bean: ChatBean) { this.bean = bean } - private setAttr(key: string, value: SQLInputValue): void { + setAttr(key: string, value: SQLInputValue): void { Chat.database.prepare(`UPDATE ${Chat.table_name} SET ${key} = ? WHERE id = ?`).run(value, this.bean.id) this.bean[key] = value } diff --git a/server/data/ChatPrivate.ts b/server/data/ChatPrivate.ts index 7348546..e570158 100644 --- a/server/data/ChatPrivate.ts +++ b/server/data/ChatPrivate.ts @@ -12,10 +12,14 @@ export default class ChatPrivate extends Chat { } static createForPrivate(userA: User, userB: User) { - return this.create(this.getChatIdByUsersId(userA.bean.id, userB.bean.id), 'private') + const chat = this.create(this.getChatIdByUsersId(userA.bean.id, userB.bean.id), 'private') + chat.setAttr('user_a_id', userA.bean.id) + chat.setAttr('user_b_id', userB.bean.id) } static findByUsersForPrivate(userA: User, userB: User) { - return this.fromChat(this.findById(this.getChatIdByUsersId(userA.bean.id, userB.bean.id)) as Chat) + const chat = this.findById(this.getChatIdByUsersId(userA.bean.id, userB.bean.id)) + if (chat) + return this.fromChat(chat as Chat) } static findOrCreateForPrivate(userA: User, userB: User) { let a = this.findByUsersForPrivate(userA, userB)