45 lines
885 B
Go
45 lines
885 B
Go
|
package app
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
|
||
|
)
|
||
|
|
||
|
type DataCleanupService struct {
|
||
|
serverSvc *ServerService
|
||
|
pub DataCleanupPublisher
|
||
|
}
|
||
|
|
||
|
func NewDataCleanupService(serverSvc *ServerService, pub DataCleanupPublisher) *DataCleanupService {
|
||
|
return &DataCleanupService{serverSvc: serverSvc, pub: pub}
|
||
|
}
|
||
|
|
||
|
func (svc *DataCleanupService) CleanUp(ctx context.Context) error {
|
||
|
params := domain.NewListServersParams()
|
||
|
if err := params.SetOpen(domain.NullBool{
|
||
|
V: false,
|
||
|
Valid: true,
|
||
|
}); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err := params.SetSpecial(domain.NullBool{
|
||
|
V: false,
|
||
|
Valid: true,
|
||
|
}); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
servers, err := svc.serverSvc.ListAll(ctx, params)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
payloads, err := servers.CleanUpData()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return svc.pub.CmdCleanUp(ctx, payloads...)
|
||
|
}
|