async function syncAccountEntitlements()

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] };
    }
}