/home/arranoyd/empl/wp-content/plugins/redux-framework/extendify-sdk/src/api/Templates.js
import { Axios as api } from './axios'
import { useUserStore } from '../state/User'
let count = 0
export const Templates = {
async get(searchParams, options = {}) {
count++
const defaultpageSize = searchParams.type === 'pattern' ? '8' : '4'
const taxonomyType =
searchParams.type === 'pattern' ? 'patternType' : 'layoutType'
const args = Object.assign(
{
filterByFormula: prepareFilterFormula(
searchParams,
taxonomyType,
),
pageSize: defaultpageSize,
categories: searchParams.taxonomies,
search: searchParams.search,
type: searchParams.type,
offset: '',
initial: count === 1,
request_count: count,
sdk_partner: useUserStore.getState()?.sdkPartner ?? '',
},
options,
)
return await api.post('templates', args)
},
// TODO: Refactor this later to combine the following three
maybeImport(template) {
return api.post(`templates/${template.id}`, {
template_id: template?.id,
maybe_import: true,
type: template.fields?.type,
pageSize: '1',
template_name: template.fields?.title,
})
},
import(template) {
return api.post(`templates/${template.id}`, {
template_id: template.id,
imported: true,
basePattern:
template.fields?.basePattern ??
template.fields?.baseLayout ??
'',
type: template.fields.type,
pageSize: '1',
template_name: template.fields?.title,
})
},
}
const prepareFilterFormula = ({ taxonomies }, type) => {
const siteType = taxonomies?.siteType?.slug?.length
? taxonomies.siteType.slug
: 'default'
const formula = [
`{type}="${type.replace('Type', '')}"`,
`{siteType}="${siteType}"`,
]
if (taxonomies[type]?.slug) {
formula.push(`{${type}}="${taxonomies[type].slug}"`)
}
return `AND(${formula.join(', ')})`.replace(/\r?\n|\r/g, '')
}