import { HttpClient, HttpParams } from "@angular/common/http"; import { Injectable, inject } from "@angular/core"; import { COUNTRY_ENDPOINTS } from "../../../core/end-points/country/country.endpoints"; import { Observable } from "rxjs"; import { DataTableQuery, DataTableResult } from "../../../shared/components/data-table/data-table.types"; import { CountryDto, CountryLookupDto, CreateCountryRequest, UpdateCountryRequest } from "../../models/country/country.model"; @Injectable({ providedIn: 'root' }) export class CountryService { private readonly http = inject(HttpClient); getCountryDataTable(query: DataTableQuery): Observable> { return this.http.post>(`${COUNTRY_ENDPOINTS.dataTable}`, query); } createCountry(request: CreateCountryRequest): Observable { return this.http.post(COUNTRY_ENDPOINTS.create, request); } updateCountry(id: string, request: UpdateCountryRequest): Observable { return this.http.put(COUNTRY_ENDPOINTS.update(id), request); } getCountryById(id: string): Observable { return this.http.get(COUNTRY_ENDPOINTS.getById(id)); } autocomplete(term = '', limit = 50): Observable { return this.http.get(COUNTRY_ENDPOINTS.autocomplete, { params: new HttpParams() .set('term', term) .set('limit', limit) }); } }