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 return
} }
// todo logging into tg with trashlog // todo logging into tg with trashlog
var aimErr error
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil || aimErr != nil {
fmt.Println("recovering from panic or error setting redis value:", r) fmt.Println("recovering from panic or error setting redis value:", r, aimErr)
_ = wc.redis.Set(ctx, key, taskBytes, 0).Err() _ = wc.redis.Set(ctx, key, taskBytes, 0).Err()
} }
}() }()
var task model.TgRedisTask 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) fmt.Println("Failed unmarshal telegram task:", err)
return return
} }
inviteLink, chatID, err := wc.tgClient.CreateChannel(task.Name, wc.botID) var inviteLink string
if err != nil { var chatID int64
fmt.Println("Failed create tg channel:", err) inviteLink, chatID, aimErr = wc.tgClient.CreateChannel(task.Name, wc.botID)
if aimErr != nil {
fmt.Println("Failed create tg channel:", aimErr)
return return
} }
_, err = wc.dal.AccountRepo.PostLeadTarget(ctx, model.LeadTarget{ _, aimErr = wc.dal.AccountRepo.PostLeadTarget(ctx, model.LeadTarget{
AccountID: task.AccountID, AccountID: task.AccountID,
Type: model.LeadTargetTg, Type: model.LeadTargetTg,
QuizID: task.QuizID, QuizID: task.QuizID,
Target: strconv.Itoa(int(chatID)), Target: strconv.Itoa(int(chatID)),
InviteLink: inviteLink, InviteLink: inviteLink,
}) })
if err != nil { if aimErr != nil {
fmt.Println("Failed create lead target in db:", err) fmt.Println("Failed create lead target in db:", aimErr)
return return
} }
}() }()