2024-10-29 23:19:59 +05:00

60 lines
1.2 KiB
Go

package target
import (
"context"
"donat-widget/internal/model"
"log/slog"
)
func New(
targetRepo model.TargetRepo,
) *ServiceTarget {
return &ServiceTarget{
targetRepo: targetRepo,
}
}
type ServiceTarget struct {
targetRepo model.TargetRepo
}
func (targetService *ServiceTarget) CreateTarget(
ctx context.Context,
streamerID model.StreamerID,
amount model.DonatAmount,
text string,
) (model.TargetID, error) {
targetID, err := targetService.targetRepo.CreateTarget(ctx, streamerID, amount, text)
if err != nil {
slog.Error(err.Error())
return 0, err
}
return targetID, nil
}
func (targetService *ServiceTarget) GetAllTarget(
ctx context.Context,
streamerID model.StreamerID,
) ([]*model.Target, error) {
targets, err := targetService.targetRepo.GetAllTarget(ctx, streamerID)
if err != nil {
slog.Error(err.Error())
return nil, err
}
return targets, nil
}
func (targetService *ServiceTarget) AddAmountToTarget(
ctx context.Context,
targetID model.TargetID,
amount model.DonatAmount,
) error {
err := targetService.targetRepo.AddAmountToTarget(ctx, targetID, amount)
if err != nil {
slog.Error(err.Error())
return err
}
return nil
}