diff --git a/src/api/bot/core.ts b/src/api/bot/core.ts index 1f624c5f0a..4109519ca5 100644 --- a/src/api/bot/core.ts +++ b/src/api/bot/core.ts @@ -34,7 +34,7 @@ export default class BotCore extends EventEmitter { public static import(data) { const core = new BotCore(); - core.user = data.user; + core.user = data.user ? data.user : null; core.setContect(data.context ? Context.import(core, data.context) : null); return core; } @@ -84,7 +84,7 @@ abstract class Context extends EventEmitter { } class SigninContext extends Context { - private temporaryUser: IUser; + private temporaryUser: IUser = null; public async greet(): Promise { return 'まずユーザー名を教えてください:'; @@ -124,6 +124,7 @@ class SigninContext extends Context { public export() { return { + type: 'signin', temporaryUser: this.temporaryUser }; } diff --git a/src/api/bot/interfaces/line.ts b/src/api/bot/interfaces/line.ts index 61aa728121..52559eaeff 100644 --- a/src/api/bot/interfaces/line.ts +++ b/src/api/bot/interfaces/line.ts @@ -32,20 +32,16 @@ module.exports = async (app: express.Application) => { } }); - if (user) { - session = new BotCore(user); - } else { - session = new BotCore(); - session.on('set-user', user => { - User.update(user._id, { - $set: { - line: { - user_id: sourceId - } + session = new BotCore(user); + session.on('set-user', user => { + User.update(user._id, { + $set: { + line: { + user_id: sourceId } - }); + } }); - } + }); redis.set(sessionId, JSON.stringify(session.export())); } else {