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 { MemberService } from './member.service'; import { MemberSerializer } from './member.serializer'; import { MemberConverter } from './member.converter'; import { AuthHttp } from 'angular2-jwt'; import { MemberDeserializer } from './member.deserializer'; import { UrlParamBuilderService } from '../service/url-param-builder.service'; import { MemberCollectionConverter } from './member.collection.converter'; import { ErrorHandlerService } from '../error/error-handler.service'; import { FallbackErrorHandler } from '../error/fallback-error-handler'; import { ApiErrorHandler } from '../error/api-error-handler'; import { MemberPerformanceDeserializer } from './member-performance.deserializer'; import { MemberIsadminDeserializer } from './member-isadmin.deserializer'; export function MemberFactory(authHttp: AuthHttp, baseUrl: string, defaultSort: string[], defaultLimit: number): MemberService { const memberConverter: MemberConverter = new MemberConverter(new MemberDeserializer()); const memberCollectionConverter: MemberCollectionConverter = new MemberCollectionConverter(memberConverter); const serializer: MemberSerializer = new MemberSerializer(); const urlParamBuilder: UrlParamBuilderService = new UrlParamBuilderService( new UrlParamFilterService(), new UrlParamSortService(defaultSort), new UrlParamPageService(defaultLimit) ); const errorHandler: ErrorHandlerService = new ErrorHandlerService(new ApiErrorHandler(), new FallbackErrorHandler()); return new MemberService(authHttp, memberConverter, memberCollectionConverter, new MemberPerformanceDeserializer(), serializer, baseUrl, urlParamBuilder, errorHandler, new MemberIsadminDeserializer()); }