aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.go27
-rw-r--r--templates/timesheet.yml.tmpl11
-rw-r--r--templates/weekly_timesheet.yml.tmpl3
-rw-r--r--timetask/fields.go94
-rw-r--r--timetask/generator.go44
-rw-r--r--timetask/http.go4
-rw-r--r--timetask/http_test.go2
-rw-r--r--timetask/project.go10
-rw-r--r--timetask/time_entry.go18
9 files changed, 22 insertions, 191 deletions
diff --git a/main.go b/main.go
index 3a343b5..41245db 100644
--- a/main.go
+++ b/main.go
@@ -1,10 +1,8 @@
package main
import (
- // "fmt"
"io/ioutil"
"log"
- // "os"
"time"
"github.com/teddywing/timetasker/timetask"
@@ -17,7 +15,7 @@ type Config struct {
Username string
PasswordCmd string `toml:"password_cmd"`
}
- Profile timetask.Profile
+ Profile timetask.Profile
Projects map[string]timetask.Project
}
@@ -55,29 +53,6 @@ func main() {
defer resp.Body.Close()
body, err = ioutil.ReadAll(resp.Body)
log.Println(string(body))
-
- // 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)
-
- // timetask.GenerateWeeklyTimesheet(os.Stdout, config.Defaults)
}
func loadConfig() {
diff --git a/templates/timesheet.yml.tmpl b/templates/timesheet.yml.tmpl
deleted file mode 100644
index 1930b09..0000000
--- a/templates/timesheet.yml.tmpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- define "timesheet" -}}
-- client: {{.Client}}
- project: {{.Project}}
- module: {{.Module}}
- task: {{.Task}}
- work_type: {{.WorkType}}
- date: {{.Date.Format "02/01/06"}}
- time: {{.Time}}
- billable: {{.Billable}}
- description: {{.Description}}
-{{ end -}}
diff --git a/templates/weekly_timesheet.yml.tmpl b/templates/weekly_timesheet.yml.tmpl
deleted file mode 100644
index 0ea6582..0000000
--- a/templates/weekly_timesheet.yml.tmpl
+++ /dev/null
@@ -1,3 +0,0 @@
-{{- range . -}}
- {{- template "timesheet" . -}}
-{{- end -}}
diff --git a/timetask/fields.go b/timetask/fields.go
deleted file mode 100644
index 9f7aa99..0000000
--- a/timetask/fields.go
+++ /dev/null
@@ -1,94 +0,0 @@
-package timetask
-
-// 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 Project struct {
- Client int
- Project int
- Module int
- Task int
- WorkType int `toml:"work_type"`
- Billable bool
-}
-
-// 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/generator.go b/timetask/generator.go
deleted file mode 100644
index 5d0fa7f..0000000
--- a/timetask/generator.go
+++ /dev/null
@@ -1,44 +0,0 @@
-package timetask
-
-import (
- "io"
- "log"
- "text/template"
- "time"
-
- "github.com/olebedev/when"
- "github.com/olebedev/when/rules/common"
- "github.com/olebedev/when/rules/en"
-)
-
-func GenerateWeeklyTimesheet(wr io.Writer, defaults TimeEntry) {
- w := when.New(nil)
- w.Add(en.All...)
- w.Add(common.All...)
-
- monday, err := w.Parse("last monday", time.Now())
- if err != nil {
- log.Panic(err)
- }
-
- time_entries := []TimeEntry{}
- day := monday.Time
- for i := 1; i <= 5; i++ {
- time_entries = append(time_entries, defaults)
- time_entries[len(time_entries) - 1].Date = day
- day = day.AddDate(0, 0, 1) // Add 1 day
- }
-
- t, err := template.ParseFiles(
- "templates/weekly_timesheet.yml.tmpl",
- "templates/timesheet.yml.tmpl",
- )
- if err != nil {
- log.Panic(err)
- }
-
- err = t.Execute(wr, time_entries)
- if err != nil {
- log.Panic(err)
- }
-}
diff --git a/timetask/http.go b/timetask/http.go
index 736fcfb..6e73276 100644
--- a/timetask/http.go
+++ b/timetask/http.go
@@ -1,13 +1,10 @@
package timetask
import (
- // "fmt"
- // "log"
"net/http"
"net/http/cookiejar"
"net/url"
"strconv"
- // "strings"
"golang.org/x/net/publicsuffix"
)
@@ -62,7 +59,6 @@ func SubmitTimeEntry(
return resp, nil
}
-
func buildSubmissionParams(time_entry TimeEntry) url.Values {
v := url.Values{}
diff --git a/timetask/http_test.go b/timetask/http_test.go
index c54617f..604c3c3 100644
--- a/timetask/http_test.go
+++ b/timetask/http_test.go
@@ -17,6 +17,8 @@ func init() {
}
func TestLogin(t *testing.T) {
+ t.Skip("No requests")
+
response, err := Login(username, password)
if err != nil {
t.Fatal(err)
diff --git a/timetask/project.go b/timetask/project.go
new file mode 100644
index 0000000..b8fe5c7
--- /dev/null
+++ b/timetask/project.go
@@ -0,0 +1,10 @@
+package timetask
+
+type Project struct {
+ Client int
+ Project int
+ Module int
+ Task int
+ WorkType int `toml:"work_type"`
+ Billable bool
+}
diff --git a/timetask/time_entry.go b/timetask/time_entry.go
index 161de3e..ff0ad1f 100644
--- a/timetask/time_entry.go
+++ b/timetask/time_entry.go
@@ -23,15 +23,15 @@ func NewTimeEntry(
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,
+ 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,
}
}