3d434eedb8
Job Status Get and DB tidy up * initalquery * tests * shorttests * testing queries * job * solvedthequery * updatingdb * fixingtests * repotests * shorttests * docker * testspassed
54 lines
940 B
Go
54 lines
940 B
Go
package job
|
|
|
|
import (
|
|
"context"
|
|
"queryorchestration/internal/database"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
func (s *Service) Get(ctx context.Context, id uuid.UUID) (*Job, error) {
|
|
job, err := s.cfg.GetDBQueries().GetJob(ctx, database.MustToDBUUID(id))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
client, err := s.svc.Client.Get(ctx, database.MustToUUID(job.Clientid))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
canSync := job.Cansync
|
|
if !client.CanSync {
|
|
canSync = false
|
|
}
|
|
|
|
return &Job{
|
|
ID: id,
|
|
ClientID: database.MustToUUID(job.Clientid),
|
|
CanSync: canSync,
|
|
}, nil
|
|
}
|
|
|
|
type JobWithStatus struct {
|
|
Job *Job
|
|
Status Status
|
|
}
|
|
|
|
func (s *Service) GetWithStatus(ctx context.Context, id uuid.UUID) (*JobWithStatus, error) {
|
|
job, err := s.Get(ctx, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
status, err := s.GetStatus(ctx, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &JobWithStatus{
|
|
Job: job,
|
|
Status: *status,
|
|
}, nil
|
|
}
|