Skip to content

Commit

Permalink
added a ContentType field to the Request struct for custom types and …
Browse files Browse the repository at this point in the history
…some other minor changes
  • Loading branch information
arekkusu66 committed Sep 7, 2024
1 parent cef290f commit d5f7e94
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 108 deletions.
92 changes: 46 additions & 46 deletions fsys/fsys.go
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
return content, nil
}
133 changes: 71 additions & 62 deletions requests/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
return body, nil
}

0 comments on commit d5f7e94

Please # to comment.