refactor: separate T&C text from rest of detials

This commit is contained in:
André Sá 2022-04-27 15:59:21 +01:00
parent 0213ceb7fe
commit c5e7627afb
2 changed files with 14 additions and 8 deletions

View file

@ -244,21 +244,27 @@ const massageTerms = terms => (terms.active && terms.text) ? ({
* `tc` is sent depending on whether the `hash` differs from `currentHash` or
* not.
*/
const terms = (parent, { currentHash }, { settings }, info) => {
const terms = (parent, { currentConfigVersion, currentHash }, { deviceId, settings }, info) => {
const isNone = x => _.isNil(x) || _.isEmpty(x)
const latestTerms = configManager.getTermsConditions(settings.config)
let latestTerms = configManager.getTermsConditions(settings.config)
if (isNone(latestTerms)) return null
const hash = latestTerms.hash
if (!_.isString(hash)) return null
if (hash === currentHash) return { hash, details: null }
latestTerms = massageTerms(latestTerms)
if (isNone(latestTerms)) return null
const details = massageTerms(latestTerms)
if (isNone(details)) return null
const isHashNew = hash !== currentHash
const text = isHashNew ? latestTerms.text : null
return { hash, details }
return plugins(settings, deviceId)
.fetchCurrentConfigVersion()
.catch(() => null)
.then(configVersion => isHashNew || _.isNil(currentConfigVersion) || currentConfigVersion < configVersion)
.then(isVersionNew => isVersionNew ? _.omit(['text'], latestTerms) : null)
.then(details => ({ hash, details, text }))
}