Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {Injectable} from '@angular/core';
- import {Prize, PrizeSet, PrizeSetForm} from '../model/prize-entities';
- import {Observable} from 'rxjs';
- import {HttpClient, HttpParams} from '@angular/common/http';
- @Injectable({
- providedIn: 'root'
- })
- export class PrizeService {
- private PRIZE_PREFIX = '/api/prizes/prize';
- private SET_PREFIX = '/api/prizes/set';
- constructor(private http: HttpClient) {
- }
- getAll(locked ?: boolean): Observable<Prize[]> {
- if (locked !== undefined) {
- const params = new HttpParams().set('locked', String(locked));
- return this.http.get<Prize[]>(this.PRIZE_PREFIX, {params});
- } else {
- return this.http.get<Prize[]>(this.PRIZE_PREFIX);
- }
- }
- addPrize(prize: Prize): Observable<void> {
- var formData = new FormData();
- formData.append('image', prize.image);
- const backEndPrize = Object.assign({}, prize);
- backEndPrize.image = null;
- const blob = new Blob([JSON.stringify(backEndPrize)], {type: 'application/json'});
- formData.append('form', blob);
- return this.http.post<void>(this.PRIZE_PREFIX, formData);
- }
- updatePrize(prize: Prize, prizeId: number): Observable<void> {
- var formData = new FormData();
- formData.append('image', prize.image);
- const backEndPrize = Object.assign({}, prize);
- backEndPrize.image = null;
- const blob = new Blob([JSON.stringify(backEndPrize)], {type: 'application/json'});
- formData.append('form', blob);
- const url = `${this.PRIZE_PREFIX}/${prizeId}`;
- return this.http.put<void>(url, formData);
- }
- deletePrize(prizeId: number): Observable<void> {
- const url = `${this.PRIZE_PREFIX}/${prizeId}`;
- return this.http.delete<void>(url);
- }
- lockPrize(prizeId: number): Observable<void> {
- const url = `${this.PRIZE_PREFIX}/${prizeId}/lock`;
- return this.http.put<void>(url, null);
- }
- unlockPrize(prizeId: number): Observable<void> {
- const url = `${this.PRIZE_PREFIX}/${prizeId}/unlock`;
- return this.http.put<void>(url, null);
- }
- getPrize(prizeId: number): Observable<Prize> {
- const url = `${this.PRIZE_PREFIX}/${prizeId}`;
- return this.http.get<Prize>(url);
- }
- getPrizeSet(prizeSetId: number): Observable<PrizeSet> {
- const url = `${this.SET_PREFIX}/${prizeSetId}`;
- return this.http.get<PrizeSet>(url);
- }
- addPrizeSet(prizeSet: PrizeSetForm): Observable<void> {
- const newSet: PrizeSetForm = Object.assign({}, prizeSet);
- return this.http.post<void>(this.SET_PREFIX, newSet);
- }
- updatePrizeSet(prizeSet: PrizeSetForm, prizeSetId: number): Observable<void> {
- const url = `${this.SET_PREFIX}/${prizeSetId}`;
- const newSet: PrizeSetForm = Object.assign({}, prizeSet);
- return this.http.put<void>(url, newSet);
- }
- getAllSets(): Observable<PrizeSet[]> {
- return this.http.get<PrizeSet[]>(this.SET_PREFIX);
- }
- deleteSet(setId: number): Observable<void> {
- const url = `${this.SET_PREFIX}/${setId}`;
- return this.http.delete<void>(url);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement