diff options
Diffstat (limited to 'timetask')
| -rw-r--r-- | timetask/time_entry.go | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/timetask/time_entry.go b/timetask/time_entry.go new file mode 100644 index 0000000..6dfb787 --- /dev/null +++ b/timetask/time_entry.go @@ -0,0 +1,46 @@ +package timetask + +import "time" + +type TimeEntry struct { +	Client      string +	Project     string +	Task        string +	WorkType    string `yaml:"work_type"` +	Date        time.Time +	Billable    bool +	Description string +} + +// Parse date string into a real date +func (te *TimeEntry) UnmarshalYAML(unmarshal func(interface{}) error) error { +	var auxiliary struct { +		Client      string +		Project     string +		Task        string +		WorkType    string `yaml:"work_type"` +		Date        string +		Billable    bool +		Description string +	} + +	err := unmarshal(&auxiliary) +	if err != nil { +		return err +	} + +	date, err := time.Parse("2006-01-02", auxiliary.Date) +	if err != nil { +		return err +	} + +	te.Client = auxiliary.Client +	te.Project = auxiliary.Project +	te.Task = auxiliary.Task +	te.WorkType = auxiliary.WorkType +	te.Date = date +	te.Billable = auxiliary.Billable +	te.Description = auxiliary.Description + +	return nil +} | 
