import { Injectable, Inject } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { API_URL } from '../models/api-url.token'; import { IPlatformUserAccountVm } from '../platform-user-account-vm.model'; import { IPaginatedResultPlatformUserAccountVm } from '../paginated-result-platform-user-account-vm.model'; import { SortOrder } from '../sort-order.model'; @Injectable({ providedIn: 'root' }) export class PlatformUsersService { private readonly baseUrl: string; constructor(private http: HttpClient, @Inject(API_URL) private apiUrl: string) { this.baseUrl = `${this.apiUrl}/PlatformUsers`; } get(search?: string, page?: number, pageSize?: number, sortColumn?: string, sortOrder?: SortOrder): Observable { const headers = this.createHeaders(); let params = new HttpParams(); if (search !== undefined && search !== null) { params = params.set('search', search.toString()); } if (page !== undefined && page !== null) { params = params.set('page', page.toString()); } if (pageSize !== undefined && pageSize !== null) { params = params.set('pageSize', pageSize.toString()); } if (sortColumn !== undefined && sortColumn !== null) { params = params.set('sortColumn', sortColumn.toString()); } if (sortOrder !== undefined && sortOrder !== null) { params = params.set('sortOrder', JSON.stringify(sortOrder)); } return this.http.get(this.baseUrl, { headers, params }); } private createHeaders(): HttpHeaders { let headers = new HttpHeaders(); const token = localStorage.getItem('authToken'); if (token) { headers = headers.set('Authorization', `Bearer ${token}`); } return headers; } }