| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package module
- import (
- "encoding/json"
- "log"
- "net/http"
- )
- // helpers for repositorys
- // JSONEncode encodes an interface to json encoded byte array, formatted if debug is enabled
- func JSONEncode(v interface{}) ([]byte, error) {
- var (
- err error
- rawJSON []byte
- )
- if Conf.Debug {
- rawJSON, err = json.MarshalIndent(v, "", " ") // debug output
- if err != nil {
- log.Println("MARSHAL FAILED")
- log.Println(err)
- return []byte(""), err
- }
- } else {
- rawJSON, err = json.Marshal(v) // prod
- if err != nil {
- log.Println("MARSHAL FAILED")
- log.Println(err)
- return []byte(""), err
- }
- }
- return rawJSON, nil
- }
- // JSONDecode decodes given JSON into passed interface object
- func JSONDecode(rawJSON []byte, v interface{}) error {
- return json.Unmarshal(rawJSON, v)
- }
- // JSONReq decodes POST data in request body in passed interface
- func JSONReq(r *http.Request, v interface{}) {
- json.NewDecoder(r.Body).Decode(v)
- }
- // JSONResp encodes passed interface and responses the request with interface JSON encoded
- func JSONResp(w http.ResponseWriter, v interface{}) {
- enc := json.NewEncoder(w)
- if Conf.Debug {
- enc.SetIndent("", " ")
- }
- enc.Encode(v)
- }
|