import {Injectable} from '@angular/core'; import {HttpClient, HttpHeaders} from '@angular/common/http'; import {Need} from '../models/Need'; import {Observable} from 'rxjs'; import {AuthService} from './auth.service'; @Injectable({ providedIn: 'root' }) export class CupboardService { private url = "http://localhost:8080/cupboard" httpOptions = () => ({ headers: new HttpHeaders({ 'Content-Type': 'application/json', "jelly-api-key": this.authService.getApiKey() }) }); constructor( private http: HttpClient, private authService: AuthService ) {} createNeed(need: Need): Observable { return this.http.post(this.url, need, this.httpOptions()) } getNeeds(): Observable { return this.http.get(this.url, this.httpOptions()) } searchNeeds(name: String): Observable { return this.http.get(`${this.url}/?name=${name}`, this.httpOptions()) } getNeed(id: number): Observable { return this.http.get(`${this.url}/${id}`, this.httpOptions()) } updateNeed(id: number, data: Need): Observable { return this.http.put(`${this.url}/${id}`, data, this.httpOptions()) } deleteNeed(id: number): Observable { return this.http.delete(`${this.url}/${id}`, this.httpOptions()) } checkoutNeed(data: {needID: number, quantity: number}[]) { return this.http.put(`${this.url}/checkout`, data, this.httpOptions()) } }