argos/dmp-frontend/src/app/core/core-service.module.ts

87 lines
3.8 KiB
TypeScript

import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
import { CookieService } from 'ngx-cookie-service';
import { LanguageResolverService } from '../services/language-resolver/language-resolver.service';
import { LanguageService } from '../services/language/language.service';
import { AuthGuard } from './auth-guard.service';
import { AuthService } from './services/auth/auth.service';
import { CultureService } from './services/culture/culture-service';
import { DashboardService } from './services/dashboard/dashboard.service';
import { DatasetProfileService } from './services/dataset-profile/dataset-profile.service';
import { DatasetWizardService } from './services/dataset-wizard/dataset-wizard.service';
import { DatasetService } from './services/dataset/dataset.service';
import { DmpInvitationService } from './services/dmp/dmp-invitation.service';
import { DmpProfileService } from './services/dmp/dmp-profile.service';
import { DmpService } from './services/dmp/dmp.service';
import { ExternalDataRepositoryService } from './services/external-sources/data-repository/extternal-data-repository.service';
import { ExternalDatasetService } from './services/external-sources/dataset/external-dataset.service';
import { ExternalSourcesConfigurationService } from './services/external-sources/external-sources-configuration.service';
import { ExternalSourcesService } from './services/external-sources/external-sources.service';
import { ExternalRegistryService } from './services/external-sources/registry/external-registry.service';
import { ExternalResearcherService } from './services/external-sources/researcher/external-researcher.service';
import { ExternalServiceService } from './services/external-sources/service/external-service.service';
import { BaseHttpService } from './services/http/base-http.service';
import { LoggingService } from './services/logging/logging-service';
import { UiNotificationService } from './services/notification/ui-notification-service';
import { ProgressIndicationService } from './services/progress-indication/progress-indication-service';
import { ProjectFileUploadService } from './services/project/project-file-upload.service';
import { ProjectService } from './services/project/project.service';
import { SearchBarService } from './services/search-bar/search-bar.service';
import { TimezoneService } from './services/timezone/timezone-service';
import { UserService } from './services/user/user.service';
import { CollectionUtils } from './services/utilities/collection-utils.service';
import { TypeUtils } from './services/utilities/type-utils.service';
//
//
// This is shared module that provides all the services. Its imported only once on the AppModule.
//
//
@NgModule({
})
export class CoreServiceModule {
constructor(@Optional() @SkipSelf() parentModule: CoreServiceModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only');
}
}
static forRoot(): ModuleWithProviders {
return {
ngModule: CoreServiceModule,
providers: [
AuthService,
CookieService,
BaseHttpService,
AuthGuard,
LanguageService,
CultureService,
TimezoneService,
TypeUtils,
CollectionUtils,
UiNotificationService,
ProgressIndicationService,
LoggingService,
SearchBarService,
DashboardService,
LanguageResolverService,
ProjectService,
ProjectFileUploadService,
DmpService,
DmpProfileService,
ExternalSourcesService,
ExternalSourcesConfigurationService,
DatasetService,
DatasetWizardService,
ExternalDatasetService,
ExternalDataRepositoryService,
ExternalRegistryService,
ExternalResearcherService,
ExternalServiceService,
DatasetProfileService,
UserService,
DmpInvitationService
],
};
}
}