From eedabc494f8e97c31f94c70453273f16dbecbc6f Mon Sep 17 00:00:00 2001 From: David Howden Date: Wed, 7 Feb 2018 16:45:20 +1100 Subject: [PATCH] docd: return error messages in the response --- client/client.go | 1 + docconv.go | 1 + docd/main.go | 19 +++++-------------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/client/client.go b/client/client.go index bba725e..5fe565e 100644 --- a/client/client.go +++ b/client/client.go @@ -78,6 +78,7 @@ type Response struct { Body string `json:"body"` Meta map[string]string `json:"meta"` MSecs uint32 `json:"msecs"` + Error string `json:"error"` } // Convert a file from a local path using the http client diff --git a/docconv.go b/docconv.go index e2a0646..0ab9834 100755 --- a/docconv.go +++ b/docconv.go @@ -16,6 +16,7 @@ type Response struct { Body string `json:"body"` Meta map[string]string `json:"meta"` MSecs uint32 `json:"msecs"` + Error string `json:"error"` } // MimeTypeByExtension returns a mimetype for the given extension, or diff --git a/docd/main.go b/docd/main.go index a5b9ac2..6dd98ce 100644 --- a/docd/main.go +++ b/docd/main.go @@ -11,13 +11,6 @@ import ( "code.sajari.com/docconv" ) -// Response payload sent back to the requestor -type Response struct { - Body string `json:"body"` - Meta map[string]string `json:"meta"` - MSecs uint32 `json:"msecs"` -} - var ( inputPath = flag.String("input", "", "The file path to convert and exit; no server") listenAddr = flag.String("addr", ":8888", "The address to listen on (e.g. 127.0.0.1:8888)") @@ -135,17 +128,15 @@ func serve() { data, err := docconv.Convert(file, mimeType, readability) if err != nil { log.Printf("error converting data: %v", err) - return + data = &docconv.Response{ + Error: err.Error(), + } } - b, err := json.Marshal(data) - if err != nil { + + if err := json.NewEncoder(w).Encode(data); err != nil { log.Printf("error marshaling JSON data: %v", err) return } - if *logLevel >= 2 { - log.Println(string(b)) - } - fmt.Fprintf(w, "%s", b) }) // Start webserver