import { NgModule } from 'ng-metadata/core';
import * as restangular from 'restangular';

import { ConfigSetupAppComponent } from './components/config-setup-app/config-setup-app.component';
import { DownloadTarballModalComponent } from './components/download-tarball-modal/download-tarball-modal.component';
import { LoadConfigComponent } from './components/load-config/load-config.component';

const quayDependencies: string[] = [
    'restangular',
    'ngCookies',
    'angularFileUpload',
    'ngSanitize'
];

@NgModule(({
    imports: quayDependencies,
    declarations: [],
    providers: [
        provideConfig,
    ]
}))
class DependencyConfig{}


provideConfig.$inject = [
    '$provide',
    '$injector',
    '$compileProvider',
    'RestangularProvider',
];

function provideConfig($provide: ng.auto.IProvideService,
                       $injector: ng.auto.IInjectorService,
                       $compileProvider: ng.ICompileProvider,
                       RestangularProvider: any): void {

    // Configure the API provider.
    RestangularProvider.setBaseUrl('/api/v1/');
}


@NgModule({
    imports: [ DependencyConfig ],
    declarations: [
        ConfigSetupAppComponent,
        DownloadTarballModalComponent,
        LoadConfigComponent,
    ],
    providers: []
})
export class ConfigAppModule {}