Modificación de un usuario

This commit is contained in:
David Arranz 2022-12-05 15:29:14 +01:00
parent 3e7d9ecbf1
commit 883770e80f
4 changed files with 118 additions and 21 deletions

View File

@ -93,6 +93,33 @@ function _createMember(member) {
});
};
function _updateMember(email, member) {
const api = new SibApiV3Sdk.ContactsApi();
return new Promise(function (resolve, reject) {
const updateContact = new SibApiV3Sdk.UpdateContact();
updateContact.attributes = {
NOMBRE: member.name,
APELLIDOS: member.surname,
SMS: member.phone,
EMAIL: member.email,
ENTITYNAME: (member.entity) ? member.entity.name : '',
}
api.updateContact(email, updateContact)
.then(function (data) {
console.debug('API called successfully. Returned data: ' + data);
resolve(updateContact);
})
.catch(function (error) {
console.error(error);
reject(error);
});
});
};
function _addMemberToList(member, listId) {
const api = new SibApiV3Sdk.ContactsApi();
@ -157,7 +184,7 @@ function getLists() {
};
function addMember(listId, member) {
function addMemberToList(listId, member) {
return new Promise(function (resolve, reject) {
_createMember(member)
.then(function (contact) {
@ -174,15 +201,20 @@ function addMember(listId, member) {
})
};
function deleteMember(listId, member) {
function deleteMemberFromList(listId, member) {
return _removeMemberFromList(member, listId);
}
function updateMemberByEmail(userEmail, userData) {
return _updateMember(userEmail, userData);
}
module.exports = {
sendEmailTransactional,
getLists,
addMember,
deleteMember,
addMemberToList,
deleteMemberFromList,
updateMemberByEmail
}

View File

@ -8,6 +8,7 @@ const crypto = require("crypto");
const securityHelper = require("../../helpers/security.helper");
const authService = require("./auth.service");
const userService = require("./user.service");
const marketing = require("../../helpers/sendinblue.helper");
const eventInscriptionService = require("../events/events_inscriptions.service");
const { RequestContactImportNewList } = require("sib-api-v3-sdk");
moment.locale("es");
@ -167,23 +168,23 @@ async function register(req, res, next) {
console.log("COMPROBAMOS SI EXISTE EN NUESTRO SISTEMA", values.phone);
let newUser = await authService.extraMethods.findUserByPhone(values.phone);
const data = {
//refresh_token: tokens.refreshToken,
phone: req.body.phone,
fbuid: req.body.fbuid,
email: req.body.email,
name: req.body.name,
surname: req.body.surname,
entityId: req.body.entityid,
accessibility: req.body.accessibility,
profile: req.body.profile,
app_version: appVersion,
lastlogin: moment().utc(),
};
if (!newUser) {
console.log("NO EXISTE");
try {
const data = {
//refresh_token: tokens.refreshToken,
phone: req.body.phone,
fbuid: req.body.fbuid,
email: req.body.email,
name: req.body.name,
surname: req.body.surname,
entityId: req.body.entityid,
accessibility: req.body.accessibility,
profile: req.body.profile,
app_version: appVersion,
lastlogin: moment().utc(),
};
newUser = await authService.extraMethods.createUser(data);
console.log("CREAMOS EL USUARIO EN NUESTRO SISTEMA", newUser);
} catch (error) {
@ -195,6 +196,27 @@ async function register(req, res, next) {
res
);
}
} else {
console.log("EXISTE");
try {
const oldUserData = newUser;
newUser = await authService.extraMethods.updateUser(newUser.id, data);
console.log(newUser);
marketing.updateMemberByEmail(oldUserData.email, newUser);
console.log("MODIFICAMOS EL USUARIO EN NUESTRO SISTEMA", newUser);
} catch (error) {
console.error(error);
return controllerHelper.handleErrorResponse(
MODULE_NAME,
register.name,
error,
res
);
}
}
if (newUser) {
@ -206,7 +228,6 @@ async function register(req, res, next) {
newUser.id,
appVersion
);
console.log("PRUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEBA>>>> ", result);
newUser.app_version = appVersion;
}
}
@ -490,6 +511,24 @@ async function getOrCreateUser(req, res, next) {
next();
}
async function deleteUser(req, res, next) {
const params = controllerHelper.extractParamsFromRequest(req, res, {});
let dataUser = {
id: req.body ? req.body.id : null,
phone: req.body ? req.body.phone : null, //((req.body.phone != '+34') ? req.body.phone : null), lo quitamos de momento por la de movistar
email: req.body ? req.body.email : null,
};
const resultCount = await authService.deleteUser(dataUser.id, dataUser.email, dataUser.phone);
if (resultCount < 1) {
// No se ha encontrado
return controllerHelper.handleResultResponse(
"No se ha podido encontrar el usuario", null, params, res, httpStatus.NOT_FOUND);
}
return controllerHelper.handleResultResponse(resultCount, resultCount, params, res, httpStatus.OK);
}
module.exports = {
login,
loginWithPhone,
@ -500,5 +539,6 @@ module.exports = {
adminVerify,
verify,
getOrCreateUser,
deleteUser,
MODULE_NAME,
};

View File

@ -52,6 +52,31 @@ const extraMethods = {
{ where: { id: userId } }
);
},
updateUser: async (userId, params, context) => {
let result = await models.User.update(params, {
where: { id: userId }
});
return await extraMethods.findUser({
id: userId
}
);
},
deleteUser: async (userId, userEmail, userPhone) => {
return await models.User.destroy({
where: {
id: userId,
email: userEmail,
userPhone: userPhone,
entityLevel: 1,
}
});
}
};
module.exports = {

View File

@ -77,7 +77,7 @@ async function _addMember(inscriptionDTO) {
resolve(inscriptionDTO);
} else {
marketing
.addMember(inscriptionDTO.event_marketing_list, inscriptionDTO)
.addMemberToList(inscriptionDTO.event_marketing_list, inscriptionDTO)
.then(function (result) {
resolve(result.ID);
})
@ -99,7 +99,7 @@ async function _deleteMember(idLista, email) {
if (!idLista || !email) {
resolve();
} else {
resolve(marketing.deleteMember(idLista, email));
resolve(marketing.deleteMemberFromList(idLista, email));
}
});
}