Skip to content

Instantly share code, notes, and snippets.

@KyleAMathews
Created October 21, 2015 20:32
Show Gist options
  • Save KyleAMathews/a8c59714f99410b56dd8 to your computer and use it in GitHub Desktop.
Save KyleAMathews/a8c59714f99410b56dd8 to your computer and use it in GitHub Desktop.
request = require 'superagent-bluebird-promise'
Promise = require 'bluebird'
history = require '../history'
module.exports = class RelayNetworkLayer
constructor: (options = {}) ->
@token = options.token
@host = options.host
sendMutation: (requests) ->
sendQueries: (queryRequests) ->
console.log queryRequests
return Promise.all(
queryRequests.map (queryRequest) =>
request
.post(@host, {
query: queryRequest.getQueryString()
variables: queryRequest.getVariables()
})
.set('authorization', "Bearer #{@token}")
.set('Content-Type', 'application/json')
.then((res) ->
queryRequest.resolve response: res.body.data
)
.catch((err) ->
console.log err
if err.res.status is 401
history.replaceState(null, '/login')
queryRequest.reject err
)
)
supports: (options...) ->
# Doesn't support only option defer
return false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment