import { Injectable } from '@angular/core'; import { Observable, map, of} from 'rxjs'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { RegisterUser } from '../shared/register-user'; import { LoginUser } from '../shared/login-user'; import { User } from '../shared/user'; import { Product } from '../shared/product'; @Injectable({ providedIn: 'root' }) export class APIService { apiUrl = 'http://localhost:5240/api/' httpOptions ={ headers: new HttpHeaders({ ContentType: 'application/json' }) } constructor(private httpClient: HttpClient) { } RegisterUser(registerUser: RegisterUser){ return this.httpClient.post(`${this.apiUrl}Authentication/Register`, registerUser, this.httpOptions) } getProducts() { return this.httpClient.get(`${this.apiUrl}Store/ProductListing`) .pipe(map(result => result)) } LoginUser(loginUser: LoginUser){ return this.httpClient.post<User>(`${this.apiUrl}Authentication/Login`, loginUser, this.httpOptions) } addProduct(file:FormData){ return this.httpClient.post(`${this.apiUrl}Store/AddProduct`, file) } getBrands(): Observable<any> { return this.httpClient.get(`${this.apiUrl}Store/Brands`) .pipe(map(result => result)) } getProductTypes(): Observable<any> { return this.httpClient.get(`${this.apiUrl}Store/ProductTypes`) .pipe(map(result => result)) } }