fix: Refactoring prepareAndSendPairingTx to ensure auto-pairing workflow
This commit is contained in:
parent
99e7793fbb
commit
2ab9bd2976
@ -159,40 +159,64 @@ async function onCreateButtonClick() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Une constante est plus claire qu'une 'magic string' ("")
|
||||||
|
const DEFAULT_PAIRING_PAYLOAD = '';
|
||||||
|
|
||||||
export async function prepareAndSendPairingTx(): Promise<void> {
|
export async function prepareAndSendPairingTx(): Promise<void> {
|
||||||
const service = await Services.getInstance();
|
const service = await Services.getInstance();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const relayAddress = service.getAllRelays();
|
// 1. Création du processus d'appairage
|
||||||
const createPairingProcessReturn = await service.createPairingProcess('', []);
|
// const relayAddress = service.getAllRelays(); // <-- Cette variable n'était pas utilisée
|
||||||
|
const createPairingProcessReturn = await service.createPairingProcess(DEFAULT_PAIRING_PAYLOAD, []);
|
||||||
|
|
||||||
if (!createPairingProcessReturn.updated_process) {
|
if (!createPairingProcessReturn.updated_process) {
|
||||||
throw new Error('createPairingProcess returned an empty new process');
|
throw new Error('createPairingProcess returned an empty new process');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
// Utilisation du "destructuring" pour assigner les variables
|
||||||
await service.ensureConnections(createPairingProcessReturn.updated_process.current_process, createPairingProcessReturn.updated_process.current_process.states[0].state_id);
|
const { process_id: pairingId, current_process: process } = createPairingProcessReturn.updated_process;
|
||||||
} catch (e) {
|
|
||||||
throw e;
|
// Ajout d'une vérification pour éviter les erreurs si states est vide
|
||||||
|
if (!process.states || process.states.length === 0) {
|
||||||
|
throw new Error('Le processus reçu ne contient aucun état (state)');
|
||||||
}
|
}
|
||||||
|
const stateId = process.states[0].state_id;
|
||||||
|
|
||||||
service.setProcessId(createPairingProcessReturn.updated_process.process_id);
|
// 2. Assurer les connexions
|
||||||
service.setStateId(createPairingProcessReturn.updated_process.current_process.states[0].state_id);
|
await service.ensureConnections(process, stateId);
|
||||||
|
|
||||||
// Update device.pairing_process_commitment with the process_id
|
// 3. Mettre à jour l'état du service
|
||||||
|
service.setProcessId(pairingId);
|
||||||
|
service.setStateId(stateId);
|
||||||
|
|
||||||
|
// 4. Appairer le 'device'
|
||||||
|
service.pairDevice(pairingId, [service.getDeviceAddress()]);
|
||||||
|
|
||||||
|
// 5. Mettre à jour la BDD
|
||||||
try {
|
try {
|
||||||
const currentDevice = await service.getDeviceFromDatabase();
|
const currentDevice = await service.getDeviceFromDatabase();
|
||||||
if (currentDevice) {
|
if (currentDevice) {
|
||||||
currentDevice.pairing_process_commitment = createPairingProcessReturn.updated_process.process_id;
|
currentDevice.pairing_process_commitment = pairingId;
|
||||||
await service.saveDeviceInDatabase(currentDevice);
|
await service.saveDeviceInDatabase(currentDevice);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Failed to update device pairing_process_commitment:', err);
|
console.error('Échec non-critique de la mise à jour BDD (pairing_process_commitment):', err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 6. Gérer les étapes suivantes du processus
|
||||||
await service.handleApiReturn(createPairingProcessReturn);
|
await service.handleApiReturn(createPairingProcessReturn);
|
||||||
|
|
||||||
|
const createPrdUpdateReturn = await service.createPrdUpdate(pairingId, stateId);
|
||||||
|
await service.handleApiReturn(createPrdUpdateReturn);
|
||||||
|
|
||||||
|
const approveChangeReturn = await service.approveChange(pairingId, stateId);
|
||||||
|
await service.handleApiReturn(approveChangeReturn);
|
||||||
|
|
||||||
|
// await service.confirmPairing();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error("Le processus d'appairage a échoué :", err);
|
||||||
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,3 +244,4 @@ export async function generateCreateBtn() {
|
|||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user