import { Injectable } from '@angular/core'; import { HttpRestService } from '@core/services/http-rest.service'; import { ApplicantForDash, ApplicantSummaryApi, ApplicantTop10, ApplicantTopLevelStats } from '@core/typings/applicant.typing'; import { OrgForApplicant } from '@core/typings/organization.typing'; import { AwardForApplicant } from '@features/awards/typings/award.typing'; import { PaginatedResponse, PaginationOptions, SummaryNumbers } from '@yourcause/common'; @Injectable({ providedIn: 'root' }) export class ApplicantManagerResources { constructor ( private httpRestService: HttpRestService ) { } getApplicantSummary (id: number): Promise { const endpoint = `api/manager/applicationsdashboard/GetApplicantSummary/${id}`; return this.httpRestService.get(endpoint); } getApplicantCalculations (id: number): Promise { const endpoint = `api/manager/applicationsdashboard/GetApplicantSummaryCalculations/${id}`; return this.httpRestService.get(endpoint); } getOrgsForApplicant ( id: number, paginationOptions: PaginationOptions ): Promise { const endpoint = `api/manager/applicationsdashboard/GetOrgsForApplicant/${id}`; return this.httpRestService.post(endpoint, { paginationOptions }); } getAwardsForApplicant ( id: number, paginationOptions: PaginationOptions ): Promise { const endpoint = `api/manager/applicationsdashboard/GetAwardsAndPaymentsForApplicant/${id}`; return this.httpRestService.post(endpoint, { paginationOptions }); } async getApplicantStats ( programCycleIds: number[] ): Promise { const endpoint = 'api/manager/insights/applicant/stats'; return this.httpRestService.post(endpoint, { programCycleIds }); } async getApplicants ( programCycleIds: number[] ): Promise { const endpoint = 'api/manager/insights/applicant/topten'; return this.httpRestService.post(endpoint, { programCycleIds }); } getApplicantsForInsights ( paginationOptions: PaginationOptions, programCycleIds: number[], isCsv: boolean ): Promise> { const endpoint = 'api/manager/insights/applicants'; return this.httpRestService.post(endpoint, { paginationOptions, programCycleIds }, isCsv ? { Accept: 'text/csv' } : undefined ); } }