import { ApplicationConfig } from '../entities/ApplicationConfig'; import { AreaEligibilityResponse, AvailableAppointmentsRequestParams, AvailableAppointmentsResponse, MeterEligibilityRequestParams, MeterEligibilityResponse } from '../entities/Eligibility'; export class SmartMeterBookingClient { private apiUrl: string; constructor(APP_CONFIG: ApplicationConfig, private $http: HttpService) { this.apiUrl = APP_CONFIG.API_URL; } getAvailableAppointments(params: AvailableAppointmentsRequestParams): HttpPromise { const { fuel, ...paramsNoFuel } = params; const fuelType = fuel === 'Dual' ? 'ElectricityGas' : 'Electricity'; return this.$http.get(this.apiUrl + '/smart-meter-booking/available-appointments', { params: { ...paramsNoFuel, jobType: "PaygPlus", fuelType } }); } getAreaEligibility(postcode: string): HttpPromise { return this.$http.get(this.apiUrl + '/smart-meter-booking/eligibility/area', { params: { postcode } }); } getMeterEligibility(params: MeterEligibilityRequestParams): HttpPromise { return this.$http.get(this.apiUrl + '/smart-meter-booking/eligibility/meter/details', { params }); } }