summaryrefslogtreecommitdiff
path: root/post.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-08 04:35:28 -0500
committerJeff Carr <[email protected]>2025-09-08 04:35:28 -0500
commitf67d6184139374f168037523f46623e2c32547fc (patch)
tree2a843fd4b93f41c3242e3402110866c799e01fbf /post.go
parentaef7b966ffc2ed4245713ec4d705eab22ecc9644 (diff)
generic POST functionv0.0.5
Diffstat (limited to 'post.go')
-rw-r--r--post.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/post.go b/post.go
index 753af74..8ced07f 100644
--- a/post.go
+++ b/post.go
@@ -13,6 +13,52 @@ import (
"go.wit.com/log"
)
+// standard protobuf POST
+// returns *HttpRequst protobuf
+func DoPost(baseURL string, route string, data []byte) (*HttpRequest, 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(route) // Correctly produces ...:2520/patches
+
+ var err error
+ var req *http.Request
+
+ log.Info("httppb.HttpPost to", finalURL.String())
+ req, err = http.NewRequest(http.MethodPost, finalURL.String(), bytes.NewBuffer(data))
+ if req == nil {
+ return nil, err
+ }
+
+ username := os.Getenv("GIT_AUTHOR_NAME")
+ if username == "" {
+ usr, _ := user.Current()
+ username = usr.Username
+ }
+ req.Header.Set("author", username)
+ hostname, _ := os.Hostname()
+ req.Header.Set("hostname", hostname)
+
+ client := &http.Client{}
+ resp, err := client.Do(req)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ reqPB, err := ReqToPB(req)
+ reqPB.URL = finalURL.String()
+ reqPB.Body = body
+
+ return reqPB, nil
+}
+
func HttpPost(baseURL string, route string, data []byte) ([]byte, error) {
// Fix using url.JoinPath (Best Practice)
tmpURL, _ := url.Parse(baseURL) // "http://forge.grid.wit.com:2520")