fixed double send coins... if user clicked twice.

This commit is contained in:
Paolo Arena
2022-10-13 21:10:07 +02:00
parent 58d9885ca2
commit 9f5bbb188a
8 changed files with 105 additions and 24 deletions

View File

@@ -17,6 +17,7 @@ const {MyGroup} = require('../models/mygroup');
const {Circuit} = require('../models/circuit');
const {Account} = require('../models/account');
const {Movement} = require('../models/movement');
const {ObjectID} = require('mongodb');
@@ -2131,6 +2132,8 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
UserSchema.statics.setCircuitCmd = async function(idapp, usernameOrig, circuitname, cmd, value, username_action, extrarec) {
// console.log('setCircuitCmd', cmd);
const {SendNotif} = require('../models/sendnotif');
let ris = null;
@@ -2262,8 +2265,10 @@ UserSchema.statics.setCircuitCmd = async function(idapp, usernameOrig, circuitna
if (outres.cansend) {
// Invia una notifica di moneta alla persona
outres.result = await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action,
const out = await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action,
extrarec);
if (out)
outres.result = out.ris;
} else {
outres.cansend = false;
}
@@ -2277,6 +2282,8 @@ UserSchema.statics.setCircuitCmd = async function(idapp, usernameOrig, circuitna
errormsg: '',
};
let outcheck = outres;
let risStatus = '';
const status = await SendNotif.getStatus(extrarec.notifId);
if (status === shared_consts.CircuitsNotif.STATUS_ACCEPTED) {
@@ -2284,15 +2291,27 @@ UserSchema.statics.setCircuitCmd = async function(idapp, usernameOrig, circuitna
} else if (status === shared_consts.CircuitsNotif.STATUS_REFUSED) {
risStatus = i18n.__('STATUS_REFUSED');
}
if (!await SendNotif.checkIfCoinsAlreadySent(extrarec.notifId)) {
// if (!await SendNotif.checkIfCoinsAlreadySent(extrarec.notifId)) {
if (!await Movement.checkIfCoinsAlreadySent(extrarec.notifId)) {
if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) {
outres = await Circuit.sendCoins(false, idapp, usernameOrig, extrarec);
outcheck = await Circuit.sendCoins(true, idapp, usernameOrig, extrarec);
} else {
outcheck.cansend = true;
outres.cansend = true;
}
// Invia una notifica di moneta (accettata o rifiutata) alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT && outcheck.cansend) {
if (!await Movement.checkIfCoinsAlreadySent(extrarec.notifId)) {
outres = await Circuit.sendCoins(false, idapp, usernameOrig, extrarec);
} else {
outcheck.cansend = false; //GIA INVIATO
}
}
if (outcheck.cansend) {
// Invia una notifica di moneta (accettata o rifiutata) alla persona
const out = await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
}
outres.recnotif = await SendNotif.getRecNotif(extrarec.notifId);