feat(employee): Now possible to submit edit employee form. (TV-513)
Squashed commit of the following: commit fc79d20601988735b407a54009426e10e233df39 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Sep 7 13:24:30 2021 +0200 Small fixes commit bc8741bab9b3161d356d1375b7ab869b202a8195 Merge: 1ad9db8cac0515Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Sep 7 13:16:21 2021 +0200 Merged develop commit 1ad9db87e7f1f19fdb2cd3e2cfcc17e08c9ccfef Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Sep 7 12:49:37 2021 +0200 Stylechanges commit 5a3b863f87f956ed90564fecbef9abe9460558bd Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Sep 7 11:26:35 2021 +0200 Now possible to edit employee-accounts commit 0677f2ebeee12adeba6cb65a673781dea7a6c06d Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Sep 7 10:05:35 2021 +0200 Updated models to include new structure commit 76bde9e0afbbf44a09348ee8e4849b4816b0c39d Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Tue Sep 7 08:43:25 2021 +0200 edit employee commit c8cf93b6bbeef0a3b4b6f141f36aea7ea86f399e Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Mon Sep 6 16:22:46 2021 +0200 WIP commit fe5cff4aa209c4da0025ebfb70b79d6a95c8d1f1 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Mon Sep 6 15:46:26 2021 +0200 Fixed issue not fetching new utforande verksamheter on page load commit c997dbe80c8f9f5ec84aad2ac18805918b7ab6f5 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Mon Sep 6 15:35:34 2021 +0200 Added scrollPositionRestoration commit 58ee0147ff553f2a97fdf143ddcbdf1b0241d26f Merge: 27b595c9a73ffeAuthor: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Mon Sep 6 15:30:08 2021 +0200 Merge branch 'develop' into feature/TV-513 commit 27b595cbf94dc1d95ad32a0da1943e2e6fce61c4 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Mon Sep 6 14:28:10 2021 +0200 WIP commit 81cb9df1869784a80f6747ac68bfdc81ae5d777a Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Mon Sep 6 13:21:41 2021 +0200 Fixed roles
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
export interface AvropTjanstResponse {
|
||||
export interface AvropFilterResponse {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
@@ -0,0 +1,10 @@
|
||||
import { RoleEnum } from '@msfa-enums/role.enum';
|
||||
|
||||
export interface EmployeeEditRequest {
|
||||
email: string;
|
||||
roles: RoleEnum[];
|
||||
tjanstIds: number[];
|
||||
allaUtforandeVerksamheter: boolean;
|
||||
utforandeVerksamhetIds?: number[];
|
||||
adressIds: number[];
|
||||
}
|
||||
@@ -1,5 +1,18 @@
|
||||
import { RoleEnum } from '@msfa-enums/role.enum';
|
||||
import { PaginationMeta } from '@msfa-models/pagination-meta.model';
|
||||
import { TjanstResponse } from './tjanst.response.model';
|
||||
|
||||
interface UtforandeVerksamhetResponse {
|
||||
id: number;
|
||||
name: string;
|
||||
allaAdresser: boolean;
|
||||
adresser?: AdressResponse[];
|
||||
}
|
||||
|
||||
interface AdressResponse {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface EmployeeCompactResponse {
|
||||
ciamUserId: string;
|
||||
@@ -14,16 +27,19 @@ export interface EmployeeResponse {
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
email: string;
|
||||
personnummer: string;
|
||||
ssn: string;
|
||||
roles: RoleEnum[];
|
||||
tjansteKoder: string[];
|
||||
tjanster: TjanstResponse[];
|
||||
allaUtforandeVerksamheter: boolean;
|
||||
utforandeVerksamhet: string[];
|
||||
utforandeVerksamheter: UtforandeVerksamhetResponse[];
|
||||
|
||||
// Will be removed
|
||||
tjansteKoder: string[];
|
||||
utforandeVerksamhetIds: number[];
|
||||
adressIds: number[];
|
||||
}
|
||||
|
||||
export interface EmployeesApiResponse {
|
||||
export interface EmployeesDataResponse {
|
||||
data: EmployeeCompactResponse[];
|
||||
meta: PaginationMeta;
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
export interface KommunResponse {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
export interface TjanstResponse {
|
||||
id: string;
|
||||
name: string;
|
||||
tjanstekod: string;
|
||||
tjanstId: number;
|
||||
id?: string;
|
||||
tjanstId?: number;
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
export interface UtforandeVerksamhetResponse {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { AvropFilterResponse } from './api/avrop-filter.response.model';
|
||||
|
||||
export interface AvropFilter {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export function mapResponseToAvropFilter(data: AvropFilterResponse): AvropFilter {
|
||||
const { id, label, count } = data;
|
||||
|
||||
return {
|
||||
id,
|
||||
label,
|
||||
count,
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
import { AvropTjanstResponse } from './api/avrop-tjanst.response.model';
|
||||
|
||||
export interface AvropTjanst {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export function mapResponseToAvropTjanst(data: AvropTjanstResponse): AvropTjanst {
|
||||
const { id, label, count } = data;
|
||||
|
||||
return {
|
||||
id,
|
||||
label,
|
||||
count,
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,21 @@
|
||||
import { RoleEnum } from '@msfa-enums/role.enum';
|
||||
import { EmployeeCompactResponse, EmployeeResponse } from './api/employee.response.model';
|
||||
import { PaginationMeta } from './pagination-meta.model';
|
||||
import { Tjanst } from './tjanst.model';
|
||||
import { mapResponseToTjanst, Tjanst } from './tjanst.model';
|
||||
|
||||
const CURRENT_YEAR = new Date().getFullYear().toString().slice(2, 4);
|
||||
|
||||
interface UtforandeVerksamhet {
|
||||
id: number;
|
||||
name: string;
|
||||
allaAdresser: boolean;
|
||||
adresser?: Adress[];
|
||||
}
|
||||
|
||||
interface Adress {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface EmployeeCompact {
|
||||
id: string;
|
||||
@@ -19,9 +33,11 @@ export interface Employee {
|
||||
email: string;
|
||||
ssn: string;
|
||||
roles: RoleEnum[];
|
||||
tjanstCodes: string[];
|
||||
tjanster?: Tjanst[];
|
||||
tjanster: Tjanst[];
|
||||
allaUtforandeVerksamheter: boolean;
|
||||
utforandeVerksamheter: UtforandeVerksamhet[];
|
||||
|
||||
tjanstCodes: string[];
|
||||
utforandeVerksamhetIds: number[];
|
||||
utforandeAdressIds: number[];
|
||||
}
|
||||
@@ -31,26 +47,15 @@ export interface EmployeesData {
|
||||
meta: PaginationMeta;
|
||||
}
|
||||
|
||||
export interface EmployeeRequestData {
|
||||
email: string;
|
||||
roles: string[];
|
||||
tjansteKoder: string[];
|
||||
allaUtforandeVerksamheter: boolean;
|
||||
utforandeVerksamhetIds: number[];
|
||||
adressIds: number[];
|
||||
}
|
||||
|
||||
export function mapEmployeeToRequestData(data: Employee): EmployeeRequestData {
|
||||
const { email, roles, tjanstCodes, allaUtforandeVerksamheter, utforandeVerksamhetIds, utforandeAdressIds } = data;
|
||||
|
||||
return {
|
||||
email,
|
||||
roles,
|
||||
tjansteKoder: tjanstCodes,
|
||||
utforandeVerksamhetIds,
|
||||
adressIds: utforandeAdressIds,
|
||||
allaUtforandeVerksamheter: allaUtforandeVerksamheter,
|
||||
};
|
||||
function mapResponseToSsn(ssn: string): string {
|
||||
if (ssn.length === 10) {
|
||||
const century = +CURRENT_YEAR - +ssn.slice(0, 2) > 0 ? '20' : '19';
|
||||
ssn = ssn.padStart(12, century);
|
||||
}
|
||||
if (ssn.length === 12) {
|
||||
ssn = `${ssn.slice(0, 8)}-${ssn.slice(8, 12)}`;
|
||||
}
|
||||
return ssn;
|
||||
}
|
||||
|
||||
export function mapResponseToEmployeeCompact(data: EmployeeCompactResponse): EmployeeCompact {
|
||||
@@ -70,10 +75,12 @@ export function mapResponseToEmployee(data: EmployeeResponse): Employee {
|
||||
firstName,
|
||||
lastName,
|
||||
email,
|
||||
personnummer,
|
||||
ssn,
|
||||
roles,
|
||||
tjansteKoder,
|
||||
tjanster,
|
||||
allaUtforandeVerksamheter,
|
||||
utforandeVerksamheter,
|
||||
tjansteKoder,
|
||||
utforandeVerksamhetIds,
|
||||
adressIds,
|
||||
} = data;
|
||||
@@ -83,10 +90,12 @@ export function mapResponseToEmployee(data: EmployeeResponse): Employee {
|
||||
lastName,
|
||||
fullName: `${firstName} ${lastName}`,
|
||||
email,
|
||||
ssn: personnummer,
|
||||
ssn: ssn ? mapResponseToSsn(ssn) : null,
|
||||
roles: roles || [],
|
||||
tjanstCodes: tjansteKoder || [],
|
||||
tjanster: tjanster?.map(tjanst => mapResponseToTjanst(tjanst)),
|
||||
allaUtforandeVerksamheter,
|
||||
utforandeVerksamheter,
|
||||
tjanstCodes: tjansteKoder || [],
|
||||
utforandeVerksamhetIds: utforandeVerksamhetIds || [],
|
||||
utforandeAdressIds: adressIds || [],
|
||||
};
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
import { KommunResponse } from './api/kommun.response.model';
|
||||
|
||||
export interface Kommun {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export function mapKommunResponseToKommun(data: KommunResponse): Kommun {
|
||||
const { id, label, count } = data;
|
||||
|
||||
return {
|
||||
id,
|
||||
label,
|
||||
count,
|
||||
};
|
||||
}
|
||||
@@ -5,29 +5,31 @@ export interface Role {
|
||||
type: RoleEnum;
|
||||
}
|
||||
|
||||
export function mapRoleResponseToRoleObject(type: string): Role {
|
||||
switch (type) {
|
||||
// case 'MSFA_Standard':
|
||||
// return {
|
||||
// name: 'Basanvändare',
|
||||
// type: RoleEnum[type],
|
||||
// };
|
||||
case 'MSFA_ReportAndPlanning':
|
||||
return {
|
||||
name: 'Rapportering, planering och information om deltagare',
|
||||
type: RoleEnum[type],
|
||||
};
|
||||
case 'MSFA_ReceiveDeltagare':
|
||||
return {
|
||||
name: 'Ta emot deltagare',
|
||||
type: RoleEnum[RoleEnum[type]],
|
||||
};
|
||||
case 'MSFA_AuthAdmin':
|
||||
return {
|
||||
name: 'Administrera behörigheter',
|
||||
type: RoleEnum[RoleEnum[type]],
|
||||
};
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
export function mapResponseToRoles(types: RoleEnum[] = []): Role[] {
|
||||
return types.map(type => {
|
||||
switch (type) {
|
||||
case 'MSFA_Standard':
|
||||
return {
|
||||
name: 'Basanvändare',
|
||||
type: RoleEnum[type],
|
||||
};
|
||||
case 'MSFA_ReportAndPlanning':
|
||||
return {
|
||||
name: 'Rapportering, planering och information om deltagare',
|
||||
type: RoleEnum[type],
|
||||
};
|
||||
case 'MSFA_ReceiveDeltagare':
|
||||
return {
|
||||
name: 'Ta emot deltagare',
|
||||
type: RoleEnum[RoleEnum[type]],
|
||||
};
|
||||
case 'MSFA_AuthAdmin':
|
||||
return {
|
||||
name: 'Administrera behörigheter',
|
||||
type: RoleEnum[RoleEnum[type]],
|
||||
};
|
||||
default:
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { TjanstResponse } from './api/tjanst.response.model';
|
||||
|
||||
export interface Tjanst {
|
||||
id: string;
|
||||
id?: string;
|
||||
name: string;
|
||||
code: string;
|
||||
tjanstId: number;
|
||||
tjanstId?: number;
|
||||
}
|
||||
|
||||
export function mapResponseToTjanst(data: TjanstResponse): Tjanst {
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import { UtforandeVerksamhetResponse } from './api/utforande-verksamhet.response.model';
|
||||
|
||||
export interface UtforandeVerksamhet {
|
||||
id: string;
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export function mapUtforandeVerksamhetResponseToUtforandeVerksamhet(
|
||||
data: UtforandeVerksamhetResponse
|
||||
): UtforandeVerksamhet {
|
||||
const { id, label, count } = data;
|
||||
|
||||
return {
|
||||
id,
|
||||
label,
|
||||
count,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user