angular-apollo

An API client for the 7digital Apollo platform built for Angular 2 projects.

Usage no npm install needed!

<script type="module">
  import angularApollo from 'https://cdn.skypack.dev/angular-apollo';
</script>

README

Angular apollo

npm version CircleCI

An API client for the 7digital Apollo platform built for Angular 2 projects.

Installation

npm install angular-apollo

Usage

For a web project:

import { bootstrap }    from '@angular/platform-browser-dynamic';
import { HTTP_PROVIDERS } from '@angular/http';
import { ApiService, ListService, Config } from 'angular-apollo';

export class AppComponent {
    constructor(private playlistService:ListService){
        return this.playlistService.findById(10)
            .subscribe((playlist) => {
                this.apolloId = playlist.id;
            }) ;
    };
}

bootstrap(AppComponent, [
    HTTP_PROVIDERS,
    provideApollo({
        baseUrl: 'http://www.example.com'
    })
]);

For an ionic2 project you will need to override the token store:

import { ionicBootstrap } from 'ionic-angular';
import { HTTP_PROVIDERS } from '@angular/http';
import { ApiService, ListService, Config } from 'angular-apollo';

export class AppComponent {
    constructor(private playlistService:ListService){
        return this.playlistService.findById(10)
            .subscribe((playlist) => {
                this.apolloId = playlist.id;
            }) ;
    };
}

ionicBootstrap(AppComponent, [
    provideApollo({
        baseUrl: 'http://www.example.com',
        useTokenStore: () => (
          {provide: TokenStore, useClass: YourCustomTokenStore}
        )
    })
]);

Handling authentication errors

You may want your app to react to failed authentication attempts, in this case, you can register a handler for the token store errors

export class AppComponent {
    constructor(tokenStore:TokenStore){
        tokenStore.events.subscribe(() => {}, () => {
            redirectToLoginPage();
        });
    }

}

Running the tests

Running the E2E tests requires the following environment variables:

TEST_USER_NAME
TEST_PASSWORD
TEST_DEVICE_ID
TEST_DEVICE_NAME
TEST_API_URL

Currently all tests are run with the npm run test command.