in api/v1/src/procurements/dataManager.js [444:463]
async function syncAccountEntitlements(projectId, account) {
try {
if (account && account.marketplace && account.marketplace.length > 0) {
// Marketplace is activated
const accountNames = account.marketplace.map(i => i.accountName);
const result = await listProcurements(projectId, ['ENTITLEMENT_ACTIVE', 'ENTITLEMENT_PENDING_PLAN_CHANGE_APPROVAL', 'ENTITLEMENT_PENDING_PLAN_CHANGE', 'ENTITLEMENT_PENDING_CANCELLATION'], accountNames);
const entitlements = result.data || [];
account = clearEntitlements(account).account;
entitlements.forEach(e => {
if (e.policy && e.policy.policyId) {
account = addEntitlement(account, e.policy.policyId).account;
}
});
await accountManager.createOrUpdateAccount(projectId, account.accountId, account);
}
return { success: true, code: 200 };
} catch (err) {
return { success: false, code: 500, errors: ['Failed to sync account entitlements', err] };
}
}