job.go 943 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package orm
  2. import (
  3. "net/http"
  4. "time"
  5. "github.com/jinzhu/gorm"
  6. "gogs.carducci-dante.gov.it/karmen/core/renderer"
  7. )
  8. type Job struct {
  9. gorm.Model
  10. Name string
  11. DocumentID uint
  12. Start time.Time
  13. End time.Time
  14. }
  15. func (s *Job) GetID() uint { return s.ID }
  16. func GetJob(args map[string]string) (interface{}, error) {
  17. var job Job
  18. if err := DB().First(&job, args["id"]).Error; err != nil {
  19. return nil, err
  20. }
  21. return &job, nil
  22. }
  23. func UpdateJob(args map[string]string, r *http.Request) (IDer, error) {
  24. job, err := GetJob(args)
  25. if err != nil {
  26. return nil, err
  27. }
  28. err = renderer.Decode(job, r)
  29. if err != nil {
  30. return nil, err
  31. }
  32. _, err = SaveJob(job)
  33. if err != nil {
  34. return nil, err
  35. }
  36. job, err = GetJob(args)
  37. if err != nil {
  38. return nil, err
  39. }
  40. return job.(*Job), nil
  41. }
  42. func SaveJob(job interface{}) (interface{}, error) {
  43. if err := DB().Save(job).Error; err != nil {
  44. return nil, err
  45. }
  46. return job, nil
  47. }