in progress

This commit is contained in:
2025-12-02 18:54:48 +03:00
parent 1af2045a1b
commit d7bd28b759
8 changed files with 224 additions and 0 deletions

62
request.go Normal file
View File

@@ -0,0 +1,62 @@
package sigmasms
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
)
func httpRequest(req *http.Request, resp any) error {
client := &http.Client{}
httpResp, err := client.Do(req)
if err != nil {
return fmt.Errorf("http request error: %w", err)
}
defer httpResp.Body.Close()
body, err := io.ReadAll(httpResp.Body)
if err != nil {
return fmt.Errorf("http response read error: %w", err)
}
if err = json.Unmarshal(body, resp); err != nil {
err = fmt.Errorf("http response unmarshal error: %w", err)
}
return err
}
func requestPost(url, apiKey string, req, resp any) error {
reqData, err := json.Marshal(req)
if err != nil {
return fmt.Errorf("request marshal error: %w", err)
}
httpReq, err := http.NewRequest("POST", url, bytes.NewReader(reqData))
if err != nil {
return fmt.Errorf("http request create error: %w", err)
}
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", apiKey)
httpReq.Header.Set("Accept", "application/json")
err = httpRequest(httpReq, resp)
return err
}
func requestGet(url, apiKey string, params url.Values, resp any) error {
httpReq, err := http.NewRequest("GET", url, nil)
if err != nil {
return fmt.Errorf("http request create error: %w", err)
}
httpReq.URL.RawQuery = params.Encode()
httpReq.Header.Set("Authorization", apiKey)
httpReq.Header.Set("Accept", "application/json")
err = httpRequest(httpReq, resp)
return err
}