This repository has been archived on 2024-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
core-old/internal/service/tribe_change.go
Dawid Wysokiński d244dc69bf
All checks were successful
continuous-integration/drone/push Build is passing
refactor: remove otel (#140)
Reviewed-on: twhelp/core#140
2022-12-20 07:27:13 +00:00

43 lines
919 B
Go

package service
import (
"context"
"fmt"
"gitea.dwysokinski.me/twhelp/core/internal/domain"
)
const (
tribeChangeChunkSize = 500
)
//counterfeiter:generate -o internal/mock/tribe_change_repository.gen.go . TribeChangeRepository
type TribeChangeRepository interface {
Create(ctx context.Context, params ...domain.CreateTribeChangeParams) error
}
type TribeChange struct {
repo TribeChangeRepository
}
func NewTribeChange(repo TribeChangeRepository) *TribeChange {
return &TribeChange{repo: repo}
}
func (t *TribeChange) Create(ctx context.Context, params ...domain.CreateTribeChangeParams) error {
for i := 0; i < len(params); i += tribeChangeChunkSize {
end := i + tribeChangeChunkSize
if end > len(params) {
end = len(params)
}
chunk := params[i:end]
if err := t.repo.Create(ctx, chunk...); err != nil {
return fmt.Errorf("TribeChangeRepository.Create: %w", err)
}
}
return nil
}