Relational fields - Get mainField from configuration's metadata (#8789)

* Returns the mainField for the list view

Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu>

* Use lodash fp

Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu>

* Move helpers functions outside of the controller

Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu>
This commit is contained in:
Jean-Sébastien Herbaux 2020-12-08 16:55:27 +01:00 committed by GitHub
parent 709602bb72
commit 40b31da75c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,8 +1,16 @@
'use strict';
const { has, assoc, mapValues, prop } = require('lodash/fp');
const { getService } = require('../utils');
const { createModelConfigurationSchema, validateKind } = require('./validation');
const hasEditMainField = has('edit.mainField');
const getEditMainField = prop('edit.mainField');
const assocListMainField = assoc('list.mainField');
const assocMainField = metadata =>
hasEditMainField(metadata) ? assocListMainField(getEditMainField(metadata), metadata) : metadata;
module.exports = {
async findContentTypes(ctx) {
const { kind } = ctx.query;
@ -31,11 +39,17 @@ module.exports = {
}
const configuration = await contentTypeService.findConfiguration(contentType);
const confWithUpdatedMetadata = {
...configuration,
metadatas: mapValues(assocMainField, configuration.metadatas),
};
const components = await contentTypeService.findComponentsConfigurations(contentType);
ctx.body = {
data: {
contentType: configuration,
contentType: confWithUpdatedMetadata,
components,
},
};