JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
add .editorconfig
[af-coffee.git] / api.coffee
index 3108f4f..60b9ad8 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
@@ -164,12 +167,6 @@ exports.login = login = (username, password, callback) ->
                else
                        callback "login: couldn't find the token in the server response: #{JSON.stringify response}"
 
-# this is the friendly one that updates the files then restarts the app
-exports.app_publish = (token, app_name, zip_file, callback) ->
-       exports.app_update_files token, app_name, zip_file, (err) ->
-               return callback err if err?
-               exports.app_restart token, app_name, callback
-
 exports.app_update_files = (token, app_name, zip_file, callback) ->
        request(
                'POST',
@@ -189,29 +186,6 @@ exports.app_update_files = (token, app_name, zip_file, callback) ->
 exports.app_set_info = (token, app_name, info, callback) ->
        json_put "/apps/#{app_name}", info, token, callback
 
-app_set_state = (token, app_name, state, callback) ->
-       async.waterfall [
-               (callback) ->
-                       exports.app_info token, app_name, callback
-               (info, callback) ->
-                       info.state = state
-                       exports.app_set_info token, app_name, info, callback
-               ], callback
-
-exports.app_start = (token, app_name, callback) ->
-       app_set_state token, app_name, 'STARTED', callback
-
-exports.app_stop = (token, app_name, callback) ->
-       app_set_state token, app_name, 'STOPPED', callback
-
-exports.app_restart = (token, app_name, callback) ->
-       # Server requires you to fetch the app state before each call to change
-       # it, so there's no quicker way than just calling app_stop then app_start
-       async.waterfall [
-               (callback) -> exports.app_stop  token, app_name, callback
-               (callback) -> exports.app_start token, app_name, callback
-               ], callback
-
 app_get = (path) ->
        return (token, app_name, callback) ->
                json_get "/apps/#{app_name}#{path}", token, callback