import { Injectable } from '@angular/core'; import { HttpClient, HttpResponse } from '@angular/common/http'; import { Observable } from 'rxjs'; import { ApplicationConfigService } from 'app/core/config/application-config.service'; import { createRequestOption } from 'app/core/request/request-util'; import { Pagination } from 'app/core/request/request.model'; import { IUser } from '../user-management.model'; @Injectable({ providedIn: 'root' }) export class UserManagementService { private resourceUrl = this.applicationConfigService.getEndpointFor('api/admin/users'); constructor(private http: HttpClient, private applicationConfigService: ApplicationConfigService) {} create(user: IUser): Observable { return this.http.post(this.resourceUrl, user); } update(user: IUser): Observable { return this.http.put(this.resourceUrl, user); } find(login: string): Observable { return this.http.get(`${this.resourceUrl}/${login}`); } query(req?: Pagination): Observable> { const options = createRequestOption(req); return this.http.get(this.resourceUrl, { params: options, observe: 'response' }); } delete(login: string): Observable<{}> { return this.http.delete(`${this.resourceUrl}/${login}`); } authorities(): Observable { return this.http.get(this.applicationConfigService.getEndpointFor('api/authorities')); } }