diff options
| author | Jeff Carr <[email protected]> | 2025-09-06 15:22:31 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-06 15:22:31 -0500 |
| commit | bf031595e359548f0a0d7197140195f1486c168e (patch) | |
| tree | 13805532605edb8e978389735c5b28f982186324 /patchset.http.go | |
| parent | c0b9518c0db72aa40e4e37e3d90341b32b364bd5 (diff) | |
patchset http routines
Diffstat (limited to 'patchset.http.go')
| -rw-r--r-- | patchset.http.go | 114 |
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 +} |
