feat(employee): Added functionality to delete employees. (TV-352)
Squashed commit of the following: commit 2602b9205ef86307fa7c85ecb6ce87cb51b71150 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 2 15:40:49 2021 +0200 Added error-handling commit 4a3f79948b992e5ad7278328957380215ad21ed7 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 2 14:48:54 2021 +0200 Removed some unused variables commit f8e69dce84fee2b1fe2a06d6f0960511c286e2b5 Merge: b155865b80bf22Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 2 14:39:44 2021 +0200 Merged develop and fixed conflicts commit b15586559dab669d652d3a44625bacae4620ed40 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 2 14:34:58 2021 +0200 Added separate component for employee deletion commit 1720b4954ebbc2868db6f0304fc57b0f3ff07216 Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Tue Aug 31 07:50:56 2021 +0200 added the showing of errror- and succsess messages when employee is deleted (TV-352) commit 2556d53802249fff545a2d256a178479103108e7 Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Mon Aug 30 13:33:22 2021 +0200 minor change (TV-352) commit 035dbbe67486392a7a9c656ac73103e938953b24 Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Mon Aug 30 12:38:07 2021 +0200 added close and open methods for better handling of modal (TV-352) commit abc9ce0f8580ae1b9d784bc7591f095faeddcc33 Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Mon Aug 30 12:27:07 2021 +0200 feat(edit-employee): added functionality to delete employee, and catch error if such exists commit 23603dd2d84b0e694a19c2131c9c842cf730d97b Merge: 56a4a6a02cf0f6Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Mon Aug 30 11:19:18 2021 +0200 Merge branch 'develop' into feature/TV-352-add-delete-employee-button commit 56a4a6a9c9195542f51578bd4ee937086ace8df8 Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Fri Aug 27 12:58:23 2021 +0200 added the basic http-delete request method commit 2f61ff7d6ac2c42a7972fc88548d3d59172cbcc1 Author: Aden Hassan <aden.hassan@arbetsformedlingen.se> Date: Fri Aug 27 09:18:13 2021 +0200 added the basic html/css and functionality for deleting an employee from edit-page
This commit is contained in:
@@ -5,7 +5,6 @@ import { ErrorType } from '@msfa-enums/error-type.enum';
|
||||
import { RoleEnum } from '@msfa-enums/role.enum';
|
||||
import { SortOrder } from '@msfa-enums/sort-order.enum';
|
||||
import { environment } from '@msfa-environment';
|
||||
import { DeleteEmployeeMockApiResponse } from '@msfa-models/api/delete-employee.response.model';
|
||||
import { EmployeeInviteResponse } from '@msfa-models/api/employee-invite.response.model';
|
||||
import {
|
||||
EmployeeCompactResponse,
|
||||
@@ -25,7 +24,7 @@ import { mapRoleResponseToRoleObject, Role } from '@msfa-models/role.model';
|
||||
import { Sort } from '@msfa-models/sort.model';
|
||||
import { ErrorService } from '@msfa-services/error.service';
|
||||
import { BehaviorSubject, combineLatest, Observable, of, throwError } from 'rxjs';
|
||||
import { catchError, filter, map, switchMap, take } from 'rxjs/operators';
|
||||
import { catchError, filter, map, switchMap, take, tap } from 'rxjs/operators';
|
||||
import { TjanstService } from './tjanst.service';
|
||||
|
||||
@Injectable({
|
||||
@@ -40,9 +39,14 @@ export class EmployeeService extends UnsubscribeDirective {
|
||||
public sort$: Observable<Sort<keyof EmployeeCompactResponse>> = this._sort$.asObservable();
|
||||
private _searchFilter$ = new BehaviorSubject<string>('');
|
||||
private _onlyEmployeesWithoutAuthorization$ = new BehaviorSubject<boolean>(false);
|
||||
public onlyEmployeesWithoutAuthorization$: Observable<boolean> = this._onlyEmployeesWithoutAuthorization$.asObservable();
|
||||
private _employee$ = new BehaviorSubject<Employee>(null);
|
||||
|
||||
public employee$: Observable<Employee> = this._employee$.asObservable();
|
||||
private _lastDeletedEmployee$ = new BehaviorSubject<Employee>(null);
|
||||
public lastDeletedEmployee$: Observable<Employee> = this._lastDeletedEmployee$.asObservable();
|
||||
private _employeeToDelete$ = new BehaviorSubject<Employee>(null);
|
||||
public employeeToDelete$: Observable<Employee> = this._employeeToDelete$.asObservable();
|
||||
|
||||
constructor(
|
||||
private httpClient: HttpClient,
|
||||
private errorService: ErrorService,
|
||||
@@ -58,7 +62,7 @@ export class EmployeeService extends UnsubscribeDirective {
|
||||
filter(([employee, allTjanster]) => !!(employee && allTjanster?.length)),
|
||||
map(([employee, allTjanster]) => {
|
||||
const tjanster = [];
|
||||
employee.tjanstCodes.forEach(code => {
|
||||
employee.tjanstCodes?.forEach(code => {
|
||||
const currentTjanst = allTjanster.find(tjanst => tjanst.code === code);
|
||||
|
||||
if (currentTjanst) {
|
||||
@@ -82,6 +86,7 @@ export class EmployeeService extends UnsubscribeDirective {
|
||||
this._sort$,
|
||||
this._searchFilter$,
|
||||
this._onlyEmployeesWithoutAuthorization$,
|
||||
this._lastDeletedEmployee$,
|
||||
]).pipe(
|
||||
switchMap(([limit, page, sort, searchFilter, onlyEmployeesWithoutAuthorization]) =>
|
||||
this._fetchEmployees$(limit, page, sort, searchFilter, onlyEmployeesWithoutAuthorization)
|
||||
@@ -144,17 +149,17 @@ export class EmployeeService extends UnsubscribeDirective {
|
||||
this._onlyEmployeesWithoutAuthorization$.next(value);
|
||||
}
|
||||
|
||||
// Not done, waiting for delete api http response
|
||||
public deleteEmployee(id: string): Observable<any> {
|
||||
return this.httpClient.delete<DeleteEmployeeMockApiResponse>(`${this._apiBaseUrl}/${id}`).pipe(
|
||||
take(1),
|
||||
map(response => {
|
||||
return {
|
||||
status: response.status || 200, // mockresponse
|
||||
message: response.message || 'deleted succeeded', // mockresponse
|
||||
};
|
||||
public setEmployeeToDelete(employee: Employee): void {
|
||||
this._employeeToDelete$.next(employee);
|
||||
}
|
||||
|
||||
public deleteEmployee(employee: Employee): Observable<Employee | Partial<Employee>> {
|
||||
return this.httpClient.delete<void>(`${this._apiBaseUrl}/hubba`).pipe(
|
||||
tap(() => {
|
||||
this._lastDeletedEmployee$.next(employee);
|
||||
}),
|
||||
catchError(error => throwError({ message: error as string, type: ErrorType.API }))
|
||||
map(() => employee),
|
||||
catchError(error => throwError(errorToCustomError(error)))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -184,8 +189,11 @@ export class EmployeeService extends UnsubscribeDirective {
|
||||
})
|
||||
.pipe(
|
||||
take(1),
|
||||
map(res => res.data),
|
||||
catchError(error => throwError({ message: error as string, type: ErrorType.API }))
|
||||
map(({ data }) => data),
|
||||
catchError(error => {
|
||||
this.errorService.add(errorToCustomError(error));
|
||||
return of(null);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user