All files / app/services image.service.ts

50% Statements 5/10
0% Branches 0/1
33.33% Functions 1/3
44.44% Lines 4/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                  1x 6x   6x     6x                                    
import { Injectable, inject } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ImageMetadata } from '../models/image-metadata.model';
import { environment } from '../../environments/environment';
 
@Injectable({
  providedIn: 'root'
})
export class ImageService {
  private http = inject(HttpClient);
 
  private apiUrl = environment.apiUrl;
 
  getAllImages(): Observable<ImageMetadata[]> {
    return this.http.get<ImageMetadata[]>(this.apiUrl);
  }
 
  generateUploadUrl(fileName: string, contentType: string, size?: number): Observable<ImageMetadata> {
    let params = new HttpParams()
      .set('fileName', fileName)
      .set('contentType', contentType);
    Iif (size) {
      params = params.set('size', size.toString());
    }
 
    return this.http.post<ImageMetadata>(`${this.apiUrl}/upload-url`, null, { params });
  }
 
  deleteImage(id: number): Observable<void> {
    return this.http.delete<void>(`${this.apiUrl}/${id}`);
  }
}