diff options
Diffstat (limited to 'go/internal/gitlabnet/socketclient.go')
-rw-r--r-- | go/internal/gitlabnet/socketclient.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/go/internal/gitlabnet/socketclient.go b/go/internal/gitlabnet/socketclient.go index 3bd7c70..fd97535 100644 --- a/go/internal/gitlabnet/socketclient.go +++ b/go/internal/gitlabnet/socketclient.go @@ -1,7 +1,9 @@ package gitlabnet import ( + "bytes" "context" + "encoding/json" "net" "net/http" "strings" @@ -44,3 +46,21 @@ func (c *GitlabSocketClient) Get(path string) (*http.Response, error) { return doRequest(c.httpClient, c.config, request) } + +func (c *GitlabSocketClient) Post(path string, data interface{}) (*http.Response, error) { + path = normalizePath(path) + + jsonData, err := json.Marshal(data) + if err != nil { + return nil, err + } + + request, err := http.NewRequest("POST", socketBaseUrl+path, bytes.NewReader(jsonData)) + request.Header.Add("Content-Type", "application/json") + + if err != nil { + return nil, err + } + + return doRequest(c.httpClient, c.config, request) +} |