Skip to content

Commit 4beb5db

Browse files
committed
dataset-field to use dataset.dataset:
1 parent 043f824 commit 4beb5db

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

src/middleware/common.middleware.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ export const fetchSpecification = fetchOne({
377377
// Fall back dataset fields if no specification found
378378

379379
export const fetchDatasetFields = fetchMany({
380-
query: ({ req }) => `select field from dataset_field where dataset = '${req.dataset.collection}'`,
380+
query: ({ req }) => `select field from dataset_field where dataset = '${req.dataset.dataset}'`,
381381
result: 'datasetFields'
382382
})
383383

@@ -473,6 +473,8 @@ export const getUniqueDatasetFieldsFromSpecification = (req, res, next) => {
473473
export const constructSpecificationTable = (req, res, next) => {
474474
const { datasetFields } = req
475475
// Filter out internal system fields that shouldn't be displayed
476+
logger.info('No specification found, constructing specification from dataset fields', { dataset: req.dataset.dataset, datasetFields: datasetFields.map(df => df.field) })
477+
logger.info('pulling from collection field dataset_field where dataset = dataset.collection, so using collection as lookup key for dataset fields table, not dataset name', { collection: req.dataset.collection })
476478
const systemFields = ['entity', 'prefix', 'entry-number', 'organisation-entity', 'organisation']
477479

478480
req.specification = {
@@ -491,17 +493,32 @@ export const constructSpecificationTable = (req, res, next) => {
491493
* @function
492494
* @description Middleware chain to process the dataset specification and prepare it for the issue table, conditional execution on whether a specification exists
493495
*/
496+
/** @param {string} step */
497+
const logSpecStep = (step) => (/** @type {any} */ req, /** @type {any} */ _res, /** @type {Function} */ next) => {
498+
logger.debug({ message: `processSpecification: ${step}`, type: types.App, dataset: req.params?.dataset, collection: req.dataset?.collection, hasSpecification: !!req.specification })
499+
next()
500+
}
501+
494502
export const processSpecificationMiddlewares = [
503+
logSpecStep('fetchSpecification'),
495504
fetchSpecification,
505+
logSpecStep('pullOutDatasetSpecification'),
496506
pullOutDatasetSpecification,
497507
// When specification exists, use field mappings from transform table
508+
logSpecStep('replaceUnderscoreInSpecification'),
498509
onlyIf(req => req.specification, replaceUnderscoreInSpecification),
510+
logSpecStep('fetchFieldMappings'),
499511
onlyIf(req => req.specification, fetchFieldMappings),
512+
logSpecStep('addDatabaseFieldToSpecification'),
500513
onlyIf(req => req.specification, addDatabaseFieldToSpecification),
514+
logSpecStep('filterOutSystemFields'),
501515
onlyIf(req => req.specification, filterOutSystemFields),
502516
// When no specification exists, use fields from dataset_field table
517+
logSpecStep('fetchDatasetFields'),
503518
onlyIf(req => !req.specification, fetchDatasetFields),
519+
logSpecStep('constructSpecificationTable'),
504520
onlyIf(req => !req.specification, constructSpecificationTable),
521+
logSpecStep('getUniqueDatasetFieldsFromSpecification'),
505522
getUniqueDatasetFieldsFromSpecification
506523
]
507524

0 commit comments

Comments
 (0)