import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { map } from 'rxjs';
import { apiTemp } from 'src/environments/environment';

@Injectable({
  providedIn: 'root',
})
export class DocumentManagementService {
  constructor(private http: HttpClient) {}

  getFileInfo(id: string, idUser: string, line: number) {
    return this.getQuery(`get-file-info/${id}/${idUser}/${line}`).pipe(
      map((data: any) => data)
    );
  }

  uploadTempFile(body: any) {
    return this.postQuery('upload-file', body).pipe(map((data: any) => data));
  }

  deleteTempFile(body: any) {
    return this.postQuery('delete-file', body).pipe(map((data: any) => data));
  }

  getQuery(query: string) {
    const JWT = `Bearer ${localStorage.getItem('token')}`;
    const URL = `${apiTemp}${query}`;
    return this.http.get(URL, {
      headers: new HttpHeaders({
        Authorization: JWT,
      }),
    });
  }

  postQuery(query: string, body: any) {
    const JWT = `Bearer ${localStorage.getItem('token')}`;
    const URL = `${apiTemp}${query}`;
    return this.http.post(URL, body, {
      headers: new HttpHeaders({
        Authorization: JWT!,
      }),
    });
  }
}
