job.go 1.1 KB

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