aboutsummaryrefslogtreecommitdiffstats
path: root/timetask
diff options
context:
space:
mode:
Diffstat (limited to 'timetask')
-rw-r--r--timetask/fields.go166
-rw-r--r--timetask/http.go214
2 files changed, 195 insertions, 185 deletions
diff --git a/timetask/fields.go b/timetask/fields.go
index fb3a026..da2b37d 100644
--- a/timetask/fields.go
+++ b/timetask/fields.go
@@ -1,85 +1,95 @@
package timetask
-import "fmt"
+// import "fmt"
-type Client struct {
- ID int
- Name string
- Projects []Project
-}
-
-type Project struct {
- ID int
- Name string
- Modules []Module
- Tasks []Task
- WorkTypes []WorkType `yaml:"work_types"`
-}
-
-type Module struct {
- ID int
- Name string
-}
-type Task struct {
- ID int
- Name string
-}
-type WorkType struct {
- ID int
- Name string
-}
-
-type Fields struct {
- PersonID int `yaml:"person_id"`
- Clients []Client
-}
-
-func (f *Fields) ClientByName(client_name string) (*Client, error) {
- for _, client := range f.Clients {
- if client.Name == client_name {
- return &client, nil
- }
- }
+// type Client struct {
+// ID int
+// Name string
+// Projects []Project
+// }
- return nil, fmt.Errorf("Client %s not found", client_name)
-}
-
-func (c *Client) ProjectByName(project_name string) (*Project, error) {
- for _, project := range c.Projects {
- if project.Name == project_name {
- return &project, nil
- }
- }
-
- return nil, fmt.Errorf("Project %s not found", project_name)
-}
-
-func (p *Project) ModuleByName(module_name string) (*Module, error) {
- for _, module := range p.Modules {
- if module.Name == module_name {
- return &module, nil
- }
- }
+// type Project struct {
+// ID int
+// Name string
+// Modules []Module
+// Tasks []Task
+// WorkTypes []WorkType `yaml:"work_types"`
+// }
- return nil, fmt.Errorf("Module %s not found", module_name)
-}
-
-func (p *Project) TaskByName(task_name string) (*Task, error) {
- for _, task := range p.Tasks {
- if task.Name == task_name {
- return &task, nil
- }
- }
-
- return nil, fmt.Errorf("Task %s not found", task_name)
+type Project struct {
+ Client int
+ Project int
+ Module int
+ Task int
+ WorkType int
+ Time int
+ Billable bool
}
-func (p *Project) WorkTypeByName(work_type_name string) (*WorkType, error) {
- for _, work_type := range p.WorkTypes {
- if work_type.Name == work_type_name {
- return &work_type, nil
- }
- }
-
- return nil, fmt.Errorf("Work type %s not found", work_type_name)
-}
+// type Module struct {
+// ID int
+// Name string
+// }
+// type Task struct {
+// ID int
+// Name string
+// }
+// type WorkType struct {
+// ID int
+// Name string
+// }
+//
+// type Fields struct {
+// PersonID int `yaml:"person_id"`
+// Clients []Client
+// }
+//
+// func (f *Fields) ClientByName(client_name string) (*Client, error) {
+// for _, client := range f.Clients {
+// if client.Name == client_name {
+// return &client, nil
+// }
+// }
+//
+// return nil, fmt.Errorf("Client %s not found", client_name)
+// }
+//
+// func (c *Client) ProjectByName(project_name string) (*Project, error) {
+// for _, project := range c.Projects {
+// if project.Name == project_name {
+// return &project, nil
+// }
+// }
+//
+// return nil, fmt.Errorf("Project %s not found", project_name)
+// }
+//
+// func (p *Project) ModuleByName(module_name string) (*Module, error) {
+// for _, module := range p.Modules {
+// if module.Name == module_name {
+// return &module, nil
+// }
+// }
+//
+// return nil, fmt.Errorf("Module %s not found", module_name)
+// }
+//
+// func (p *Project) TaskByName(task_name string) (*Task, error) {
+// for _, task := range p.Tasks {
+// if task.Name == task_name {
+// return &task, nil
+// }
+// }
+//
+// return nil, fmt.Errorf("Task %s not found", task_name)
+// }
+//
+// func (p *Project) WorkTypeByName(work_type_name string) (*WorkType, error) {
+// for _, work_type := range p.WorkTypes {
+// if work_type.Name == work_type_name {
+// return &work_type, nil
+// }
+// }
+//
+// return nil, fmt.Errorf("Work type %s not found", work_type_name)
+// }
diff --git a/timetask/http.go b/timetask/http.go
index 83946ad..94a1597 100644
--- a/timetask/http.go
+++ b/timetask/http.go
@@ -1,13 +1,13 @@
package timetask
import (
- "fmt"
- "log"
+ // "fmt"
+ // "log"
"net/http"
"net/http/cookiejar"
"net/url"
- "strconv"
- "strings"
+ // "strconv"
+ // "strings"
"golang.org/x/net/publicsuffix"
)
@@ -36,106 +36,106 @@ func Login(username, password string) (resp *http.Response, err error) {
return resp, err
}
-func SubmitTimeEntries(fields Fields, time_entries []TimeEntry) (resp *http.Response, err error) {
- v := buildSubmissionParams(fields, time_entries)
-
- v.Set("module", "time")
- v.Set("action", "submitmultipletime")
-
- return nil, nil
-}
-
-func buildSubmissionParams(fields Fields, time_entries []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_entryIndexes", strings.Join(entry_indexes, ","))
-
- return v
-}
+// func SubmitTimeEntries(fields Fields, time_entries []TimeEntry) (resp *http.Response, err error) {
+// v := buildSubmissionParams(fields, time_entries)
+//
+// v.Set("module", "time")
+// v.Set("action", "submitmultipletime")
+//
+// return nil, nil
+// }
+//
+// func buildSubmissionParams(fields Fields, time_entries []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_entryIndexes", strings.Join(entry_indexes, ","))
+//
+// return v
+// }