45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
import {
|
|
normalizeAppPromotions,
|
|
normalizeComplianceDocument,
|
|
normalizeComplianceDocumentKey,
|
|
normalizeHelpArticles,
|
|
normalizePromotionPlacement
|
|
} from './site-content-contract.js'
|
|
import { requestStrict } from './request-client.js'
|
|
|
|
export const siteContentApi = {
|
|
async getHelpArticles(requestOptions = {}) {
|
|
const helpArticles = await requestStrict({
|
|
url: '/genealogy/app/help-articles',
|
|
method: 'GET'
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeHelpArticles(helpArticles)
|
|
},
|
|
|
|
async getPromotions(requestOptions = {}) {
|
|
const placement = normalizePromotionPlacement(requestOptions.placement ?? 'home_banner')
|
|
const promotions = await requestStrict({
|
|
url: '/genealogy/app/promotions',
|
|
method: 'GET',
|
|
data: { platform: 'app', placement }
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeAppPromotions(promotions, placement)
|
|
},
|
|
|
|
async getComplianceDocument(documentKey, requestOptions = {}) {
|
|
const normalizedKey = normalizeComplianceDocumentKey(documentKey)
|
|
const complianceDocument = await requestStrict({
|
|
url: `/genealogy/app/compliance/documents/${normalizedKey}`,
|
|
method: 'GET'
|
|
}, {
|
|
authenticated: false,
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeComplianceDocument(complianceDocument, normalizedKey)
|
|
}
|
|
}
|