Remove dead code
This commit is contained in:
parent
e1494d5bf4
commit
dfae77de58
@ -1,4 +1,3 @@
|
|||||||
export { default as Services } from './services/service';
|
export { default as Services } from './services/service';
|
||||||
export { default as Database } from './services/database.service';
|
export { default as Database } from './services/database.service';
|
||||||
export { MessageType } from './models/process.model';
|
export { MessageType } from './models/process.model';
|
||||||
export type { ProfileData, ProfileMessage } from './models/process.model';
|
|
||||||
|
101
src/router.ts
101
src/router.ts
@ -8,7 +8,7 @@ import { cleanSubscriptions } from './utils/subscription.utils';
|
|||||||
import { LoginComponent } from './pages/home/home-component';
|
import { LoginComponent } from './pages/home/home-component';
|
||||||
import { prepareAndSendPairingTx } from './utils/sp-address.utils';
|
import { prepareAndSendPairingTx } from './utils/sp-address.utils';
|
||||||
import ModalService from './services/modal.service';
|
import ModalService from './services/modal.service';
|
||||||
import { MessageType, ProfileData, FolderData, LinkAcceptedMessage } from './models/process.model';
|
import { MessageType } from './models/process.model';
|
||||||
|
|
||||||
const routes: { [key: string]: string } = {
|
const routes: { [key: string]: string } = {
|
||||||
home: '/src/pages/home/home.html',
|
home: '/src/pages/home/home.html',
|
||||||
@ -216,7 +216,7 @@ export async function registerAllListeners() {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const tokens = await tokenService.generateSessionToken(event.origin);
|
const tokens = await tokenService.generateSessionToken(event.origin);
|
||||||
const acceptedMsg: LinkAcceptedMessage = {
|
const acceptedMsg = {
|
||||||
type: MessageType.LINK_ACCEPTED,
|
type: MessageType.LINK_ACCEPTED,
|
||||||
accessToken: tokens.accessToken,
|
accessToken: tokens.accessToken,
|
||||||
refreshToken: tokens.refreshToken
|
refreshToken: tokens.refreshToken
|
||||||
@ -231,46 +231,6 @@ export async function registerAllListeners() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleAddProfile = async (event: MessageEvent) => {
|
|
||||||
if (event.data.type !== MessageType.CREATE_PROFILE) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!services.isPaired()) {
|
|
||||||
const errorMsg = 'Device not paired';
|
|
||||||
errorResponse(errorMsg, event.origin);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const { profileData, accessToken } = event.data;
|
|
||||||
|
|
||||||
if (!accessToken || await !tokenService.validateToken(accessToken, event.origin)) {
|
|
||||||
throw new Error('Invalid or expired session token');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create profile
|
|
||||||
const { processId, process } = await services.createAndSendProfileTx(profileData);
|
|
||||||
|
|
||||||
const res = {
|
|
||||||
processId,
|
|
||||||
process,
|
|
||||||
profileData,
|
|
||||||
};
|
|
||||||
|
|
||||||
window.parent.postMessage(
|
|
||||||
{
|
|
||||||
type: MessageType.PROFILE_CREATED,
|
|
||||||
profileCreated: res,
|
|
||||||
},
|
|
||||||
event.origin
|
|
||||||
);
|
|
||||||
} catch (e) {
|
|
||||||
const errorMsg = `Failed to create profile: ${e}`;
|
|
||||||
errorResponse(errorMsg, event.origin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleGetMyProcesses = async (event: MessageEvent) => {
|
const handleGetMyProcesses = async (event: MessageEvent) => {
|
||||||
if (event.data.type !== MessageType.GET_MY_PROCESSES) {
|
if (event.data.type !== MessageType.GET_MY_PROCESSES) {
|
||||||
return;
|
return;
|
||||||
@ -309,8 +269,22 @@ export async function registerAllListeners() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// const tokenService = await TokenService.getInstance();
|
||||||
|
|
||||||
|
// if (!services.isPaired()) {
|
||||||
|
// const errorMsg = 'Device not paired';
|
||||||
|
// errorResponse(errorMsg, event.origin);
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// const { profileData, accessToken } = event.data;
|
||||||
|
|
||||||
|
// // Validate the session token
|
||||||
|
// if (!accessToken || !tokenService.validateToken(accessToken, event.origin)) {
|
||||||
|
// throw new Error('Invalid or expired session token');
|
||||||
|
// }
|
||||||
|
|
||||||
const processes = await services.getProcesses();
|
const processes = await services.getProcesses();
|
||||||
|
|
||||||
window.parent.postMessage(
|
window.parent.postMessage(
|
||||||
@ -326,45 +300,6 @@ export async function registerAllListeners() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleAddFolder = async (event: MessageEvent) => {
|
|
||||||
if (event.data.type !== MessageType.CREATE_FOLDER) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!services.isPaired()) {
|
|
||||||
const errorMsg = 'Device not paired';
|
|
||||||
errorResponse(errorMsg, event.origin);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const { folderData, accessToken } = event.data;
|
|
||||||
|
|
||||||
if (!accessToken || await !tokenService.validateToken(accessToken, event.origin)) {
|
|
||||||
throw new Error('Invalid or expired session token');
|
|
||||||
}
|
|
||||||
|
|
||||||
const { processId, process } = await services.createAndSendFolderTx(folderData);
|
|
||||||
|
|
||||||
const res = {
|
|
||||||
processId,
|
|
||||||
process,
|
|
||||||
folderData,
|
|
||||||
};
|
|
||||||
|
|
||||||
window.parent.postMessage(
|
|
||||||
{
|
|
||||||
type: MessageType.FOLDER_CREATED,
|
|
||||||
folderCreated: res,
|
|
||||||
},
|
|
||||||
event.origin
|
|
||||||
);
|
|
||||||
} catch (e) {
|
|
||||||
const errorMsg = `Failed to create folder: ${e}`;
|
|
||||||
errorResponse(errorMsg, event.origin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// We got a state for some process and return as many clear attributes as we can
|
/// We got a state for some process and return as many clear attributes as we can
|
||||||
const handleDecryptState = async (event: MessageEvent) => {
|
const handleDecryptState = async (event: MessageEvent) => {
|
||||||
if (event.data.type !== MessageType.RETRIEVE_DATA) {
|
if (event.data.type !== MessageType.RETRIEVE_DATA) {
|
||||||
@ -626,10 +561,8 @@ export async function registerAllListeners() {
|
|||||||
|
|
||||||
// Remove before adding to be sure there's no duplicate
|
// Remove before adding to be sure there's no duplicate
|
||||||
window.removeEventListener('message', handleRequestLink);
|
window.removeEventListener('message', handleRequestLink);
|
||||||
window.removeEventListener('message', handleAddProfile);
|
|
||||||
window.removeEventListener('message', handleGetProcesses);
|
window.removeEventListener('message', handleGetProcesses);
|
||||||
window.removeEventListener('message', handleGetMyProcesses);
|
window.removeEventListener('message', handleGetMyProcesses);
|
||||||
window.removeEventListener('message', handleAddFolder);
|
|
||||||
window.removeEventListener('message', handleDecryptState);
|
window.removeEventListener('message', handleDecryptState);
|
||||||
window.removeEventListener('message', handleValidateToken);
|
window.removeEventListener('message', handleValidateToken);
|
||||||
window.removeEventListener('message', handleRenewToken);
|
window.removeEventListener('message', handleRenewToken);
|
||||||
@ -639,10 +572,8 @@ export async function registerAllListeners() {
|
|||||||
window.removeEventListener('message', handleNotifyUpdate);
|
window.removeEventListener('message', handleNotifyUpdate);
|
||||||
|
|
||||||
window.addEventListener('message', handleRequestLink);
|
window.addEventListener('message', handleRequestLink);
|
||||||
window.addEventListener('message', handleAddProfile);
|
|
||||||
window.addEventListener('message', handleGetProcesses);
|
window.addEventListener('message', handleGetProcesses);
|
||||||
window.addEventListener('message', handleGetMyProcesses);
|
window.addEventListener('message', handleGetMyProcesses);
|
||||||
window.addEventListener('message', handleAddFolder);
|
|
||||||
window.addEventListener('message', handleDecryptState);
|
window.addEventListener('message', handleDecryptState);
|
||||||
window.addEventListener('message', handleValidateToken);
|
window.addEventListener('message', handleValidateToken);
|
||||||
window.addEventListener('message', handleRenewToken);
|
window.addEventListener('message', handleRenewToken);
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
// import { WebSocketClient } from '../websockets';
|
|
||||||
import { INotification } from '~/models/notification.model';
|
import { INotification } from '~/models/notification.model';
|
||||||
import { IProcess } from '~/models/process.model';
|
import { IProcess } from '~/models/process.model';
|
||||||
// import Database from './database';
|
|
||||||
import { initWebsocket, sendMessage } from '../websockets';
|
import { initWebsocket, sendMessage } from '../websockets';
|
||||||
import { ApiReturn, Device, HandshakeMessage, Member, OutPointProcessMap, Process, ProcessState, RoleDefinition, SecretsStore, UserDiff } from '../../pkg/sdk_client';
|
import { ApiReturn, Device, HandshakeMessage, Member, OutPointProcessMap, Process, ProcessState, RoleDefinition, SecretsStore, UserDiff } from '../../pkg/sdk_client';
|
||||||
import ModalService from './modal.service';
|
import ModalService from './modal.service';
|
||||||
@ -372,376 +370,6 @@ export default class Services {
|
|||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async createDmProcess(
|
|
||||||
otherMember: string[],
|
|
||||||
): Promise<ApiReturn> {
|
|
||||||
if (otherMember.length === 0) {
|
|
||||||
throw new Error('Can\'t open dm with empty user');
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
console.log('🚀 Début createDmProcess');
|
|
||||||
console.log('👥 Other Member:', otherMember);
|
|
||||||
|
|
||||||
if (!this.isPaired()) {
|
|
||||||
throw new Error('Device not paired');
|
|
||||||
}
|
|
||||||
|
|
||||||
const myAddresses = await this.getMemberFromDevice();
|
|
||||||
console.log('🔑 Mes adresses:', myAddresses);
|
|
||||||
|
|
||||||
if (!myAddresses) {
|
|
||||||
throw new Error('No paired member found');
|
|
||||||
}
|
|
||||||
|
|
||||||
const roles = {
|
|
||||||
demiurge: {
|
|
||||||
members: [
|
|
||||||
{ sp_addresses: myAddresses },
|
|
||||||
],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.01,
|
|
||||||
fields: ['message', 'description', 'roles'],
|
|
||||||
min_sig_member: 0.01,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
dm: {
|
|
||||||
members: [
|
|
||||||
{ sp_addresses: myAddresses },
|
|
||||||
{ sp_addresses: otherMember }
|
|
||||||
],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.01,
|
|
||||||
fields: ['message', 'description'],
|
|
||||||
min_sig_member: 0.01,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const dmTemplate = {
|
|
||||||
description: 'dm',
|
|
||||||
message: '',
|
|
||||||
};
|
|
||||||
|
|
||||||
console.log('📋 Template final:', JSON.stringify(dmTemplate, null, 2));
|
|
||||||
|
|
||||||
const relayAddress = this.getAllRelays()[0]['spAddress'];
|
|
||||||
const feeRate = 1;
|
|
||||||
const publicData = {};
|
|
||||||
|
|
||||||
await this.checkConnections ([{ sp_addresses: otherMember }]);
|
|
||||||
|
|
||||||
const result = this.sdkClient.create_new_process (
|
|
||||||
dmTemplate,
|
|
||||||
roles,
|
|
||||||
publicData,
|
|
||||||
relayAddress,
|
|
||||||
feeRate
|
|
||||||
);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
console.error('❌ Erreur:', e);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async createNotaryProcess(notaryTokens: string[] | null): Promise<ApiReturn> {
|
|
||||||
const notaryProcess = await this.lookForNotaryProcess();
|
|
||||||
if (notaryProcess) {
|
|
||||||
console.log('NOTARY PROCESS:', notaryProcess);
|
|
||||||
throw new Error('There is already a notary process');
|
|
||||||
}
|
|
||||||
const myProcessId: string = this.getPairingProcessId();
|
|
||||||
const roles: Record<string, RoleDefinition> = {
|
|
||||||
notary: {
|
|
||||||
members: [myProcessId],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0,
|
|
||||||
fields: ['roles', 'idNotTokens'],
|
|
||||||
min_sig_member: 0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const pairingTemplate = {
|
|
||||||
description: 'notary',
|
|
||||||
};
|
|
||||||
const publicData = {
|
|
||||||
idNotTokens: notaryTokens,
|
|
||||||
}
|
|
||||||
const relayAddress = this.getAllRelays()[0]['spAddress'];
|
|
||||||
const feeRate = 1;
|
|
||||||
|
|
||||||
await this.getTokensFromFaucet();
|
|
||||||
|
|
||||||
try {
|
|
||||||
return this.sdkClient.create_new_process(
|
|
||||||
pairingTemplate,
|
|
||||||
roles,
|
|
||||||
publicData,
|
|
||||||
relayAddress,
|
|
||||||
feeRate,
|
|
||||||
this.getAllMembers()
|
|
||||||
);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`Creating process failed:, ${e}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async createProfileProcess(userData: any): Promise<ApiReturn> {
|
|
||||||
const myProcessId: string = this.getPairingProcessId();
|
|
||||||
if (!myProcessId) {
|
|
||||||
throw new Error('Missing pairing id');
|
|
||||||
}
|
|
||||||
|
|
||||||
const validator = userData['validator'];
|
|
||||||
|
|
||||||
delete userData.validator; // We don't want that in the final pcd
|
|
||||||
|
|
||||||
const privateData = {
|
|
||||||
description: 'profile',
|
|
||||||
...userData,
|
|
||||||
};
|
|
||||||
const publicData = {
|
|
||||||
identityCertified: false,
|
|
||||||
};
|
|
||||||
const ownerRoleFields: string[] = [...Object.keys(privateData), 'roles'];
|
|
||||||
const validatorRoleFields: string[] = [...Object.keys(publicData)];
|
|
||||||
const roles: Record<string, RoleDefinition> = {
|
|
||||||
demiurge: {
|
|
||||||
members: [myProcessId],
|
|
||||||
validation_rules: [],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
owner: {
|
|
||||||
members: [myProcessId],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.01,
|
|
||||||
fields: ownerRoleFields,
|
|
||||||
min_sig_member: 0.01,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
idCertificator: {
|
|
||||||
members: [validator],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 1.0,
|
|
||||||
fields: validatorRoleFields,
|
|
||||||
min_sig_member: 1.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
quorum: 0.0,
|
|
||||||
fields: ownerRoleFields,
|
|
||||||
min_sig_member: 0.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
blm: {
|
|
||||||
members: [],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.0,
|
|
||||||
fields: [
|
|
||||||
'description',
|
|
||||||
'name',
|
|
||||||
'lastName',
|
|
||||||
],
|
|
||||||
min_sig_member: 0.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
await this.getTokensFromFaucet();
|
|
||||||
|
|
||||||
try {
|
|
||||||
return this.createProcess(
|
|
||||||
privateData,
|
|
||||||
publicData,
|
|
||||||
roles,
|
|
||||||
)
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`Creating process failed:, ${e}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// create a process for folder
|
|
||||||
public async createFolderProcess(folderData: any): Promise<ApiReturn> {
|
|
||||||
const myProcessId: string = this.getPairingProcessId();
|
|
||||||
if (!myProcessId) {
|
|
||||||
throw new Error('Missing pairing id');
|
|
||||||
}
|
|
||||||
|
|
||||||
const privateData = {
|
|
||||||
description: 'folder',
|
|
||||||
documents: [],
|
|
||||||
notes: [],
|
|
||||||
...folderData,
|
|
||||||
};
|
|
||||||
const ownerRoleFields = [...Object.keys(privateData), 'roles'];
|
|
||||||
const stakeholdersRoleFields = ['documents', 'notes'];
|
|
||||||
|
|
||||||
const roles: Record<string, RoleDefinition> = {
|
|
||||||
owner: {
|
|
||||||
members: [myProcessId],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.01,
|
|
||||||
fields: ownerRoleFields,
|
|
||||||
min_sig_member: 0.01,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
stakeholder: {
|
|
||||||
members: folderData.stakeholders,
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.01,
|
|
||||||
fields: stakeholdersRoleFields,
|
|
||||||
min_sig_member: 0.01,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
},
|
|
||||||
customer: {
|
|
||||||
members: [],
|
|
||||||
validation_rules: [
|
|
||||||
{
|
|
||||||
quorum: 0.0,
|
|
||||||
fields: stakeholdersRoleFields,
|
|
||||||
min_sig_member: 0.0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
storages: [STORAGEURL]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
await this.getTokensFromFaucet();
|
|
||||||
|
|
||||||
try {
|
|
||||||
return this.createProcess(
|
|
||||||
privateData,
|
|
||||||
{},
|
|
||||||
roles
|
|
||||||
)
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`Creating folder process failed: ${e}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public MOCK_NOTARY = {
|
|
||||||
at_hash: "DQLI1_Wg0853tf0qf8BYxghzIXaMBaQu4UWz07iG7o",
|
|
||||||
sub: "IDN26889949I",
|
|
||||||
profile_id: "IDN26889949I_IDN009850",
|
|
||||||
arm: "1",
|
|
||||||
iss: "https://connexion.idnot.fr/idPOAuth2/idnot_idp_v1",
|
|
||||||
given_name: "Marie",
|
|
||||||
aud: "BB715912AFEEC6D1",
|
|
||||||
nbf: "1669713096",
|
|
||||||
auth_time: "1669713195",
|
|
||||||
entity_id: "IDN009850",
|
|
||||||
name: "DUPONT",
|
|
||||||
exp: "1669720396",
|
|
||||||
iat: "1669713196",
|
|
||||||
email: "marie.dupont@notaires.fr"
|
|
||||||
};
|
|
||||||
|
|
||||||
// This look for the process that holds all the notaries
|
|
||||||
// private async lookForNotaryProcess(): Promise<string | null> {
|
|
||||||
// const processes = await this.getProcesses();
|
|
||||||
// for (const processId of Object.keys(processes)) {
|
|
||||||
// try {
|
|
||||||
// const process = await this.getProcess(processId);
|
|
||||||
|
|
||||||
// const roles = this.getRoles(process);
|
|
||||||
// if (!roles) {
|
|
||||||
// console.error('Failed to getRoles');
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
// const roleKeys = Object.keys(roles);
|
|
||||||
|
|
||||||
// if (roleKeys.includes("notary")) {
|
|
||||||
// let publicData;
|
|
||||||
// const lastCommitedState = this.getLastCommitedState(process);
|
|
||||||
|
|
||||||
// // If we don't have a commited state, the notary process might be in initialization phase
|
|
||||||
// if (lastCommitedState) {
|
|
||||||
// publicData = lastCommitedState.public_data;
|
|
||||||
// } else {
|
|
||||||
// console.log(`Fallback to first, uncommited state`);
|
|
||||||
// publicData = process.states[0].public_data;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const publicDataKeys = Object.keys(publicData);
|
|
||||||
|
|
||||||
// if (publicDataKeys.includes("idNotTokens")){
|
|
||||||
// return processId;
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// } catch (e) {
|
|
||||||
// console.error(e);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// private async checkIfNotary(): Promise<string | null> {
|
|
||||||
// const processes = await this.getMyProcesses();
|
|
||||||
// if (!processes) {
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
// for (const processId of processes) {
|
|
||||||
// try {
|
|
||||||
// const process = await this.getProcess(processId);
|
|
||||||
// const lastCommitedState = this.getLastCommitedState(process);
|
|
||||||
|
|
||||||
// if (lastCommitedState) {
|
|
||||||
// const fields = lastCommitedState.pcd_commitment;
|
|
||||||
// const fieldsKeys = Object.keys(fields);
|
|
||||||
// const publicData = lastCommitedState.public_data;
|
|
||||||
|
|
||||||
// if (fieldsKeys.includes("idNot") || publicData.identityCertified) {
|
|
||||||
// console.log(`Found idNot in profile ${processId}, member is notary`);
|
|
||||||
// return processId;
|
|
||||||
// } else {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// } catch (e) {
|
|
||||||
// console.error(e);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public async updateProcess(process: Process, privateData: Record<string, any>, publicData: Record<string, any>, roles: Record<string, RoleDefinition> | null): Promise<ApiReturn> {
|
public async updateProcess(process: Process, privateData: Record<string, any>, publicData: Record<string, any>, roles: Record<string, RoleDefinition> | null): Promise<ApiReturn> {
|
||||||
// If roles is null, we just take the last commited state roles
|
// If roles is null, we just take the last commited state roles
|
||||||
if (!roles) {
|
if (!roles) {
|
||||||
@ -936,8 +564,9 @@ export default class Services {
|
|||||||
|
|
||||||
if (updatedProcess.encrypted_data && Object.keys(updatedProcess.encrypted_data).length != 0) {
|
if (updatedProcess.encrypted_data && Object.keys(updatedProcess.encrypted_data).length != 0) {
|
||||||
for (const [hash, cipher] of Object.entries(updatedProcess.encrypted_data)) {
|
for (const [hash, cipher] of Object.entries(updatedProcess.encrypted_data)) {
|
||||||
// console.log(hash);
|
// console.log('Saving encrypted data');
|
||||||
// console.log(cipher);
|
// console.log(`hash: ${hash}`);
|
||||||
|
// console.log(`cipher: ${cipher}`);
|
||||||
const blob = this.hexToBlob(cipher);
|
const blob = this.hexToBlob(cipher);
|
||||||
try {
|
try {
|
||||||
await this.saveBlobToDb(hash, blob);
|
await this.saveBlobToDb(hash, blob);
|
||||||
@ -1811,135 +1440,6 @@ export default class Services {
|
|||||||
return await this.updateProcess(process, {}, publicData, null);
|
return await this.updateProcess(process, {}, publicData, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async createAndSendNotaryTx(): Promise<void> {
|
|
||||||
try {
|
|
||||||
await this.checkConnections([]);
|
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const createNotaryProcessReturn = await this.createNotaryProcess(
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
if (!createNotaryProcessReturn.updated_process) {
|
|
||||||
throw new Error('createNotaryProcessReturn returned an empty new process');
|
|
||||||
}
|
|
||||||
await this.handleApiReturn(createNotaryProcessReturn);
|
|
||||||
|
|
||||||
this.setProcessId(createNotaryProcessReturn.updated_process.process_id);
|
|
||||||
console.log('PROCESS NOTARY:', createNotaryProcessReturn.updated_process.process_id);
|
|
||||||
this.setStateId(createNotaryProcessReturn.updated_process.current_process.states[0].state_id);
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const createPrdUpdateReturn = await this.createPrdUpdate(this.processId!, this.stateId!);
|
|
||||||
await this.handleApiReturn(createPrdUpdateReturn);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`createPrdUpdate failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const approveChangeReturn = await this.approveChange(this.processId!, this.stateId!);
|
|
||||||
await this.handleApiReturn(approveChangeReturn);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`approveChange failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.processId = null;
|
|
||||||
this.stateId = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async createAndSendProfileTx(userData: any): Promise<{ processId: string, process: Process }> {
|
|
||||||
try {
|
|
||||||
const createProfileProcessReturn = await this.createProfileProcess(
|
|
||||||
userData,
|
|
||||||
);
|
|
||||||
await this.handleApiReturn(createProfileProcessReturn);
|
|
||||||
|
|
||||||
this.setProcessId(createProfileProcessReturn.updated_process!.process_id);
|
|
||||||
this.setStateId(createProfileProcessReturn.updated_process!.current_process.states[0].state_id);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`createProfileProcess failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const createPrdUpdateReturn = await this.createPrdUpdate(this.processId!, this.stateId!);
|
|
||||||
await this.handleApiReturn(createPrdUpdateReturn);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`createPrdUpdate failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const approveChangeReturn = await this.approveChange(this.processId!, this.stateId!);
|
|
||||||
await this.handleApiReturn(approveChangeReturn);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`approveChange failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the new process from db
|
|
||||||
const processId = this.processId!;
|
|
||||||
this.setProcessId(null);
|
|
||||||
this.setStateId(null);
|
|
||||||
const profileProcess = await this.getProcess(processId);
|
|
||||||
if (profileProcess) {
|
|
||||||
return {processId, process: profileProcess};
|
|
||||||
} else {
|
|
||||||
console.error('Failed to retrieve newly created profile process'); // This shouldn't happen
|
|
||||||
return { processId, process: { states: [] } };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async createAndSendFolderTx(folderData: any): Promise<{ processId: string, process: Process }> {
|
|
||||||
try {
|
|
||||||
await this.checkConnections([]);
|
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
console.log("folderData", folderData);
|
|
||||||
const createFolderProcessReturn = await this.createFolderProcess(
|
|
||||||
folderData,
|
|
||||||
);
|
|
||||||
await this.handleApiReturn(createFolderProcessReturn);
|
|
||||||
|
|
||||||
this.setProcessId(createFolderProcessReturn.updated_process!.process_id);
|
|
||||||
this.setStateId(createFolderProcessReturn.updated_process!.current_process.states[0].state_id);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`createFolderProcess failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const createPrdUpdateReturn = await this.createPrdUpdate(this.processId!, this.stateId!);
|
|
||||||
await this.handleApiReturn(createPrdUpdateReturn);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`createPrdUpdate failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const approveChangeReturn = await this.approveChange(this.processId!, this.stateId!);
|
|
||||||
await this.handleApiReturn(approveChangeReturn);
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(`approveChange failed: ${e}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the new process from db
|
|
||||||
const processId = this.processId!;
|
|
||||||
this.setProcessId(null);
|
|
||||||
this.setStateId(null);
|
|
||||||
console.log(`createAndSendFolderTx ~ processId: ${processId}`);
|
|
||||||
const folderProcess = await this.getProcess(processId);
|
|
||||||
if (folderProcess) {
|
|
||||||
return { processId, process: folderProcess };
|
|
||||||
} else {
|
|
||||||
console.error('Failed to retrieve newly created folder process'); // This shouldn't happen
|
|
||||||
return { processId, process: { states: [] } };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async generateProcessPdf(processId: string, processState: ProcessState): Promise<void> {
|
public async generateProcessPdf(processId: string, processState: ProcessState): Promise<void> {
|
||||||
const pdfDoc = await PDFDocument.create();
|
const pdfDoc = await PDFDocument.create();
|
||||||
const page = pdfDoc.addPage([595.28, 841.89]);
|
const page = pdfDoc.addPage([595.28, 841.89]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user