hummingbird-me/kitsu-web

View on GitHub
app/services/apollo.js

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
import { computed, get } from '@ember/object';
import { inject as service } from '@ember/service';
import ApolloService from 'ember-apollo-client/services/apollo';
import { setContext } from 'apollo-link-context';

export default ApolloService.extend({
  session: service(),

  link: computed('session.token', function() {
    const httpLink = this._super(...arguments);

    const token = get(this, 'session.token');

    const authLink = setContext(() => {
      if (!token) return {};

      return { headers: { Authorization: `Bearer ${token}` } };
    });

    return authLink.concat(httpLink);
  })
});