JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
json_request always pass response, even if empty
[af-coffee.git] / api.coffee
index 3108f4f..156e91c 100644 (file)
@@ -135,17 +135,20 @@ request = (method, path, content_type, data, token, callback) ->
                                req.end()
                ], callback
 
+# send json
+# try parsing result as json, and fall back to returning string
 json_request = (method, path, data, token, callback) ->
        if data?
                data = JSON.stringify data
        request method, path, 'application/json', data, token, (err, response) ->
                return callback err if err
-               return callback() if response is ' '
-               return callback() if response is ''
+               return callback null, '' if response is ' '
+               return callback null, '' if response is ''
                try
                        callback null, JSON.parse(response)
                catch error
-                       callback "Error: AF server returned invalid JSON for #{method} to #{path}: \"#{response}\""
+                       # some api calls return plain text
+                       callback null, response
 
 json_get = (path, token, callback) ->
        json_request 'GET', path, null, token, callback