diff options
Diffstat (limited to 'timetask')
| -rw-r--r-- | timetask/http.go | 146 | ||||
| -rw-r--r-- | timetask/profile.go | 5 | 
2 files changed, 62 insertions, 89 deletions
| diff --git a/timetask/http.go b/timetask/http.go index 4832d00..8b90230 100644 --- a/timetask/http.go +++ b/timetask/http.go @@ -6,7 +6,7 @@ import (  	"net/http"  	"net/http/cookiejar"  	"net/url" -	// "strconv" +	"strconv"  	// "strings"  	"golang.org/x/net/publicsuffix" @@ -51,97 +51,65 @@ func SubmitTimeEntries(fields Fields, time_entries []TimeEntry) (resp *http.Resp  	return nil, nil  } -func buildSubmissionParams(fields Fields, time_entries []TimeEntry) url.Values { +func buildSubmissionParams(profile Profile, time_entry TimeEntry) url.Values {  	v := url.Values{} -	entry_indexes := []string{} - -	for i, entry := range time_entries { -		entry_indexes = append(entry_indexes, strconv.Itoa(i)) - -		client, err := fields.ClientByName(entry.Client) -		if err != nil { -			log.Panic(err) -		} - -		project, err := client.ProjectByName(entry.Project) -		if err != nil { -			log.Panic(err) -		} - -		module, err := project.ModuleByName(entry.Module) -		if err != nil { -			log.Panic(err) -		} - -		task, err := project.TaskByName(entry.Task) -		if err != nil { -			log.Panic(err) -		} - -		work_type, err := project.WorkTypeByName(entry.WorkType) -		if err != nil { -			log.Panic(err) -		} - -		var billable string -		if entry.Billable { -			billable = "t" -		} else { -			billable = "f" -		} - -		v.Set( -			fmt.Sprintf("f_personID%d", i), -			strconv.Itoa(fields.PersonID), -		) - -		v.Set( -			fmt.Sprintf("f_clientID%d", i), -			strconv.Itoa(client.ID), -		) - -		v.Set( -			fmt.Sprintf("f_projectID%d", i), -			strconv.Itoa(project.ID), -		) - -		v.Set( -			fmt.Sprintf("f_moduleID%d", i), -			strconv.Itoa(module.ID), -		) - -		v.Set( -			fmt.Sprintf("f_taskID%d", i), -			strconv.Itoa(task.ID), -		) - -		v.Set( -			fmt.Sprintf("f_worktypeID%d", i), -			strconv.Itoa(work_type.ID), -		) - -		v.Set( -			fmt.Sprintf("f_date%d", i), -			entry.Date.Format("02/01/06"), // day/month/year -		) - -		v.Set( -			fmt.Sprintf("f_time%d", i), -			strconv.Itoa(entry.Time), -		) - -		v.Set( -			fmt.Sprintf("f_billable%d", i), -			billable, -		) - -		v.Set( -			fmt.Sprintf("f_description%d", i), -			entry.Description, -		) + +	v.Set( +		"f_personID0", +		strconv.Itoa(profile.PersonID), +	) + +	v.Set( +		"f_clientID0", +		strconv.Itoa(time_entry.Client), +	) + +	v.Set( +		"f_projectID0", +		strconv.Itoa(time_entry.Project), +	) + +	v.Set( +		"f_moduleID0", +		strconv.Itoa(time_entry.Module), +	) + +	v.Set( +		"f_taskID0", +		strconv.Itoa(time_entry.Task), +	) + +	v.Set( +		"f_worktypeID0", +		strconv.Itoa(time_entry.WorkType), +	) + +	v.Set( +		"f_date0", +		time_entry.Date.Format("02/01/06"), // day/month/year +	) + +	v.Set( +		"f_time0", +		strconv.Itoa(time_entry.Time), +	) + +	var billable string +	if time_entry.Billable { +		billable = "t" +	} else { +		billable = "f"  	} -	v.Set("f_entryIndexes", strings.Join(entry_indexes, ",")) +	v.Set( +		"f_billable0", +		billable, +	) + +	v.Set( +		"f_description0", +		time_entry.Description, +	)  	return v  } diff --git a/timetask/profile.go b/timetask/profile.go new file mode 100644 index 0000000..66e9197 --- /dev/null +++ b/timetask/profile.go @@ -0,0 +1,5 @@ +package timetask + +type Profile struct { +	PersonID int +} | 
