<commit_before>import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../../../environments/environment';
import { SintesiRichiesta } from '../../../shared/model/sintesi-richiesta.model';
import { FiltersInterface } from '../../../shared/interface/filters/filters.interface';
import { PaginationInterface } from '../../../shared/interface/pagination.interface';
import { VoceFiltro } from '../../../features/home/filterbar/filtri-richieste/voce-filtro.model';
import { RichiestaActionInterface } from '../../../shared/interface/richiesta-action.interface';

const BASE_URL = environment.baseUrl;
const API_URL_RICHIESTE = BASE_URL + environment.apiUrl.rigaElencoRichieste;
const API_CHIAMATA = BASE_URL + environment.apiUrl.chiamata;
const API_GESTIONE_RICHIESTA = BASE_URL + environment.apiUrl.gestioneRichiesta;
const API_GESTIONE_PARTENZA = BASE_URL + environment.apiUrl.gestionePartenza;
const API_GESTIONE_FONOGRAMMA = BASE_URL + environment.apiUrl.gestioneFonogramma;
const API_ENTI = BASE_URL + environment.apiUrl.enti;

@Injectable({
    providedIn: 'root'
})
export class SintesiRichiesteService {

    constructor(private http: HttpClient) {
    }

    public getRichieste(filters: FiltersInterface, pagination: PaginationInterface): Observable<any> {
        const filtriTipologieRichiesta = filters.others.filter((f: VoceFiltro) => f.categoria !== 'StatiRichiesta' && f.categoria !== 'AltriFiltri' && f.categoria !== 'Chiuse');
        let filtriTipologia;
        if (filtriTipologieRichiesta?.length) {
            filtriTipologia = filtriTipologieRichiesta[0]?.codice;
        }
        const obj = {
            page: pagination.page,
            pageSize: pagination.pageSize || 30,
            searchKey: filters.search,
            includiRichiesteAperte: !!(filters.others && filters.others.filter((f: VoceFiltro) => f.descrizione === 'Aperte')[0]),
            includiRichiesteChiuse: !!(filters.others && filters.others.filter((f: VoceFiltro) => f.descrizione === 'Chiuse')[0]),
            filtriTipologie: null,
            statiRichiesta: filters?.filtroStato.length ? filters.filtroStato : null,
            tipologiaRichiesta: filtriTipologia ? filtriTipologia : null,
            zoneEmergenza: filters?.zoneEmergenza.length ? filters.zoneEmergenza : null,
            chiuse: filters?.chiuse.length ? filters.chiuse : null,
            periodoChiuseChiamate: filters?.periodoChiuseChiamate.da || filters?.periodoChiuseChiamate.data || filters?.periodoChiuseChiamate.turno ? filters?.periodoChiuseChiamate : null,
            periodoChiusiInterventi: filters?.periodoChiusiInterventi.da || filters?.periodoChiusiInterventi.data || filters?.periodoChiusiInterventi.turno ? filters?.periodoChiusiInterventi : null
        };
        return this.http.post(API_URL_RICHIESTE, obj);
    }

    public getRichiestaById(id: string): Observable<SintesiRichiesta> {
        return this.http.get<SintesiRichiesta>(`${API_GESTIONE_RICHIESTA}/GetRichiesta?idRichiesta=${id}`);
    }

    public patchRichiesta(richiesta: SintesiRichiesta): Observable<any> {
        return this.http.post<any>(`${API_CHIAMATA}/UpdateIntervento`, richiesta);
    }

    public aggiornaStatoRichiesta(obj: RichiestaActionInterface): Observable<any> {
        return this.http.post<any>(`${API_GESTIONE_RICHIESTA}/AggiornaStato`, obj);
    }

    public getCodiciRichieste(idRichiesta: string): Observable<{ listaCodiciRichiesta: string[] }> {
        console.log('getCodiciRichieste', idRichiesta);
        return this.http.get<{ listaCodiciRichiesta: string[] }>(`${API_GESTIONE_RICHIESTA}/GetCodiciRichieste?idRichiesta=` + idRichiesta);
    }

    public aggiornaStatoMezzo(obj: any): Observable<any> {
        console.log('SERVICE AggiornaStatoMezzo', obj);
        return this.http.post<any>(`${API_GESTIONE_PARTENZA}/AggiornaPartenza`, obj);
    }

    public eliminaPartenzaRichiesta(obj: any): Observable<any> {
        console.log('eliminaPartenzaRichiesta', obj);
        return this.http.post<any>(`${API_GESTIONE_PARTENZA}/AnnullaPartenza`, obj);
    }

    public modificaStatoFonogrammaRichiesta(obj: any): Observable<any> {
        console.log('modificaStatoFonogrammaRichiesta', obj);
        return this.http.post<any>(`${API_GESTIONE_FONOGRAMMA}/InfoFonogramma`, obj);
    }<commit_msg>fix: annulla stato partenza<commit_after>import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../../../environments/environment';
import { SintesiRichiesta } from '../../../shared/model/sintesi-richiesta.model';
import { FiltersInterface } from '../../../shared/interface/filters/filters.interface';
import { PaginationInterface } from '../../../shared/interface/pagination.interface';
import { VoceFiltro } from '../../../features/home/filterbar/filtri-richieste/voce-filtro.model';
import { RichiestaActionInterface } from '../../../shared/interface/richiesta-action.interface';

const BASE_URL = environment.baseUrl;
const API_URL_RICHIESTE = BASE_URL + environment.apiUrl.rigaElencoRichieste;
const API_CHIAMATA = BASE_URL + environment.apiUrl.chiamata;
const API_GESTIONE_RICHIESTA = BASE_URL + environment.apiUrl.gestioneRichiesta;
const API_GESTIONE_PARTENZA = BASE_URL + environment.apiUrl.gestionePartenza;
const API_GESTIONE_FONOGRAMMA = BASE_URL + environment.apiUrl.gestioneFonogramma;
const API_ENTI = BASE_URL + environment.apiUrl.enti;

@Injectable({
    providedIn: 'root'
})
export class SintesiRichiesteService {

    constructor(private http: HttpClient) {
    }

    public getRichieste(filters: FiltersInterface, pagination: PaginationInterface): Observable<any> {
        const filtriTipologieRichiesta = filters.others.filter((f: VoceFiltro) => f.categoria !== 'StatiRichiesta' && f.categoria !== 'AltriFiltri' && f.categoria !== 'Chiuse');
        let filtriTipologia;
        if (filtriTipologieRichiesta?.length) {
            filtriTipologia = filtriTipologieRichiesta[0]?.codice;
        }
        const obj = {
            page: pagination.page,
            pageSize: pagination.pageSize || 30,
            searchKey: filters.search,
            includiRichiesteAperte: !!(filters.others && filters.others.filter((f: VoceFiltro) => f.descrizione === 'Aperte')[0]),
            includiRichiesteChiuse: !!(filters.others && filters.others.filter((f: VoceFiltro) => f.descrizione === 'Chiuse')[0]),
            filtriTipologie: null,
            statiRichiesta: filters?.filtroStato.length ? filters.filtroStato : null,
            tipologiaRichiesta: filtriTipologia ? filtriTipologia : null,
            zoneEmergenza: filters?.zoneEmergenza.length ? filters.zoneEmergenza : null,
            chiuse: filters?.chiuse.length ? filters.chiuse : null,
            periodoChiuseChiamate: filters?.periodoChiuseChiamate.da || filters?.periodoChiuseChiamate.data || filters?.periodoChiuseChiamate.turno ? filters?.periodoChiuseChiamate : null,
            periodoChiusiInterventi: filters?.periodoChiusiInterventi.da || filters?.periodoChiusiInterventi.data || filters?.periodoChiusiInterventi.turno ? filters?.periodoChiusiInterventi : null
        };
        return this.http.post(API_URL_RICHIESTE, obj);
    }

    public getRichiestaById(id: string): Observable<SintesiRichiesta> {
        return this.http.get<SintesiRichiesta>(`${API_GESTIONE_RICHIESTA}/GetRichiesta?idRichiesta=${id}`);
    }

    public patchRichiesta(richiesta: SintesiRichiesta): Observable<any> {
        return this.http.post<any>(`${API_CHIAMATA}/UpdateIntervento`, richiesta);
    }

    public aggiornaStatoRichiesta(obj: RichiestaActionInterface): Observable<any> {
        return this.http.post<any>(`${API_GESTIONE_RICHIESTA}/AggiornaStato`, obj);
    }

    public getCodiciRichieste(idRichiesta: string): Observable<{ listaCodiciRichiesta: string[] }> {
        console.log('getCodiciRichieste', idRichiesta);
        return this.http.get<{ listaCodiciRichiesta: string[] }>(`${API_GESTIONE_RICHIESTA}/GetCodiciRichieste?idRichiesta=` + idRichiesta);
    }

    public aggiornaStatoMezzo(obj: any): Observable<any> {
        console.log('SERVICE AggiornaStatoMezzo', obj);
        return this.http.post<any>(`${API_GESTIONE_PARTENZA}/AggiornaPartenza`, obj);
    }

    public eliminaPartenzaRichiesta(obj: any): Observable<any> {
        console.log('Annulla Stato Partenza', obj);
        return this.http.post<any>(`${API_GESTIONE_PARTENZA}/AnnullaStatoPartenza`, obj);
    }

    public modificaStatoFonogrammaRichiesta(obj: any): Observable<any> {
        console.log('modificaStatoFonogrammaRichiesta', obj);
        return this.http.post<any>(`${API_GESTIONE_FONOGRAMMA}/InfoFonogramma`, obj);
    }
{'fraction_non_alphanumeric': 0.1300803803917129, 'fraction_numerical': 0.0011321181931393638, 'mean_word_length': 4.184272300469484, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 39, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3322011', 'n_tokens_mistral': 2953, 'n_tokens_neox': 2906, 'n_words': 425}