SUPPORT-9104: create request dtos
This commit is contained in:
parent
e5af1e0f70
commit
eecd976d53
22 changed files with 218 additions and 141 deletions
|
|
@ -1,9 +1,13 @@
|
|||
package ru.micord.ervu.account_applications.component.rpc;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.micord.ervu.account_applications.dao.UserApplicationListDao;
|
||||
import ru.micord.ervu.account_applications.service.RoleServiceImpl;
|
||||
|
||||
import ru.cg.webbpm.modules.webkit.annotations.RpcCall;
|
||||
import ru.cg.webbpm.modules.webkit.annotations.RpcService;
|
||||
|
|
@ -18,6 +22,8 @@ public class UserApplicationListRpcService extends Behavior {
|
|||
|
||||
@Autowired
|
||||
private UserApplicationListDao applicationListDao;
|
||||
@Autowired
|
||||
private RoleServiceImpl roleService;
|
||||
|
||||
@RpcCall
|
||||
public void saveTraceId(String traceId, long appNumber) {
|
||||
|
|
@ -29,4 +35,9 @@ public class UserApplicationListRpcService extends Behavior {
|
|||
public void saveAgreedStatus(long appNumber) {
|
||||
applicationListDao.saveAgreedStatus(appNumber);
|
||||
}
|
||||
|
||||
@RpcCall
|
||||
public List<String> getRemovedRoleIds(String accountId, Set<String> roleIds) {
|
||||
return roleService.fetchRemovedRoleIds(accountId, roleIds);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,28 @@ import {HttpClient} from "@angular/common/http";
|
|||
import {FormField} from "../field/FormField";
|
||||
import {AuthorizationService} from "../../../modules/app/service/authorization.service";
|
||||
import {ApplicationKind} from "../enum/ApplicationKind";
|
||||
import {ProcessRequest} from "./request/ProcessRequest";
|
||||
import {ProcessKey} from "../enum/ProcessKey";
|
||||
import {ProcessResponse} from "./response/ProcessResponse";
|
||||
import {UserApplicationListRpcService} from "../../../generated/ru/micord/ervu/account_applications/component/rpc/UserApplicationListRpcService";
|
||||
import {Account} from "./dto/Account";
|
||||
import {Person} from "./dto/Person";
|
||||
import {Credential} from "./dto/create/Credential";
|
||||
import {Roles} from "./dto/create/Roles";
|
||||
import {CreateAccountRequest} from "./dto/create/CreateAccountRequest";
|
||||
import {CreateAccountData} from "./dto/create/CreateAccountData";
|
||||
import {Role} from "./dto/Role";
|
||||
import {EditPersonData} from "./dto/edit/EditPersonData";
|
||||
import {EditPersonRequest} from "./dto/edit/EditPersonRequest";
|
||||
import {EditAccountData} from "./dto/edit/EditAccountData";
|
||||
import {EditAccountRequest} from "./dto/edit/EditAccountRequest";
|
||||
import {ChangeActivationData} from "./dto/activation/ChangeActivationData";
|
||||
import {ChangeActivationRequest} from "./dto/activation/ChangeActivationRequest";
|
||||
import {EditRolesAccount} from "./dto/edit/EditRolesAccount";
|
||||
import {EditRolesData} from "./dto/edit/EditRolesData";
|
||||
import {EditRolesRequest} from "./dto/edit/EditRolesRequest";
|
||||
import {ResetPasswordAccount} from "./dto/password/ResetPasswordAccount";
|
||||
import {ResetPasswordData} from "./dto/password/ResetPasswordData";
|
||||
import {ResetPasswordRequest} from "./dto/password/ResetPasswordRequest";
|
||||
|
||||
@AnalyticalScope(SaveButton)
|
||||
export class UserManagementService extends Behavior {
|
||||
|
|
@ -42,50 +60,86 @@ export class UserManagementService extends Behavior {
|
|||
return;
|
||||
}
|
||||
let kind = this.applicationKind.getValue();
|
||||
let formJson = this.collectData();
|
||||
let request;
|
||||
let processKey;
|
||||
|
||||
switch (kind) {
|
||||
case ApplicationKind.CREATE_USER:
|
||||
request = ProcessRequest.CREATE;
|
||||
processKey = ProcessKey.CREATE;
|
||||
let createData = new CreateAccountData();
|
||||
createData.credential = this.populateDto(new Credential(), formJson);
|
||||
createData.account = this.populateDto(new Account(), formJson);
|
||||
createData.person = this.populateDto(new Person(), formJson);
|
||||
let roles = new Roles();
|
||||
roles.rolesList = formJson['rolesList'].map(id => {
|
||||
let role = new Role();
|
||||
role.id = id;
|
||||
return role;
|
||||
});
|
||||
createData.roles = roles;
|
||||
request = new CreateAccountRequest();
|
||||
request.data = createData;
|
||||
request.processKey = ProcessKey.CREATE;
|
||||
break;
|
||||
case ApplicationKind.EDIT_USER_MAIN:
|
||||
request = ProcessRequest.EDIT_PERSON;
|
||||
processKey = ProcessKey.EDIT_PERSON;
|
||||
let editPersonData = new EditPersonData();
|
||||
editPersonData.accountId = formJson['accountId'];
|
||||
editPersonData.personData = this.populateDto(new Person(), formJson);
|
||||
request = new EditPersonRequest();
|
||||
request.data = editPersonData;
|
||||
request.processKey = ProcessKey.EDIT_PERSON;
|
||||
break;
|
||||
case ApplicationKind.EDIT_USER_ACCOUNT:
|
||||
request = ProcessRequest.EDIT_ACCOUNT;
|
||||
processKey = ProcessKey.EDIT_ACCOUNT;
|
||||
let editAccountData = new EditAccountData();
|
||||
let account = this.populateDto(new Account(), formJson);
|
||||
account.id = formJson['accountId'];
|
||||
editAccountData.account = account;
|
||||
request = new EditAccountRequest();
|
||||
request.data = editAccountData;
|
||||
request.processKey = ProcessKey.EDIT_ACCOUNT;
|
||||
break;
|
||||
case ApplicationKind.EDIT_USER_ROLES:
|
||||
request = ProcessRequest.EDIT_ROLES;
|
||||
processKey = ProcessKey.EDIT_ROLES;
|
||||
let editRolesAccount = new EditRolesAccount();
|
||||
let accountId = formJson['accountId'];
|
||||
let rolesList = formJson['rolesList'];
|
||||
editRolesAccount.accountId = accountId;
|
||||
editRolesAccount.rolesList = rolesList.map(id => {
|
||||
let role = new Role();
|
||||
role.id = id;
|
||||
return role;
|
||||
});
|
||||
this.rpc.getRemovedRoleIds(accountId, rolesList)
|
||||
.then(list => editRolesAccount.removeRoles = list);
|
||||
let editRolesData = new EditRolesData();
|
||||
editRolesData.account = editRolesAccount;
|
||||
request = new EditRolesRequest();
|
||||
request.data = editRolesData;
|
||||
request.processKey = ProcessKey.EDIT_ROLES;
|
||||
break;
|
||||
case ApplicationKind.BLOCK_USER:
|
||||
request = ProcessRequest.CHANGE_ACTIVATION;
|
||||
processKey = ProcessKey.DEACTIVATE;
|
||||
let deactivationData = new ChangeActivationData();
|
||||
deactivationData.accountIdList = [formJson['accountId']];
|
||||
request = new ChangeActivationRequest();
|
||||
request.data = deactivationData;
|
||||
request.processKey = ProcessKey.DEACTIVATE;
|
||||
break;
|
||||
case ApplicationKind.UNBLOCK_USER:
|
||||
request = ProcessRequest.CHANGE_ACTIVATION;
|
||||
processKey = ProcessKey.ACTIVATE;
|
||||
let activationData = new ChangeActivationData();
|
||||
activationData.accountIdList = [formJson['accountId']];
|
||||
request = new ChangeActivationRequest();
|
||||
request.data = activationData;
|
||||
request.processKey = ProcessKey.ACTIVATE;
|
||||
break;
|
||||
case ApplicationKind.RESET_PASSWORD:
|
||||
request = ProcessRequest.RESET_PASSWORD;
|
||||
processKey = ProcessKey.RESET_PASSWORD;
|
||||
let resetPasswordAccount = new ResetPasswordAccount();
|
||||
resetPasswordAccount.id = formJson['accountId'];
|
||||
let resetPasswordData = new ResetPasswordData();
|
||||
resetPasswordData.account = resetPasswordAccount;
|
||||
request = new ResetPasswordRequest();
|
||||
request.data = resetPasswordData;
|
||||
request.processKey = ProcessKey.RESET_PASSWORD;
|
||||
break;
|
||||
}
|
||||
|
||||
let formJson = this.collectData();
|
||||
this.populateRequest(request, formJson);
|
||||
|
||||
if (request.data.account && request.data.account.id) {
|
||||
request.data.account.id = formJson['accountId'];
|
||||
}
|
||||
else if (request.data.accountIdList) {
|
||||
request.data.accountIdList = [formJson['accountId']];
|
||||
}
|
||||
request.processKey = processKey;
|
||||
request.userId = authService.getUserId();
|
||||
this.doRequest(request, formJson['appNumber']);
|
||||
}
|
||||
|
|
@ -106,25 +160,13 @@ export class UserManagementService extends Behavior {
|
|||
return jsonObj;
|
||||
}
|
||||
|
||||
private populateRequest(request: any, jsonObj: any) {
|
||||
Object.keys(request).forEach(key => {
|
||||
if (key === 'rolesList') {
|
||||
if (jsonObj[key]) {
|
||||
request[key] = jsonObj[key].map(id => ({
|
||||
id: id,
|
||||
finish: ''
|
||||
}));
|
||||
}
|
||||
}
|
||||
else if (typeof request[key] === 'object' && !Array.isArray(request[key])) {
|
||||
this.populateRequest(request[key], jsonObj);
|
||||
}
|
||||
else {
|
||||
if (jsonObj[key]) {
|
||||
request[key] = jsonObj[key];
|
||||
}
|
||||
private populateDto(dto: any, jsonObj: any): any {
|
||||
Object.keys(dto).forEach(key => {
|
||||
if (jsonObj[key]) {
|
||||
dto[key] = jsonObj[key]
|
||||
}
|
||||
});
|
||||
return dto;
|
||||
}
|
||||
|
||||
private doRequest(request: any, appNumber: number): void {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
export class Account {
|
||||
public id: string;
|
||||
public schema: string = "Account";
|
||||
public "user-domain": string = "";
|
||||
public position: string = "";
|
||||
public enabled: boolean = true;
|
||||
public esiaAccount: boolean = false;
|
||||
public start: string = "";
|
||||
public finish: string = "";
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
export class Person {
|
||||
public id: string = "";
|
||||
public surname: string = "";
|
||||
public firstname: string = "";
|
||||
public middlename: string = "";
|
||||
public email: string = "";
|
||||
public birthdate: string = "";
|
||||
public snils: string = "";
|
||||
public ipAddresses: string[] = [];
|
||||
public secondFactorEnabled: boolean = false;
|
||||
public sex: string = "";
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
export class Role {
|
||||
public id: string;
|
||||
public finish: string = "";
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export class ChangeActivationData {
|
||||
public accountIdList: string[];
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {ChangeActivationData} from "./ChangeActivationData";
|
||||
|
||||
export class ChangeActivationRequest {
|
||||
public processKey: string;
|
||||
public userId: string;
|
||||
public data: ChangeActivationData;
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import {Credential} from "./Credential";
|
||||
import {Account} from "../Account";
|
||||
import {Roles} from "./Roles";
|
||||
import {Person} from "../Person";
|
||||
|
||||
export class CreateAccountData {
|
||||
public credential: Credential;
|
||||
public account: Account;
|
||||
public person: Person;
|
||||
public roles: Roles;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {CreateAccountData} from "./CreateAccountData";
|
||||
|
||||
export class CreateAccountRequest {
|
||||
public processKey: string;
|
||||
public userId: string;
|
||||
public data: CreateAccountData;
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export class Credential {
|
||||
public userName: string = "";
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import {Role} from "../Role";
|
||||
|
||||
export class Roles {
|
||||
public rolesList: Role[] = [];
|
||||
public removeRoles: string[] = [];
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
import {Account} from "../Account";
|
||||
|
||||
export class EditAccountData {
|
||||
public account: Account;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {EditAccountData} from "./EditAccountData";
|
||||
|
||||
export class EditAccountRequest {
|
||||
public processKey: string;
|
||||
public userId: string;
|
||||
public data: EditAccountData;
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import {Person} from "../Person";
|
||||
|
||||
export class EditPersonData {
|
||||
public accountId: string;
|
||||
public personData: Person;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {EditPersonData} from "./EditPersonData";
|
||||
|
||||
export class EditPersonRequest {
|
||||
public processKey: string;
|
||||
public userId: string;
|
||||
public data: EditPersonData;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {Role} from "../Role";
|
||||
|
||||
export class EditRolesAccount {
|
||||
public accountId: string;
|
||||
public rolesList: Role[] = [];
|
||||
public removeRoles: string[] = [];
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
import {EditRolesAccount} from "./EditRolesAccount";
|
||||
|
||||
export class EditRolesData {
|
||||
public account: EditRolesAccount;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {EditRolesData} from "./EditRolesData";
|
||||
|
||||
export class EditRolesRequest {
|
||||
public processKey: string;
|
||||
public userId: string;
|
||||
public data: EditRolesData;
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export class ResetPasswordAccount {
|
||||
public id: string;
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
import {ResetPasswordAccount} from "./ResetPasswordAccount";
|
||||
|
||||
export class ResetPasswordData {
|
||||
public account: ResetPasswordAccount;
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import {ResetPasswordData} from "./ResetPasswordData";
|
||||
|
||||
export class ResetPasswordRequest {
|
||||
public processKey: string;
|
||||
public userId: string;
|
||||
public data: ResetPasswordData;
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
export class ProcessRequest {
|
||||
public static CREATE = {
|
||||
processKey: "",
|
||||
userId: "",
|
||||
data: {
|
||||
credential: {
|
||||
userName: ""
|
||||
},
|
||||
account: {
|
||||
schema: "Account",
|
||||
"user-domain": "",
|
||||
position: "",
|
||||
enabled: true,
|
||||
esiaAccount: false,
|
||||
start: "",
|
||||
finish: ""
|
||||
},
|
||||
person: {
|
||||
id: "",
|
||||
surname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
email: "",
|
||||
birthdate: "",
|
||||
snils: "",
|
||||
ipAddresses: [],
|
||||
secondFactorEnabled: false,
|
||||
sex: ""
|
||||
},
|
||||
roles: {
|
||||
rolesList: [],
|
||||
removeRoles: []
|
||||
}
|
||||
}
|
||||
};
|
||||
public static EDIT_PERSON = {
|
||||
processKey: "",
|
||||
userId: "",
|
||||
data: {
|
||||
accountId: "",
|
||||
personData: {
|
||||
id: "",
|
||||
surname: "",
|
||||
firstname: "",
|
||||
middlename: "",
|
||||
email: "",
|
||||
birthdate: "",
|
||||
snils: "",
|
||||
ipAddresses: [],
|
||||
secondFactorEnabled: false,
|
||||
sex: ""
|
||||
}
|
||||
}
|
||||
};
|
||||
public static EDIT_ACCOUNT = {
|
||||
processKey: "",
|
||||
userId: "",
|
||||
data: {
|
||||
account: {
|
||||
id: "",
|
||||
schema: "Account",
|
||||
"user-domain": "",
|
||||
position: "",
|
||||
enabled: true,
|
||||
esiaAccount: false,
|
||||
start: "",
|
||||
finish: ""
|
||||
}
|
||||
}
|
||||
};
|
||||
public static EDIT_ROLES = {
|
||||
processKey: "",
|
||||
userId: "",
|
||||
data: {
|
||||
account: {
|
||||
accountId: "",
|
||||
rolesList: [],
|
||||
removeRoles: []
|
||||
}
|
||||
}
|
||||
};
|
||||
public static CHANGE_ACTIVATION = {
|
||||
processKey: "",
|
||||
userId: "",
|
||||
data: {
|
||||
accountIdList: []
|
||||
}
|
||||
};
|
||||
public static RESET_PASSWORD = {
|
||||
processKey: "",
|
||||
userId: "",
|
||||
data: {
|
||||
account: {
|
||||
id: ""
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue