index.ts 938 Bytes
import { HttpModule, Http } from '@angular/http';
import { NgModule, ModuleWithProviders } from '@angular/core';
import { Rest } from './services/rest';
import { Repository } from './services/repository';
import { Device } from './services/device';

export { Rest } from './services/rest';
export { Repository } from './services/repository';
export { Device } from './services/device';

export function provideRest(http:Http) : Rest {
    return new Rest(http);
}

export function provideRepository(rest:Rest) : Repository {
    return new Repository(rest, new Device);
}

@NgModule({
    imports : [
        HttpModule
    ]
})
export class DigsigServicesModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: DigsigServicesModule,
      providers: [
        { provide: Rest, useFactory:provideRest, deps:[Http] } ,
        { provide: Repository, useFactory:provideRepository, deps:[Rest] }
      ]
    }
  }
}