summaryrefslogtreecommitdiff
path: root/patchset.http.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-06 15:22:31 -0500
committerJeff Carr <[email protected]>2025-09-06 15:22:31 -0500
commitbf031595e359548f0a0d7197140195f1486c168e (patch)
tree13805532605edb8e978389735c5b28f982186324 /patchset.http.go
parentc0b9518c0db72aa40e4e37e3d90341b32b364bd5 (diff)
patchset http routines
Diffstat (limited to 'patchset.http.go')
-rw-r--r--patchset.http.go114
1 files changed, 114 insertions, 0 deletions
diff --git a/patchset.http.go b/patchset.http.go
new file mode 100644
index 0000000..34a9e10
--- /dev/null
+++ b/patchset.http.go
@@ -0,0 +1,114 @@
+// Copyright 1994-2025 WIT.COM Inc Licensed GPL 3.0
+
+package forgepb
+
+import (
+ "bytes"
+ "net/http"
+ "net/url"
+ "os"
+ "os/user"
+
+ "go.wit.com/log"
+)
+
+func (p *Patches) HttpPostVerbose(baseURL string, route string) (*Patches, error) {
+ p.PrintTable()
+ return p.HttpPost(baseURL, route)
+}
+
+func (p *Patches) HttpPost(baseURL string, route string) (*Patches, error) {
+ // if you ever have "http://www.wit.com//" GO will regect the server recieving it.
+ // Even though the linux kernel gets the network payload
+ // also it never gives you an error about that, it just goes away invisably inside GO
+ tmpURL, _ := url.Parse(baseURL) // "http://forge.grid.wit.com:2520")
+ finalURL := tmpURL.JoinPath("/patches/", route) // Correctly produces ...:2520/patches
+
+ data, _ := p.Marshal()
+
+ var err error
+ var req *http.Request
+
+ log.Info("patches PB HttpPost", finalURL.String())
+ req, err = http.NewRequest(http.MethodPost, finalURL.String(), bytes.NewBuffer(data))
+ if req == nil {
+ return nil, err
+ }
+
+ usr, _ := user.Current()
+ req.Header.Set("author", usr.Username)
+ hostname, _ := os.Hostname()
+ req.Header.Set("hostname", hostname)
+
+ newdata, err := rawHttpPost(req)
+
+ newpb := NewPatches()
+ err = newpb.Unmarshal(newdata)
+
+ log.Infof("patchset PB HttpPost %s sent len(%d) got len(%d)\n", finalURL.String(), p.Len(), newpb.Len())
+ return newpb, err
+}
+
+func (p *Patchset) HttpPost(baseURL string, route string) (*Patchset, error) {
+ // if you ever have "http://www.wit.com//" GO will regect the server recieving it.
+ // Even though the linux kernel gets the network payload
+ // also it never gives you an error about that, it just goes away invisably inside GO
+ tmpURL, _ := url.Parse(baseURL) // "http://forge.grid.wit.com:2520")
+ finalURL := tmpURL.JoinPath("/patchset/", route) // Correctly produces ...:2520/patches
+
+ data, _ := p.Marshal()
+
+ var err error
+ var req *http.Request
+
+ log.Info("patchset PB HttpPost", finalURL.String())
+ req, err = http.NewRequest(http.MethodPost, finalURL.String(), bytes.NewBuffer(data))
+ if req == nil {
+ return nil, err
+ }
+
+ usr, _ := user.Current()
+ req.Header.Set("author", usr.Username)
+ hostname, _ := os.Hostname()
+ req.Header.Set("hostname", hostname)
+
+ newdata, err := rawHttpPost(req)
+
+ newpb := new(Patchset)
+ err = newpb.Unmarshal(newdata)
+
+ log.Infof("patchset PB HttpPost %s sent (%d)bytes got (%d)bytes\n", finalURL.String(), len(data), len(newdata))
+ return newpb, err
+}
+
+func (p *Patchsets) HttpPost(baseURL string, route string) (*Patchsets, error) {
+ // if you ever have "http://www.wit.com//" GO will regect the server recieving it.
+ // Even though the linux kernel gets the network payload
+ // also it never gives you an error about that, it just goes away invisably inside GO
+ tmpURL, _ := url.Parse(baseURL) // "http://forge.grid.wit.com:2520")
+ finalURL := tmpURL.JoinPath("/patchsets/", route) // Correctly produces ...:2520/patches
+
+ data, _ := p.Marshal()
+
+ var err error
+ var req *http.Request
+
+ log.Info("patchsets PB HttpPost", finalURL.String())
+ req, err = http.NewRequest(http.MethodPost, finalURL.String(), bytes.NewBuffer(data))
+ if req == nil {
+ return nil, err
+ }
+
+ usr, _ := user.Current()
+ req.Header.Set("author", usr.Username)
+ hostname, _ := os.Hostname()
+ req.Header.Set("hostname", hostname)
+
+ newdata, err := rawHttpPost(req)
+
+ newpb := NewPatchsets()
+ err = newpb.Unmarshal(newdata)
+
+ log.Infof("patchset PB HttpPost %s sent len(%d) got len(%d)\n", finalURL.String(), p.Len(), newpb.Len())
+ return newpb, err
+}