UNPKG

@tasolutions/express-core

Version:
36 lines (33 loc) 1.65 kB
const _ = require('lodash'); const { apiGWInfo } = require('../../../config'); const { coverRequiredFields } = require('../utils/cover'); module.exports = { buildResultFromInterface: (actionExtend, fieldListInterfaces) => { const hasImageField = _.some(fieldListInterfaces, { type: 'IMAGE' }); let contentType = hasImageField ? 'multipart/form-data' : 'application/json'; fieldListInterfaces = _.sortBy(fieldListInterfaces, 'index'); let requestFields = []; let requiredFields = []; if (actionExtend.method === 'post' || actionExtend.method === 'put') { requiredFields = fieldListInterfaces.filter(field => field.is_required).map(field => field.key); requestFields = fieldListInterfaces; } else { requestFields = fieldListInterfaces.filter(field => field.is_filter); requiredFields = requestFields.map(field => field.key); } return { [actionExtend.action]: { api: { path: `${apiGWInfo.prefix}${actionExtend.path}`, url: `${apiGWInfo.url}${actionExtend.path}`, method: actionExtend.method?.toUpperCase(), type: actionExtend.collection_key, content_type: contentType, request_fields: requestFields.length ? requestFields : null, required_fields: requiredFields.length ? coverRequiredFields(requiredFields) : null, }, response_fields: fieldListInterfaces.length ? fieldListInterfaces : null, } }; } }