Cartes membre (contacts Secutix)
Utilisez le connecteur Secutix pour créer et mettre à jour les contacts Secutix, puis livrez une Carte de membre à Apple Wallet et Google Wallet.
Mis à jour
/**
* Applique une correspondance avancée des données de compte neostore vers une demande de contact Secutix.
* La correspondance standard est déjà appliquée à l’objet request avant l’appel de cette fonction.
*
* @param {Object} account - Données provenant de neostore.
* @param {Object} request - Demande envoyée à Secutix avec la correspondance par défaut déjà renseignée.
*/
function mapToSecutix(account, request){
request.ExternalContactCriterionData = [{ CriterionIdCode : 'OPT_CO', Values : [account["consents_email"] ? 'true' : 'false'] }];
}
/**
* Applique une correspondance avancée d’une réponse de contact Secutix vers un compte neostore.
* La correspondance standard est déjà appliquée à l’objet account avant l’appel de cette fonction.
*
* @param {Object} response - Réponse reçue de Secutix.
* @param {Object} account - Données envoyées à neostore avec la correspondance par défaut déjà renseignée.
*/
function mapToNeostore(response, account){
response.ContactCriteria = response.ContactCriteria || [];
account["consents_email"] = !!response.ContactCriteria.find(c => c.CriterionIdCode === 'OPT_CO' && c.Values != null && c.Values[0] === 'true');
}
export default function(context) {
context.register('extensions.secutix.contact.mapper', {
MapToSecutix : mapToSecutix,
MapToNeostore: mapToNeostore
});
}/**
* Déclenché lorsque l’état d’installation d’une carte de membre change.
*
* @param {Object} request - Demande Secutix SaveIndividualContactRequest.
* @param {boolean} isInstalled - `true` si la carte est installée, sinon `false`.
* @param {number} device - Appareil sur lequel l’état d’installation a changé (0 = Apple, 2 = Google).
* @returns {Promise<void>} Aucune valeur de retour ; modifie la requête sur place.
*/
async function onPassInstallationStatusChanged(request, isInstalled, device){
request.ExternalContactCriterionData = [
{
CriterionIdCode : 'W_' + (device == 0 ? "APPLE" : "GOOGLE"),
Values : [isInstalled ? 'Installé' : 'Désinstallé']
}
];
}
export default function(context) {
context.register('extensions.secutix.contact.passUpdater', {
OnPassInstallationStatusChanged: onPassInstallationStatusChanged
});
}