add fix for auto duration donate

This commit is contained in:
harold 2025-05-22 00:31:17 +05:00
parent f14d06c349
commit 493ae72055

View File

@ -192,16 +192,13 @@ func (donatService *ServiceDonat) MarkDonatPaid(
return err
}
err = donatService.donatRepo.MarkDonatPaid(
ctx,
orderID,
)
err = donatService.donatRepo.MarkDonatPaid(ctx, orderID)
if err != nil {
slog.Error(err.Error())
return err
}
if moderationSettings.Enable == false {
if !moderationSettings.Enable {
moderated := true
updateModel := model.ModerationDonat{
Accepted: &moderated,
@ -219,6 +216,45 @@ func (donatService *ServiceDonat) MarkDonatPaid(
slog.Error(err.Error())
return err
}
} else {
go func(streamerID, donatID int, duration int) {
select {
case <-time.After(time.Duration(duration) * time.Second):
moderated := true
updateModel := model.ModerationDonat{
Accepted: &moderated,
ShowText: &moderated,
ShowName: &moderated,
PlayContent: &moderated,
}
bgCtx := context.Background()
donateModel, err := donatService.donatRepo.GetDonatByOrderID(bgCtx, orderID)
if err != nil {
slog.Error(err.Error())
return
}
if donateModel.AcceptedTime == nil {
if err := donatService.donatRepo.ModerateDonation(
bgCtx,
donateModel.ID,
donatModel.StreamerID,
updateModel,
); err != nil {
slog.Error("failed to auto-moderate donation",
"error", err.Error(),
"donatID", donatID,
"streamerID", streamerID,
)
}
}
case <-ctx.Done():
slog.Warn("context canceled before auto-moderation",
"donatID", donatID,
"streamerID", streamerID,
)
}
}(donatModel.StreamerID, donatModel.ID, moderationSettings.Duration)
}
return nil