60 lines
1.1 KiB
Go
60 lines
1.1 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,
|
|
) error {
|
|
err := targetService.targetRepo.CreateTarget(ctx, streamerID, amount, text)
|
|
if err != nil {
|
|
slog.Error(err.Error())
|
|
return err
|
|
}
|
|
return 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
|
|
}
|