Skip to content
Snippets Groups Projects
id2str.js 3.23 KiB
Newer Older
const libs = `${process.cwd()}/libs`;
const gender = require(`${libs}/convert/gender`);
const period = require(`${libs}/convert/period`);
const schoolYear = require(`${libs}/convert/schoolYear`);
const admDependency = require(`${libs}/convert/admDependency`);
const location = require(`${libs}/convert/location`);
const ruralLocation = require(`${libs}/convert/ruralLocation`);
const ethnicGroup = require(`${libs}/convert/ethnicGroup`);
Fernando Erd's avatar
Fernando Erd committed
const agreement = require(`${libs}/convert/agreement`);
const booleanVariable = require(`${libs}/convert/booleanVariable`);
const educationLevel = require(`${libs}/convert/educationLevel`);
const educationLevelMod = require(`${libs}/convert/educationLevelMod`);
const educationLevelShort = require(`${libs}/convert/educationLevelShort`);
Vytor Calixto's avatar
Vytor Calixto committed
const educationType = require(`${libs}/convert/educationType`);
Vytor Calixto's avatar
Vytor Calixto committed

const ids = {
    gender_id: gender,
    period_id: period,
    education_level_id: educationLevel,
    education_level_mod_id: educationLevelMod,
    education_level_short_id: educationLevelShort,
    adm_dependency_id: admDependency,
    adm_dependency_detailed_id: admDependency,
    location_id: location,
    rural_location_id: ruralLocation,
    ethnic_group_id: ethnicGroup,
Fernando Erd's avatar
Fernando Erd committed
    agreement_id: agreement,
Vytor Calixto's avatar
Vytor Calixto committed
    integral_time_id: booleanVariable,
    government_agreement_id: booleanVariable,
    building_school_id: booleanVariable,
    informatics_lab_id: booleanVariable,
    science_lab_id: booleanVariable,
    directors_room_id: booleanVariable,
    teacher_room_id: booleanVariable,
    cook_room_id: booleanVariable,
    playground_id: booleanVariable,
    indor_sports_court_id: booleanVariable,
    nusery_id: booleanVariable,
    special_attendence_room_id: booleanVariable,
    toilet_inside_building_id: booleanVariable,
    denpendency_pne_id: booleanVariable,
    restroom_pne_id: booleanVariable,
    broadband_id: booleanVariable,
    energy_id: booleanVariable,
    water_id: booleanVariable,
    wastepipe_id: booleanVariable,
    education_day_care_child_id: booleanVariable,
    education_preschool_child_id: booleanVariable,
    education_begin_elementary_school_id: booleanVariable,
    education_end_elementary_school_id: booleanVariable,
    education_middle_school_id: booleanVariable,
    education_professional_id: booleanVariable,
    education_eja_id: booleanVariable,
    library_reading_room_id: booleanVariable,
    library_id: booleanVariable,
Fernando Erd's avatar
Fernando Erd committed
    reading_room_id: booleanVariable,
    water_id: booleanVariable,
Vytor Calixto's avatar
Vytor Calixto committed
    education_type_id: educationType
Vytor Calixto's avatar
Vytor Calixto committed
};

function transform(removeId=false) {
    return (req, res, next) => {
        // Para cada objeto do resultado
        req.result.forEach((obj) => {
            Object.keys(obj).forEach((key) => {
                // Se não há uma função especificada, retorna
                if(typeof ids[key] === 'undefined') return;
                let id = obj[key];
                obj[key.replace('_id', '_name')] = ids[key](id);
                if(removeId) delete obj[key];
            });
        });
        next();
    };
}

module.exports = {
    transform,
    gender,
    period,
    schoolYear,
    admDependency,
    location,
Fernando Erd's avatar
Fernando Erd committed
    agreement,
    booleanVariable,
Vytor Calixto's avatar
Vytor Calixto committed
    educationLevelMod,
    educationType