X-Git-Url: https://jasonwoof.com/gitweb/?p=af-coffee.git;a=blobdiff_plain;f=api.coffee;h=60b9ad8bcd4a3faf75bfbd5cae9a6dbf7c9b151b;hp=3108f4f61919067093e1b81fd7f6f848d63fc259;hb=HEAD;hpb=6651ab6419d8b498cc143cb7e82d8d99807ae83b diff --git a/api.coffee b/api.coffee index 3108f4f..60b9ad8 100644 --- a/api.coffee +++ b/api.coffee @@ -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