Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {Injectable} from '@angular/core';
  2. import {Prize, PrizeSet, PrizeSetForm} from '../model/prize-entities';
  3. import {Observable} from 'rxjs';
  4. import {HttpClient, HttpParams} from '@angular/common/http';
  5.  
  6. @Injectable({
  7.   providedIn: 'root'
  8. })
  9. export class PrizeService {
  10.   private PRIZE_PREFIX = '/api/prizes/prize';
  11.   private SET_PREFIX = '/api/prizes/set';
  12.  
  13.   constructor(private http: HttpClient) {
  14.   }
  15.  
  16.   getAll(locked ?: boolean): Observable<Prize[]> {
  17.     if (locked !== undefined) {
  18.       const params = new HttpParams().set('locked', String(locked));
  19.       return this.http.get<Prize[]>(this.PRIZE_PREFIX, {params});
  20.     } else {
  21.       return this.http.get<Prize[]>(this.PRIZE_PREFIX);
  22.     }
  23.   }
  24.  
  25.   addPrize(prize: Prize): Observable<void> {
  26.     var formData = new FormData();
  27.     formData.append('image', prize.image);
  28.  
  29.     const backEndPrize = Object.assign({}, prize);
  30.     backEndPrize.image = null;
  31.     const blob = new Blob([JSON.stringify(backEndPrize)], {type: 'application/json'});
  32.     formData.append('form', blob);
  33.  
  34.     return this.http.post<void>(this.PRIZE_PREFIX, formData);
  35.   }
  36.  
  37.   updatePrize(prize: Prize, prizeId: number): Observable<void> {
  38.     var formData = new FormData();
  39.     formData.append('image', prize.image);
  40.  
  41.     const backEndPrize = Object.assign({}, prize);
  42.     backEndPrize.image = null;
  43.     const blob = new Blob([JSON.stringify(backEndPrize)], {type: 'application/json'});
  44.     formData.append('form', blob);
  45.  
  46.     const url = `${this.PRIZE_PREFIX}/${prizeId}`;
  47.     return this.http.put<void>(url, formData);
  48.   }
  49.  
  50.   deletePrize(prizeId: number): Observable<void> {
  51.     const url = `${this.PRIZE_PREFIX}/${prizeId}`;
  52.     return this.http.delete<void>(url);
  53.   }
  54.  
  55.   lockPrize(prizeId: number): Observable<void> {
  56.     const url = `${this.PRIZE_PREFIX}/${prizeId}/lock`;
  57.     return this.http.put<void>(url, null);
  58.   }
  59.  
  60.   unlockPrize(prizeId: number): Observable<void> {
  61.     const url = `${this.PRIZE_PREFIX}/${prizeId}/unlock`;
  62.     return this.http.put<void>(url, null);
  63.   }
  64.  
  65.   getPrize(prizeId: number): Observable<Prize> {
  66.     const url = `${this.PRIZE_PREFIX}/${prizeId}`;
  67.     return this.http.get<Prize>(url);
  68.   }
  69.  
  70.   getPrizeSet(prizeSetId: number): Observable<PrizeSet> {
  71.     const url = `${this.SET_PREFIX}/${prizeSetId}`;
  72.     return this.http.get<PrizeSet>(url);
  73.   }
  74.  
  75.   addPrizeSet(prizeSet: PrizeSetForm): Observable<void> {
  76.     const newSet: PrizeSetForm = Object.assign({}, prizeSet);
  77.     return this.http.post<void>(this.SET_PREFIX, newSet);
  78.   }
  79.  
  80.   updatePrizeSet(prizeSet: PrizeSetForm, prizeSetId: number): Observable<void> {
  81.     const url = `${this.SET_PREFIX}/${prizeSetId}`;
  82.     const newSet: PrizeSetForm = Object.assign({}, prizeSet);
  83.     return this.http.put<void>(url, newSet);
  84.   }
  85.  
  86.   getAllSets(): Observable<PrizeSet[]> {
  87.     return this.http.get<PrizeSet[]>(this.SET_PREFIX);
  88.   }
  89.  
  90.   deleteSet(setId: number): Observable<void> {
  91.     const url = `${this.SET_PREFIX}/${setId}`;
  92.     return this.http.delete<void>(url);
  93.   }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement