added aiming error in tg worker for correct restoring data in redis

This commit is contained in:
Pavel 2024-07-11 18:42:55 +03:00
parent 8ee4975ef9
commit ce69833a25

@ -70,34 +70,37 @@ func (wc *TgListenerWorker) processTasks(ctx context.Context) {
return
}
// todo logging into tg with trashlog
var aimErr error
defer func() {
if r := recover(); r != nil {
fmt.Println("recovering from panic or error setting redis value:", r)
if r := recover(); r != nil || aimErr != nil {
fmt.Println("recovering from panic or error setting redis value:", r, aimErr)
_ = wc.redis.Set(ctx, key, taskBytes, 0).Err()
}
}()
var task model.TgRedisTask
if json.Unmarshal([]byte(taskBytes), &task) != nil {
if err = json.Unmarshal([]byte(taskBytes), &task); err != nil {
fmt.Println("Failed unmarshal telegram task:", err)
return
}
inviteLink, chatID, err := wc.tgClient.CreateChannel(task.Name, wc.botID)
if err != nil {
fmt.Println("Failed create tg channel:", err)
var inviteLink string
var chatID int64
inviteLink, chatID, aimErr = wc.tgClient.CreateChannel(task.Name, wc.botID)
if aimErr != nil {
fmt.Println("Failed create tg channel:", aimErr)
return
}
_, err = wc.dal.AccountRepo.PostLeadTarget(ctx, model.LeadTarget{
_, aimErr = wc.dal.AccountRepo.PostLeadTarget(ctx, model.LeadTarget{
AccountID: task.AccountID,
Type: model.LeadTargetTg,
QuizID: task.QuizID,
Target: strconv.Itoa(int(chatID)),
InviteLink: inviteLink,
})
if err != nil {
fmt.Println("Failed create lead target in db:", err)
if aimErr != nil {
fmt.Println("Failed create lead target in db:", aimErr)
return
}
}()