aboutsummaryrefslogtreecommitdiffstats
path: root/timetask/http.go
diff options
context:
space:
mode:
authorTeddy Wing2017-06-04 00:26:03 +0200
committerTeddy Wing2017-06-04 00:26:03 +0200
commit34fb8b7b98076b65b05efc2bbaff013fbbbf5116 (patch)
treeeae64bb174ff4b708f2ba701168acac373079020 /timetask/http.go
parentf8821fa88888491bf49d8cd626f7a011665c6066 (diff)
parent6a62cc9aef3684ef0bd72e6ab79157a699b01c72 (diff)
downloadtimetasker-34fb8b7b98076b65b05efc2bbaff013fbbbf5116.tar.bz2
Merge branch 'command-to-get-module-ids-of-project' into timetasker-daily
Diffstat (limited to 'timetask/http.go')
-rw-r--r--timetask/http.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/timetask/http.go b/timetask/http.go
index 8c41b4f..575ceae 100644
--- a/timetask/http.go
+++ b/timetask/http.go
@@ -1,6 +1,9 @@
package timetask
import (
+ "bytes"
+ "fmt"
+ "io/ioutil"
"net/http"
"net/http/cookiejar"
"net/url"
@@ -126,3 +129,51 @@ func buildSubmissionParams(time_entry TimeEntry) url.Values {
return v
}
+
+func RequestModules(
+ client http.Client,
+ time_entry TimeEntry,
+) (string, error) {
+ params := url.Values{
+ "module": {"projects"},
+ "action": {"listmodulesxref"},
+ "f_ID": {strconv.Itoa(time_entry.Project)},
+ "f_active": {"t"},
+ "f_clientID": {strconv.Itoa(time_entry.Client)},
+ "f_personID": {strconv.Itoa(time_entry.PersonID)},
+ "f_milestoneID": {""},
+ }
+ modules_url, err := url.Parse(baseURL)
+ if err != nil {
+ return "", err
+ }
+
+ modules_url.RawQuery = params.Encode()
+
+ resp, err := client.Get(modules_url.String())
+ if err != nil {
+ return "", err
+ }
+
+ defer resp.Body.Close()
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return "", err
+ }
+ response_body := string(body)
+
+ modules, err := ModuleParseXML(response_body)
+ if err != nil {
+ return "", err
+ }
+
+ var module_buf bytes.Buffer
+ module_buf.WriteString("ID\tModule\n")
+ for _, module := range modules {
+ module_buf.WriteString(
+ fmt.Sprintf("%d\t%s\n", module.ID, module.Name),
+ )
+ }
+
+ return module_buf.String(), nil
+}