summaryrefslogtreecommitdiff
path: root/doGetPatchsets.go
diff options
context:
space:
mode:
Diffstat (limited to 'doGetPatchsets.go')
-rw-r--r--doGetPatchsets.go80
1 files changed, 80 insertions, 0 deletions
diff --git a/doGetPatchsets.go b/doGetPatchsets.go
new file mode 100644
index 0000000..18db441
--- /dev/null
+++ b/doGetPatchsets.go
@@ -0,0 +1,80 @@
+// Copyright 2024 WIT.COM Inc Licensed GPL 3.0
+
+package main
+
+import (
+ "bytes"
+ "io/ioutil"
+ "net/http"
+ "os"
+ "os/user"
+
+ "go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/log"
+)
+
+var forgeURL string = "https://go.wit.com/"
+
+func GetPatchesets() (*forgepb.Patchsets, error) {
+ url := forgeURL + "/GetPatchsets"
+ log.Info("GetPatchsets() url", url)
+ body, err := httpPost(url, nil)
+ if err != nil {
+ log.Info("httpPost() failed:", err)
+ return nil, err
+ }
+ log.Info("GetPatchets() len(body)", len(body))
+ var psets *forgepb.Patchsets
+ psets = new(forgepb.Patchsets)
+ err = psets.Unmarshal(body)
+ if err != nil {
+ log.Info("Unmarshal failed", err)
+ return nil, err
+ }
+ /*
+ filename := filepath.Join("/tmp", pbfile)
+ f, _ := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
+ f.Write(body)
+ f.Close()
+ */
+ return psets, nil
+}
+
+func httpPost(url string, data []byte) ([]byte, error) {
+ var err error
+ var req *http.Request
+
+ // data := []byte("some junk")
+ // url := "https://go.wit.com/register/"
+
+ req, err = http.NewRequest(http.MethodPost, url, bytes.NewBuffer(data))
+ log.Info("httpPost() with len", len(data), "url", url)
+
+ usr, _ := user.Current()
+ req.Header.Set("author", usr.Username)
+ hostname, _ := os.Hostname()
+ req.Header.Set("hostname", hostname)
+
+ client := &http.Client{}
+ resp, err := client.Do(req)
+ if err != nil {
+ log.Error(err)
+ return []byte("client.Do(req) error"), err
+ }
+ defer resp.Body.Close()
+ log.Info("httpPost() with len", len(data))
+
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ log.Error(err)
+ return body, err
+ }
+
+ // test := strings.TrimSpace(string(body))
+ // log.Info("go.wit.com returned body:", test)
+ // if test == "OK" {
+ // return body, nil
+ // }
+
+ return body, nil
+}