template
This commit is contained in:
49
pkg/bot/middlewares/session.go
Normal file
49
pkg/bot/middlewares/session.go
Normal file
@ -0,0 +1,49 @@
|
||||
package middlewares
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"git/ecom/jira-bot/pkg/utils"
|
||||
"log"
|
||||
"strconv"
|
||||
|
||||
"github.com/fatih/color"
|
||||
"github.com/go-redis/redis/v8"
|
||||
telegram "gopkg.in/tucnak/telebot.v2"
|
||||
)
|
||||
|
||||
func RedisSession(redis *redis.Client, ctx context.Context) *telegram.MiddlewarePoller {
|
||||
poller := utils.NewPooler(10)
|
||||
session := telegram.NewMiddlewarePoller(poller, func(upd *telegram.Update) bool {
|
||||
userid := strconv.Itoa(upd.Message.Sender.ID) + ":" + strconv.Itoa(int(upd.Message.Chat.ID))
|
||||
log.Println(userid, upd.Message.Chat.FirstName, ":", upd.Message.Text)
|
||||
exist, err := redis.HExists(ctx, "users", userid).Result()
|
||||
if err != nil {
|
||||
log.Println("Ошибка проверки пользователя", err.Error())
|
||||
}
|
||||
if exist {
|
||||
return true
|
||||
}
|
||||
|
||||
color.Green("Новый пользователь!")
|
||||
user, err := json.Marshal(utils.User{
|
||||
Id: upd.Message.Sender.ID,
|
||||
Role: utils.Client,
|
||||
Username: upd.Message.Sender.Username,
|
||||
Name: upd.Message.Sender.FirstName + " " + upd.Message.Sender.LastName,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
log.Println("Ошибка Marshal:", err.Error())
|
||||
}
|
||||
|
||||
err = redis.HSet(ctx, "users", userid, user).Err()
|
||||
|
||||
if err != nil {
|
||||
log.Println("Ошибка:", err.Error())
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
return session
|
||||
}
|
Reference in New Issue
Block a user