36 lines
947 B
TypeScript
36 lines
947 B
TypeScript
|
|
export default (consumer: any) => {
|
||
|
|
const { activated_licenses, ...rest } = consumer
|
||
|
|
|
||
|
|
let lastLicense: any = null
|
||
|
|
|
||
|
|
if (consumer.activated_licenses.length) {
|
||
|
|
lastLicense = consumer.activated_licenses[0]
|
||
|
|
if (consumer.activated_licenses.length > 1) {
|
||
|
|
const activeLicenseInfo = consumer.activated_licenses.find(
|
||
|
|
activated_license => activated_license.expires_at,
|
||
|
|
)
|
||
|
|
|
||
|
|
if (!activeLicenseInfo) {
|
||
|
|
consumer.activated_licenses.sort((a, b) => (a.expires_at > b.expires_at ? 1 : -1))
|
||
|
|
lastLicense = consumer.activated_licenses[0]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return {
|
||
|
|
...rest,
|
||
|
|
fullname: `${rest?.first_name} ${rest?.last_name}`,
|
||
|
|
license_info: prepareLicenseInfo(lastLicense),
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function prepareLicenseInfo(latestLicense: any) {
|
||
|
|
if (!latestLicense) return null
|
||
|
|
const { license, ...rest } = latestLicense
|
||
|
|
|
||
|
|
return {
|
||
|
|
...rest,
|
||
|
|
partner: license.charged_license_transaction.partner,
|
||
|
|
}
|
||
|
|
}
|