aboutsummaryrefslogtreecommitdiffstats
path: root/timetask/time_entry.go
diff options
context:
space:
mode:
Diffstat (limited to 'timetask/time_entry.go')
-rw-r--r--timetask/time_entry.go65
1 files changed, 25 insertions, 40 deletions
diff --git a/timetask/time_entry.go b/timetask/time_entry.go
index 17a8e0c..bb7a741 100644
--- a/timetask/time_entry.go
+++ b/timetask/time_entry.go
@@ -3,50 +3,35 @@ package timetask
import "time"
type TimeEntry struct {
- Client string
- Project string
- Module string
- Task string
- WorkType string `yaml:"work_type"`
+ PersonID int
+ Client int
+ Project int
+ Module int
+ Task int
+ WorkType int
Date time.Time
- Time int
+ Time float64
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
- Module string
- Task string
- WorkType string `yaml:"work_type"`
- Date string
- Time int
- Billable bool
- Description string
+func NewTimeEntry(
+ profile Profile,
+ project Project,
+ date time.Time,
+ time float64,
+ description string,
+) TimeEntry {
+ return TimeEntry{
+ PersonID: profile.PersonID,
+ Client: project.Client,
+ Project: project.Project,
+ Module: project.Module,
+ Task: project.Task,
+ WorkType: project.WorkType,
+ Date: date,
+ Time: time,
+ Billable: project.Billable,
+ Description: description,
}
-
- err := unmarshal(&auxiliary)
- if err != nil {
- return err
- }
-
- date, err := time.Parse("2006-01-02", auxiliary.Date)
- if auxiliary.Date != "" && err != nil {
- return err
- }
-
- te.Client = auxiliary.Client
- te.Project = auxiliary.Project
- te.Module = auxiliary.Module
- te.Task = auxiliary.Task
- te.WorkType = auxiliary.WorkType
- te.Date = date
- te.Time = auxiliary.Time
- te.Billable = auxiliary.Billable
- te.Description = auxiliary.Description
-
- return nil
}