import { Quote, QuickQuoteRequestParams, EstimatedQuoteRequestParams, UsageBasedQuoteRequestParams, MoveInQuoteRequestParams, SaveQuoteRequest, SaveQuoteResponse } from '../entities/Quote'; import { Suppliers, SupplierTariff, SupplierTariffRequestParams } from '../entities/Suppliers'; import { ApplicationConfig } from '../entities/ApplicationConfig'; import { Region } from '../entities/Enums'; const QUOTE_HEADERS = { "X-OVO-API-Version": 2 }; export class QuoteClient { private apiUrl: string; constructor(APP_CONFIG: ApplicationConfig, private $http: HttpService) { this.apiUrl = APP_CONFIG.API_URL; } quickQuote(params: QuickQuoteRequestParams): HttpPromise { return this.$http .get(this.apiUrl + '/quote/quick-quote', { params: params, headers: QUOTE_HEADERS }); } estimatedQuote(params: EstimatedQuoteRequestParams): HttpPromise { return this.$http .get(this.apiUrl + '/quote/estimated-quote', { params: params, headers: QUOTE_HEADERS }); } usageBasedQuote(params: UsageBasedQuoteRequestParams): HttpPromise { return this.$http .get(this.apiUrl + '/quote/usage-based-quote', { params: params, headers: QUOTE_HEADERS }); } moveInQuote(params: MoveInQuoteRequestParams): HttpPromise { return this.$http .get(this.apiUrl + '/quote/movein-quote', { params: params, headers: QUOTE_HEADERS }); } suppliers(region: Region): HttpPromise { return this.$http .get(this.apiUrl + '/quote/suppliers', { params: { region: region }, headers: QUOTE_HEADERS }); } supplierTariffs(params: SupplierTariffRequestParams): HttpPromise { return this.$http .get(this.apiUrl + '/quote/supplier-tariffs', { params: params, headers: QUOTE_HEADERS }); } saveQuote(request: SaveQuoteRequest): HttpPromise { return this.$http .post(this.apiUrl + '/quote/save-quote', request, { headers: QUOTE_HEADERS }); } retrieveSavedQuote(id: string): HttpPromise { return this.$http .get(this.apiUrl + '/quote/retrieve-saved-quote', { params: { id: id }, headers: QUOTE_HEADERS }); } }