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 { InviteService } from './invite.service'; import { InviteSerializer } from './invite.serializer'; import { InviteConverter } from './invite.converter'; import { AuthHttp } from 'angular2-jwt'; import { InviteDeserializer } from './invite.deserializer'; import { UrlParamBuilderService } from '../service/url-param-builder.service'; import { InviteCollectionConverter } from './invite.collection.converter'; import { ErrorHandlerService } from '../error/error-handler.service'; import { FallbackErrorHandler } from '../error/fallback-error-handler'; import { ApiErrorHandler } from '../error/api-error-handler'; export function InviteFactory(authHttp: AuthHttp, baseUrl: string, defaultSort: string[], defaultLimit: number): InviteService { const inviteConverter: InviteConverter = new InviteConverter(new InviteDeserializer()); const inviteCollectionConverter: InviteCollectionConverter = new InviteCollectionConverter(inviteConverter); const serializer: InviteSerializer = new InviteSerializer(); const urlParamBuilder: UrlParamBuilderService = new UrlParamBuilderService( new UrlParamFilterService(), new UrlParamSortService(defaultSort), new UrlParamPageService(defaultLimit) ); const errorHandler: ErrorHandlerService = new ErrorHandlerService(new ApiErrorHandler(), new FallbackErrorHandler()); return new InviteService(authHttp, inviteConverter, inviteCollectionConverter, serializer, baseUrl, urlParamBuilder, errorHandler); }