X-Git-Url: https://jasonwoof.com/gitweb/?p=af-coffee.git;a=blobdiff_plain;f=api.coffee;h=60b9ad8bcd4a3faf75bfbd5cae9a6dbf7c9b151b;hp=cda3905abb0d3892dad6482f8b39263ce4b56623;hb=HEAD;hpb=d20d81a40aaf14801c8be6b94ff2e97dd54f15a1 diff --git a/api.coffee b/api.coffee index cda3905..60b9ad8 100644 --- a/api.coffee +++ b/api.coffee @@ -92,10 +92,7 @@ request = (method, path, content_type, data, token, callback) -> method: method headers: 'Content-Type': content_type opts.headers['Authorization'] = token if token? - # no Accept header: -> unsupported media type - opts.headers['Accept'] = '*/*;q=0.8' # -> bad request (in json) - #opts.headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' # -> bad request (in json) or blank 404 - #opts.headers['Accept'] = 'application/json' -> unsupported media type + opts.headers['Accept'] = '*/*;q=0.8' async.waterfall [ (callback) -> if content_type is 'multipart/form-data' @@ -138,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 @@ -167,19 +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? - # FIXME add "restart" call that only calls app_info once - exports.app_stop token, app_name, (err) -> - if err? - return callback "Couldn't stop the app (to restart it). App is probably still running old version (though perhaps accessing new files.). Server responded: #{err}" - exports.app_start token, app_name, (err) -> - if err? - return callback "CRITICAL ERROR: Couldn't start the app back up! Server responded: #{err}" - callback() - exports.app_update_files = (token, app_name, zip_file, callback) -> request( 'POST', @@ -199,19 +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) -> - exports.app_info token, app_name, (err, info) -> - return callback err if err? - info.state = state - exports.app_set_info token, app_name, info, 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 - - app_get = (path) -> return (token, app_name, callback) -> json_get "/apps/#{app_name}#{path}", token, callback