import { AuthHttp } from 'angular2-jwt'; import { OrganizationService } from './organization.service'; import { OrganizationCollectionConverter } from './organization.collection.converter'; import { OrganizationConverter } from './organization.converter'; import { OrganizationSerializer } from './organization.serializer'; import { OrganizationDeserializer } from './organization.deserializer'; import { UrlParamBuilderService } from '../service/url-param-builder.service'; import { UrlParamFilterService } from '../service/url-param-filter.service'; import { UrlParamSortService } from '../service/url-param-sort.service'; import { UrlParamPageService } from '../service/url-param-page.service'; import { ErrorHandlerService } from '../error/error-handler.service'; import { FallbackErrorHandler } from '../error/fallback-error-handler'; import { ApiErrorHandler } from '../error/api-error-handler'; export function OrganizationFactory(authHttp: AuthHttp, baseUrl: string, defaultSort: string[], defaultLimit: number): OrganizationService { const converter: OrganizationConverter = new OrganizationConverter(new OrganizationDeserializer()); const collectionConverter: OrganizationCollectionConverter = new OrganizationCollectionConverter(converter); const urlParamBuilder: UrlParamBuilderService = new UrlParamBuilderService( new UrlParamFilterService(), new UrlParamSortService(defaultSort), new UrlParamPageService(defaultLimit) ); const errorHandler: ErrorHandlerService = new ErrorHandlerService(new ApiErrorHandler(), new FallbackErrorHandler()); return new OrganizationService(authHttp, converter, collectionConverter, new OrganizationSerializer(), baseUrl, urlParamBuilder, errorHandler); }