github.com/bububa/oceanengine/marketing-api@v0.0.0-20210315120513-0b953137f7a6/core/internal/debug/debug.go (about) 1 package debug 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "io" 7 "io/ioutil" 8 "log" 9 ) 10 11 func PrintError(err error, debug bool) { 12 if !debug { 13 return 14 } 15 log.Println("[DEBUG] [ERROR]", err) 16 } 17 18 func PrintStringResponse(str string, debug bool) { 19 if !debug { 20 return 21 } 22 log.Println("[DEBUG] [RESPONSE]", str) 23 } 24 25 func PrintGetRequest(url string, debug bool) { 26 if !debug { 27 return 28 } 29 log.Println("[DEBUG] [API] GET", url) 30 } 31 32 func PrintPostJSONRequest(url string, body []byte, debug bool) { 33 if !debug { 34 return 35 } 36 const format = "[DEBUG] [API] JSON POST %s\n" + 37 "http request body:\n%s\n" 38 39 buf := bytes.NewBuffer(make([]byte, 0, len(body)+1024)) 40 if err := json.Indent(buf, body, "", " "); err == nil { 41 body = buf.Bytes() 42 } 43 log.Printf(format, url, body) 44 } 45 46 func PrintPostMultipartRequest(url string, body []byte, debug bool) { 47 if !debug { 48 return 49 } 50 log.Println("[DEBUG] [API] multipart/form-data POST", url) 51 } 52 53 func DecodeJSONHttpResponse(r io.Reader, v interface{}, debug bool) error { 54 if !debug { 55 return json.NewDecoder(r).Decode(v) 56 } 57 body, err := ioutil.ReadAll(r) 58 if err != nil { 59 return err 60 } 61 62 body2 := body 63 buf := bytes.NewBuffer(make([]byte, 0, len(body2)+1024)) 64 if err := json.Indent(buf, body2, "", " "); err == nil { 65 body2 = buf.Bytes() 66 } 67 log.Printf("[DEBUG] [API] http response body:\n%s\n", body2) 68 69 return json.Unmarshal(body, v) 70 }