summaryrefslogtreecommitdiff
path: root/http.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-15 12:15:10 -0600
committerJeff Carr <[email protected]>2025-02-15 12:21:36 -0600
commitb7b18626d87dd42d5e5fe4fac8ff66eeb9836ee9 (patch)
treebfc32effd3e69f97b3c7b2ca52131cd930bdc287 /http.go
parent7900b1416e94feeadf133232e33f2938b672702f (diff)
more on Machine.Init()
Diffstat (limited to 'http.go')
-rw-r--r--http.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/http.go b/http.go
new file mode 100644
index 0000000..df9805e
--- /dev/null
+++ b/http.go
@@ -0,0 +1,47 @@
+// Copyright 1994-2025 WIT.COM Inc Licensed GPL 3.0
+
+package forgepb
+
+import (
+ "bytes"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "os/user"
+
+ "go.wit.com/log"
+)
+
+func (f *Forge) HttpPost(url string, data []byte) ([]byte, error) {
+ var err error
+ var req *http.Request
+
+ 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)
+ if f.Machine == nil {
+ // run f.InitMachine() here?
+ log.Info("you must run f.InitMachine()")
+ return nil, fmt.Errorf("you must run f.InitMachine()")
+ }
+ req.Header.Set("hostname", f.Machine.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
+ }
+
+ return body, nil
+}