// Questo file fa parte di MyTown.
// MyTown è software libero: puoi ridistribuirlo e/o modificarlo secondo
// i termini della GNU Affero General Public License come pubblicata dalla
// Free Software Foundation, versione 3.
// Distribuito senza ALCUNA GARANZIA; vedi la GNU AGPL v3 per i dettagli.
// Copyright (C) Kondor Consulting & Services S.r.l.
// SPDX-License-Identifier: AGPL-3.0-or-later

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ConfigService } from './config.service';

/**
 * Upload/cancellazione immagini della lavagna (drawing board).
 * Gli endpoint appartengono al modulo helpdesk enterprise, non incluso nel
 * perimetro open source: senza quel servizio le operazioni falliscono e il
 * componente mostra l'errore di caricamento.
 */
@Injectable({
	providedIn: 'root',
})
export class LavagnaService {
	constructor(private http: HttpClient, private configService: ConfigService) {}

	lavagnaImageUpload(formData: FormData, lavagnaDest: String, prt_id: number): Observable<any> {
		const headers = new HttpHeaders().set('portale', prt_id.toString());
		return this.http.post(`${this.configService.serviceUrl_HelpDesk_RFI}/sopralluogo/limg/upload?lavagna_dest=${lavagnaDest}`, formData, { headers, observe: 'response' }).pipe(map((response) => response.body));
	}

	lavagnaImageDelete(partialPath: String, prt_id: number): Observable<any> {
		const headers = new HttpHeaders().set('portale', prt_id.toString());
		return this.http.delete(`${this.configService.serviceUrl_HelpDesk_RFI}/sopralluogo/limg/delete?partial_path=${partialPath}`, { headers, observe: 'response' }).pipe(map((response) => response.body));
	}
}