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 { LeadCommentService } from './lead-comment.service'; import { LeadCommentSerializer } from './lead-comment.serializer'; import { LeadCommentConverter } from './lead-comment.converter'; import { AuthHttp } from 'angular2-jwt'; import { LeadCommentDeserializer } from './lead-comment.deserializer'; import { UrlParamBuilderService } from '../service/url-param-builder.service'; import { LeadCommentCollectionConverter } from './lead-comment.collection.converter'; import { ErrorHandlerService } from '../error/error-handler.service'; import { FallbackErrorHandler } from '../error/fallback-error-handler'; import { ApiErrorHandler } from '../error/api-error-handler'; import { MemberDeserializer } from '../member/member.deserializer'; export function LeadCommentFactory(authHttp: AuthHttp, baseUrl: string, defaultSort: string[], defaultLimit: number): LeadCommentService { const leadCommentConverter: LeadCommentConverter = new LeadCommentConverter( new LeadCommentDeserializer(), new MemberDeserializer()); const leadCommentCollectionConverter: LeadCommentCollectionConverter = new LeadCommentCollectionConverter(leadCommentConverter); const serializer: LeadCommentSerializer = new LeadCommentSerializer(); const urlParamBuilder: UrlParamBuilderService = new UrlParamBuilderService( new UrlParamFilterService(), new UrlParamSortService(defaultSort), new UrlParamPageService(defaultLimit) ); const errorHandler: ErrorHandlerService = new ErrorHandlerService(new ApiErrorHandler(), new FallbackErrorHandler()); return new LeadCommentService(authHttp, leadCommentConverter, leadCommentCollectionConverter, serializer, baseUrl, urlParamBuilder, errorHandler); }