// Fantasy World Zookeeper Bot // Copyright (c) 2018 Vladimir "fat0troll" Hodakov package router import ( "github.com/rs/zerolog" "gitlab.com/toby3d/telegram" "lab.wtfteam.pro/fat0troll/fw_zookeeper/context" "regexp" ) var ( c *context.Context log zerolog.Logger // Requests is a pointer to initialized Router object Requests *Router ) // Router is a struct which handles router functions type Router struct { privateCommands map[string]func(update *telegram.Update) groupCommands map[string]func(update *telegram.Update) privateRegulars map[*regexp.Regexp]func(update *telegram.Update) groupRegulars map[*regexp.Regexp]func(update *telegram.Update) inlineQueries map[*regexp.Regexp]func(update *telegram.Update) } // New initializes package func New(cc *context.Context) { c = cc log = c.Logger.With().Str("domain", "router").Int("version", 1).Logger() r := &Router{} r.privateCommands = make(map[string]func(update *telegram.Update)) r.groupCommands = make(map[string]func(update *telegram.Update)) r.privateRegulars = make(map[*regexp.Regexp]func(update *telegram.Update)) r.groupRegulars = make(map[*regexp.Regexp]func(update *telegram.Update)) r.inlineQueries = make(map[*regexp.Regexp]func(update *telegram.Update)) log.Info().Msg("Initialized requests router") Requests = r }