From d5f7e9447281f02624d967e92dad12cfad140d91 Mon Sep 17 00:00:00 2001 From: arekkusu Date: Sun, 8 Sep 2024 01:22:28 +0300 Subject: [PATCH] added a ContentType field to the Request struct for custom types and some other minor changes --- fsys/fsys.go | 92 +++++++++++++++--------------- requests/requests.go | 133 +++++++++++++++++++++++-------------------- 2 files changed, 117 insertions(+), 108 deletions(-) diff --git a/fsys/fsys.go b/fsys/fsys.go index 6317f60..3c4b191 100644 --- a/fsys/fsys.go +++ b/fsys/fsys.go @@ -4,117 +4,117 @@ import ( "encoding/json" "io" "os" -); +) type FileSys struct { Unm any -}; +} //AppendWrite appends content to an exisiting file, or creates it if it doesn't exist func (fs *FileSys) AppendWrite(content []byte, fileName string) error { - file, err := os.OpenFile(fileName, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0744); + file, err := os.OpenFile(fileName, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0744) if err != nil { - return err; - }; + return err + } - defer file.Close(); + defer file.Close() if _, err = file.Write(content); err != nil { - return err; - }; + return err + } - return nil; -}; + return nil +} func (fs *FileSys) Write(content []byte, fileName string) error { - file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY, 0744); + file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY, 0744) if err != nil { - return err; - }; + return err + } - defer file.Close(); + defer file.Close() if err := file.Truncate(0); err != nil { - return err; - }; + return err + } if _, err := file.Seek(0, 0); err != nil { - return err; - }; + return err + } if _, err = file.Write(content); err != nil { - return err; - }; + return err + } - return nil; -}; + return nil +} func (fs *FileSys) WriteString(content string, fileName string) error { - file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY, 0744); + file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY, 0744) if err != nil { - return err; - }; + return err + } - defer file.Close(); + defer file.Close() if err := file.Truncate(0); err != nil { - return err; - }; + return err + } if _, err := file.Seek(0, 0); err != nil { - return err; - }; + return err + } if _, err = file.Write([]byte(content)); err != nil { - return err; - }; + return err + } - return nil; -}; + return nil +} func (fs *FileSys) Read(fileName string) ([]byte, error) { - file, err := os.OpenFile(fileName, os.O_RDONLY, 0744); + file, err := os.OpenFile(fileName, os.O_RDONLY, 0744) if err != nil { - return nil, err; - }; + return nil, err + } - defer file.Close(); + defer file.Close() - content, err := io.ReadAll(file); + content, err := io.ReadAll(file) if err != nil { - return nil, err; - }; + return nil, err + } if fs.Unm != nil { if err = json.Unmarshal(content, &fs.Unm); err != nil { - return nil, err; - }; - }; + return nil, err + } + } - return content, nil; -}; \ No newline at end of file + return content, nil +} \ No newline at end of file diff --git a/requests/requests.go b/requests/requests.go index 7547436..47ba114 100644 --- a/requests/requests.go +++ b/requests/requests.go @@ -8,136 +8,145 @@ import ( "regexp" "github.com/arekkusu66/goutils/fsys" -); +) type Request struct { - Unm any - Output string -}; + Unm any + Output string + ContentType string +} -//POST request +//Makes a POST request, if ContentType isn't specified, it defaults to application/json func (rq *Request) POST(url string, body any) ([]byte, error) { - json_data, err := json.Marshal(body); + jsonData, err := json.Marshal(body) if err != nil { - return nil, err; - }; + return nil, err + } - response, err := http.Post(url , "application/json" , bytes.NewBuffer(json_data)); + var contentType string + + if rq.ContentType == "" { + contentType = "application/json" + } else { + contentType = rq.ContentType + } + + response, err := http.Post(url , contentType , bytes.NewBuffer(jsonData)) if err != nil { - return nil, err; - }; + return nil, err + } - defer response.Body.Close(); + defer response.Body.Close() - response_data, err := io.ReadAll(response.Body); + responseData, err := io.ReadAll(response.Body) if err != nil { - return nil, err; - }; + return nil, err + } if rq.Output != "" { - var file = &fsys.FileSys{}; + var file = &fsys.FileSys{} if regexp.MustCompile(`\.json$`).MatchString(rq.Output) { - var mapUnm = make(map[string]interface{}); + var mapUnm = make(map[string]interface{}) - if err = json.Unmarshal(response_data, &mapUnm); err != nil { - return nil, err; - }; + if err = json.Unmarshal(responseData, &mapUnm); err != nil { + return nil, err + } - d, err := json.MarshalIndent(mapUnm, "", " "); + d, err := json.MarshalIndent(mapUnm, "", " ") if err != nil { - return nil, err; - }; + return nil, err + } if err = file.Write(d, rq.Output); err != nil { - return nil, err; - }; + return nil, err + } } else { - if err = file.Write(response_data, rq.Output); err != nil { - return nil, err; - }; - }; - }; + if err = file.Write(responseData, rq.Output); err != nil { + return nil, err + } + } + } if rq.Unm != nil { - if err = json.Unmarshal(response_data, &rq.Unm); err != nil { - return nil, err; - }; - }; + if err = json.Unmarshal(responseData, &rq.Unm); err != nil { + return nil, err + } + } - return response_data, nil; -}; + return responseData, nil +} //GET request func (rq *Request) GET(url string) ([]byte, error) { - response, err := http.Get(url); + response, err := http.Get(url) if err != nil { - return nil, err; - }; + return nil, err + } - defer response.Body.Close(); + defer response.Body.Close() - body, err := io.ReadAll(response.Body); + body, err := io.ReadAll(response.Body) if err != nil { - return nil, err; - }; + return nil, err + } if rq.Output != "" { - var file = &fsys.FileSys{}; + var file = &fsys.FileSys{} if regexp.MustCompile(`\.json$`).MatchString(rq.Output) { - var mapUnm = make(map[string]interface{}); + var mapUnm = make(map[string]interface{}) - err = json.Unmarshal(body, &mapUnm); + err = json.Unmarshal(body, &mapUnm) if err != nil { - return nil, err; - }; + return nil, err + } - d, err := json.MarshalIndent(mapUnm, "", " "); + d, err := json.MarshalIndent(mapUnm, "", " ") if err != nil { - return nil, err; - }; + return nil, err + } if err = file.Write(d, rq.Output); err != nil { - return nil, err; - }; + return nil, err + } } else { if err = file.Write(body, rq.Output); err != nil { - return nil, err; - }; - }; - }; + return nil, err + } + } + } if rq.Unm != nil { if err = json.Unmarshal(body, &rq.Unm); err != nil { - return nil, err; - }; - }; + return nil, err + } + } - return body, nil; -}; \ No newline at end of file + return body, nil +} \ No newline at end of file