diff --git a/main.go b/main.go index f6d3577..27c4b34 100644 --- a/main.go +++ b/main.go @@ -18,6 +18,7 @@ type routeConfig struct { Path string ResponseHTTPStatus int `yaml:"response_http_status"` ResponseBody string `yaml:"response_body"` + ResponseFile string `yaml:"response_file"` ResponseHeaders map[string]string `yaml:"response_header"` } @@ -35,9 +36,23 @@ func (ro routeConfig) httpHandler(w http.ResponseWriter, r *http.Request) { for v := range ro.ResponseHeaders { w.Header().Add(v, ro.ResponseHeaders[v]) } - _, err := w.Write([]byte(ro.ResponseBody)) - if err != nil { - log.Error().Err(err).Msg("cant write body to response writer") + if ro.ResponseBody != "" { + _, err := w.Write([]byte(ro.ResponseBody)) + if err != nil { + log.Error().Err(err).Msg("cant write body to response writer") + } + } + + if ro.ResponseFile != "" { + content, err := os.ReadFile(os.ResponseFile) + if err != nil { + log.Error().Err(err).Msg("cant read response file") + } + + _, err = w.Write(content) + if err != nil { + log.Error().Err(err).Msg("cant write body to response writer") + } } rde := requestData{