Managing sessions functionality
authorJavier Sancho <jsf@jsancho.org>
Wed, 8 Nov 2017 16:29:50 +0000 (17:29 +0100)
committerJavier Sancho <jsf@jsancho.org>
Wed, 8 Nov 2017 16:29:50 +0000 (17:29 +0100)
sessions.go

index dad67ab..a0ff861 100644 (file)
@@ -8,3 +8,23 @@ type Session struct {
        Chat *tgbotapi.Chat
        Msgbox chan tgbotapi.Message
 }
+
+var sessions map[int64]*Session
+
+func initSessions() {
+       sessions = make(map[int64]*Session)
+}
+
+func getSession(chat *tgbotapi.Chat) *Session {
+       session, ok := sessions[chat.ID]
+       if !ok {
+               session = newSession(chat)
+       }
+       return session
+}
+
+func newSession(chat *tgbotapi.Chat) *Session {
+       session := Session{chat, make(chan tgbotapi.Message)}
+       sessions[chat.ID] = &session
+       return &session
+}