([]);
constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeService) {
diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
index 99f235e..7a1fc4d 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
+++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
@@ -37,8 +37,8 @@
|
{{ employees.fullName }}
|
- {{ employees.service }} |
- {{ employees.kommun }} |
+ {{ employees.service || '-' }} |
+ {{ employees.kommun || '-' }} |
diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
index 7404aea..a588baf 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
+++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
-import { Employee } from '@dafa-models/employee.model';
+import { User } from '@dafa-models/employee.model';
import { SortBy } from '@dafa-models/sort-by.model';
import { BehaviorSubject } from 'rxjs';
@@ -10,9 +10,9 @@ import { BehaviorSubject } from 'rxjs';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class EmployeesListComponent {
- @Input() employees: Employee[];
+ @Input() employees: User[];
@Input() sortBy: SortBy | null;
- @Output() sorted = new EventEmitter();
+ @Output() sorted = new EventEmitter();
private _currentPage$ = new BehaviorSubject(1);
private _employeesPerPage = 10;
@@ -27,7 +27,7 @@ export class EmployeesListComponent {
return Math.ceil(this.employees.length / this._employeesPerPage);
}
- get pagedEmployees(): Employee[] {
+ get pagedEmployees(): User[] {
return [...this.employees].slice(this.currentResultStart - 1, this.currentResultEnd - 1);
}
@@ -39,7 +39,7 @@ export class EmployeesListComponent {
return this.currentResultStart + this._employeesPerPage;
}
- handleSort(key: keyof Employee): void {
+ handleSort(key: keyof User): void {
this.sorted.emit(key);
}
diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts
index 4189f63..edf6764 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts
+++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts
@@ -1,6 +1,6 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { IconType } from '@dafa-enums/icon-type.enum';
-import { Employee } from '@dafa-models/employee.model';
+import { User } from '@dafa-models/employee.model';
import { SortBy } from '@dafa-models/sort-by.model';
import { EmployeeService } from '@dafa-services/api/employee.service';
import { BehaviorSubject, Observable } from 'rxjs';
@@ -13,7 +13,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
})
export class EmployeesComponent {
private _searchValue$ = new BehaviorSubject('');
- filteredEmployees$: Observable = this.employeeService.filteredEmployees$;
+ filteredEmployees$: Observable = this.employeeService.filteredEmployees$;
employeesSortBy$: Observable = this.employeeService.employeesSortBy$;
iconType = IconType;
@@ -31,7 +31,7 @@ export class EmployeesComponent {
this._searchValue$.next($event.detail.target.value);
}
- handleEmployeesSort(key: keyof Employee): void {
+ handleEmployeesSort(key: keyof User): void {
this.employeeService.setEmployeesSortKey(key);
}
}
diff --git a/apps/dafa-web/src/app/services/api/employee.service.ts b/apps/dafa-web/src/app/services/api/employee.service.ts
index 4102808..2b25713 100644
--- a/apps/dafa-web/src/app/services/api/employee.service.ts
+++ b/apps/dafa-web/src/app/services/api/employee.service.ts
@@ -1,13 +1,14 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '@dafa-environment';
-import { Employee, EmployeeDetail, mapEmployeeReponseToEmployee } from '@dafa-models/employee.model';
+import { EmployeeResponse } from '@dafa-models/api/employee-response.model';
+import { EmployeeDetail, mapEmployeeReponseToEmployee, User } from '@dafa-models/employee.model';
import { SortBy } from '@dafa-models/sort-by.model';
import { sort } from '@dafa-utils/sort.util';
import { BehaviorSubject, combineLatest, Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
-function filterEmployees(employees: Employee[], searchFilter: string): Employee[] {
+function filterEmployees(employees: User[], searchFilter: string): User[] {
return employees.filter(person => person.fullName.toLowerCase().includes(searchFilter.toLowerCase()));
}
@@ -16,8 +17,8 @@ function filterEmployees(employees: Employee[], searchFilter: string): Employee[
})
export class EmployeeService {
private _employeesApiUrl = `${environment.apiBase}/D_pxOperatorsList`;
- private _allEmployees$: Observable = this.httpClient
- .get(this._employeesApiUrl, {
+ private _allEmployees$: Observable = this.httpClient
+ .get<{ pxResults: EmployeeResponse[] }>(this._employeesApiUrl, {
headers: environment.apiHeaders,
})
.pipe(map(({ pxResults }) => pxResults.map(result => mapEmployeeReponseToEmployee(result))));
@@ -27,11 +28,11 @@ export class EmployeeService {
private _searchFilter$ = new BehaviorSubject('');
public searchFilter$: Observable = this._searchFilter$.asObservable();
- private _filteredEmployees$: Observable = combineLatest([this._allEmployees$, this._searchFilter$]).pipe(
+ private _filteredEmployees$: Observable = combineLatest([this._allEmployees$, this._searchFilter$]).pipe(
map(([employees, searchFilter]) => filterEmployees(employees, searchFilter))
);
- public filteredEmployees$: Observable = combineLatest([
+ public filteredEmployees$: Observable = combineLatest([
this._filteredEmployees$,
this._employeesSortBy$,
]).pipe(
@@ -42,15 +43,15 @@ export class EmployeeService {
constructor(private httpClient: HttpClient) {}
- public getDetailedEmployeeData(id: string): Observable {
- return this.httpClient.get(`${this._employeesApiUrl}/${id}`, { params: { _embed: 'participants' } });
+ public getDetailedEmployeeData(id: string): Observable {
+ return this.httpClient.get(`${this._employeesApiUrl}/${id}`, { params: { _embed: 'participants' } });
}
public setSearchFilter(value: string) {
this._searchFilter$.next(value);
}
- public setEmployeesSortKey(key: keyof Employee) {
+ public setEmployeesSortKey(key: keyof User) {
const currentSortBy = this._employeesSortBy$.getValue();
const reverse = currentSortBy?.key === key ? !currentSortBy.reverse : false;
this._employeesSortBy$.next({ key, reverse });
diff --git a/apps/dafa-web/src/app/services/api/user.service.ts b/apps/dafa-web/src/app/services/api/user.service.ts
new file mode 100644
index 0000000..240f53e
--- /dev/null
+++ b/apps/dafa-web/src/app/services/api/user.service.ts
@@ -0,0 +1,21 @@
+import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { environment } from '@dafa-environment';
+import { UserResponse } from '@dafa-models/api/user-response.model';
+import { mapUserReponseToUser, User } from '@dafa-models/user.model';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class UserService {
+ private _userApiUrl = `${environment.apiBase}/D_OperatorID`;
+ public currentUser$: Observable = this.httpClient
+ .get(this._userApiUrl, {
+ headers: environment.apiHeaders,
+ })
+ .pipe(map(response => mapUserReponseToUser(response)));
+
+ constructor(private httpClient: HttpClient) {}
+}