diff options
| -rw-r--r-- | main.go | 44 | ||||
| -rw-r--r-- | timetask/fields.go | 160 | ||||
| -rw-r--r-- | timetask/http.go | 214 | 
3 files changed, 209 insertions, 209 deletions
| @@ -1,12 +1,12 @@  package main  import ( -	"fmt" -	"io/ioutil" +	// "fmt" +	// "io/ioutil"  	"log" -	"os" +	// "os" -	"github.com/teddywing/timetasker/timetask" +	// "github.com/teddywing/timetasker/timetask"  	"github.com/BurntSushi/toml"  ) @@ -24,24 +24,24 @@ var config Config  func main() {  	loadConfig() -	if len(os.Args) == 1 { -		fmt.Println("Not enough arguments") -		os.Exit(1) -	} - -	file_path := os.Args[len(os.Args)-1] -	file, err := ioutil.ReadFile(file_path) -	if err != nil { -		log.Println(err) -	} - -	time_entries := []timetask.TimeEntry{} -	err = yaml.Unmarshal(file, &time_entries) -	if err != nil { -		log.Println(err) -	} - -	log.Printf("%+v", time_entries) +	// if len(os.Args) == 1 { +	// 	fmt.Println("Not enough arguments") +	// 	os.Exit(1) +	// } +	// +	// file_path := os.Args[len(os.Args)-1] +	// file, err := ioutil.ReadFile(file_path) +	// if err != nil { +	// 	log.Println(err) +	// } + +	// time_entries := []timetask.TimeEntry{} +	// err = yaml.Unmarshal(file, &time_entries) +	// if err != nil { +	// 	log.Println(err) +	// } +	// +	// log.Printf("%+v", time_entries)  	// timetask.SubmitTimeEntries(config.Fields, time_entries) diff --git a/timetask/fields.go b/timetask/fields.go index fb3a026..f3bb27d 100644 --- a/timetask/fields.go +++ b/timetask/fields.go @@ -1,85 +1,85 @@  package timetask -import "fmt" +// import "fmt" -type Client struct { -	ID       int -	Name     string -	Projects []Project -} +// 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 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 -		} -	} - -	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) -} +// 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 +// } | 
