package jobs
import (
+ "fmt"
"os"
"path/filepath"
"strings"
}
func (jh *jobHandlerImpl) AddJob(ji JobInfo) error {
- if jobs, ok := allJobs[ji.InfoTypeIdentity]; ok {
- if _, ok := jobs[ji.InfoJobIdentity]; ok {
- // TODO: Update job
- } else {
- jobs[ji.InfoJobIdentity] = ji
- }
+ if err := validateJobInfo(ji); err == nil {
+ jobs := allJobs[ji.InfoTypeIdentity]
+ jobs[ji.InfoJobIdentity] = ji
+ return nil
+ } else {
+ return err
+ }
+}
+
+func validateJobInfo(ji JobInfo) error {
+ if _, ok := allJobs[ji.InfoTypeIdentity]; !ok {
+ return fmt.Errorf("type not supported: %v", ji.InfoTypeIdentity)
+ }
+ if ji.InfoJobIdentity == "" {
+ return fmt.Errorf("missing required job identity: %v", ji)
+ }
+ // Temporary for when there are only REST callbacks needed
+ if ji.TargetUri == "" {
+ return fmt.Errorf("missing required target URI: %v", ji)
}
return nil
}
return nil, err
}
}
+
+func clearAll() {
+ allJobs = make(map[string]map[string]JobInfo)
+}