mirror of
https://github.com/balena-io/balena-cli.git
synced 2024-12-28 01:28:51 +00:00
30 lines
900 B
CoffeeScript
30 lines
900 B
CoffeeScript
_ = require('lodash')
|
|
Promise = require('bluebird')
|
|
PinejsClientCore = require('pinejs-client-js')(_, Promise)
|
|
settings = require('../settings')
|
|
server = require('../server/server')
|
|
promisifiedServerRequest = Promise.promisify(server.request, server)
|
|
|
|
class PinejsClientRequest extends PinejsClientCore
|
|
|
|
# Trigger a request to the resin.io API
|
|
#
|
|
# Makes use of [pinejs-client-js](https://bitbucket.org/rulemotion/pinejs-client-js)
|
|
#
|
|
# @private
|
|
#
|
|
# @param {Object} params request params (same as node-request params)
|
|
#
|
|
# @note You shouldn't make use of this method directly, but through models
|
|
#
|
|
_request: (params) ->
|
|
params.json = params.data
|
|
params.gzip ?= true
|
|
promisifiedServerRequest(params).spread (response, body) ->
|
|
if 200 <= response.statusCode < 300
|
|
return body
|
|
throw new Error(body)
|
|
|
|
module.exports = new PinejsClientRequest
|
|
apiPrefix: settings.get('apiPrefix')
|