Ejemplo n.º 1
0
func (m *ScanManager) Update(obj *scan.Scan) error {
	now := time.Now().UTC()
	obj.Dates.Updated = &now
	switch st := obj.Status; true {
	case st == scan.StatusQueued:
		if obj.Queued == nil {
			obj.Queued = &now
		}
	case st == scan.StatusFinished || st == scan.StatusFailed:
		if obj.Finished == nil {
			obj.Finished = &now
		}
	case st == scan.StatusWorking:
		if obj.Started == nil {
			obj.Started = &now
		}
	}
	return m.col.UpdateId(obj.Id, obj)
}