import {Injectable} from '@angular/core'; import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http'; import process from 'process'; import {Product} from '../models/product'; import {Price} from '../models/price'; import {Observable, of} from 'rxjs'; import {Vendor} from '../models/vendor'; @Injectable({ providedIn: 'root' }) export class ApiService { apiUrl = 'https://backend.betterzon.xyz'; constructor( private http: HttpClient ) { } getProduct(id): Observable { try { const prod = this.http.get((this.apiUrl + '/products/' + id)); return prod; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getProductsByQuery(query): Observable { try { const prods = this.http.get((this.apiUrl + '/products/search/' + query)); return prods; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getProducts(): Observable { try { const prods = this.http.get((this.apiUrl + '/products')); return prods; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getPrices(): Observable { try { const prices = this.http.get((this.apiUrl + '/prices')); return prices; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getLowestPrices(productId): Observable { try { let params = new HttpParams(); params = params.append('product', productId); params = params.append('type', 'lowest'); const prices = this.http.get((this.apiUrl + '/prices'), {params}); return prices; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getAmazonPrice(productId): Observable { try { let params = new HttpParams(); params = params.append('product', productId); params = params.append('vendor', '1'); params = params.append('type', 'newest'); const price = this.http.get((this.apiUrl + '/prices'), {params}); return price; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getCurrentPricePerVendor(productId): Observable { try { let params = new HttpParams(); params = params.append('product', productId); params = params.append('type', 'newest'); const prices = this.http.get((this.apiUrl + '/prices'), {params}); return prices; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } getVendors(): Observable { try { const vendors = this.http.get((this.apiUrl + '/vendors')); return vendors; } catch (exception) { process.stderr.write(`ERROR received from ${this.apiUrl}: ${exception}\n`); } } }