import { Injectable, Inject } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { LotInfo } from './model/lotInfo.interface'; import { SaleInfo } from './model/saleInfo.interface'; import { Sale } from './model/sale.interface'; import { Lot } from './model/lot.interface'; @Injectable({ providedIn: 'root' }) export class apiService { ApiURL = "http://localhost:3000/api"; constructor(private http: HttpClient){} // Lot getLotInfo(url: string): Observable { let encodeUrl = encodeURIComponent(url); return this.http.get(this.ApiURL+'/lot/getInfos/'+encodeUrl); } getPictures(url: string): Observable { let encodeUrl = encodeURIComponent(url); return this.http.get(this.ApiURL+'/lot/getPictures/'+encodeUrl); } getLotsBySale(_id: String): Observable { return this.http.get(this.ApiURL+'/lot/getLotsBySale/'+_id); } // Sale getSaleInfos(url: string): Observable { let encodeUrl = encodeURIComponent(url); return this.http.get(this.ApiURL+'/sale/getSaleInfos/'+encodeUrl); } prepareSale(Sale: Sale): Observable { let follow = this.http.get(this.ApiURL+'/sale/prepareSale/'+Sale._id); return follow } followSale(Sale: Sale): Observable { let follow = this.http.get(this.ApiURL+'/sale/followSale/'+Sale._id); return follow } resetSaleToReady(_id: String): void { this.getSale(_id).subscribe((sale: Sale) => { sale.status = "ready"; this.updateSale(sale).subscribe(); }); } // Sale CRUD getSale(_id: String): Observable { return this.http.get(this.ApiURL+'/sale/sale/'+_id); } saveSale(Sale: Sale): Observable { return this.http.post(this.ApiURL+'/sale/sale', Sale); } updateSale(Sale: Sale): Observable { return this.http.put(this.ApiURL+'/sale/sale/'+Sale._id, Sale); } deleteSale(_id: String): Observable { return this.http.delete(this.ApiURL+'/sale/sale/'+_id); } // Function DB Sale getAllSale(): Observable { return this.http.get(this.ApiURL+'/sale/getAll'); } postProcessing(_id: String): Observable { return this.http.get(this.ApiURL+'/sale/postProcessing/'+_id); } //Favorites saveFavorite(lotInfo: LotInfo, saleInfo: SaleInfo, picture: String, dateTime: string, buyProject: boolean, maxPrice: number, Note: string): Observable { return this.http.post(this.ApiURL+'/favorite/save', {lotInfo, saleInfo, picture, dateTime, buyProject, maxPrice, Note}); } getAllFavorite(): Observable { return this.http.get(this.ApiURL+'/favorite/getAll'); } }