Skip to content
Snippets Groups Projects
Select Git revision
  • teachers-ies
  • homologa protected
  • development protected
  • instruction_level_fix2
  • enrollment_rate
  • master default protected
  • hotfix-enrollment-aggregate
  • instruction_level_fixes
  • docentes-ies-ente-federativo
  • receita-potencial
  • #974-receita-potencial
  • db-conn
  • years-of-study-mean
  • new-indicators
  • issue_935
  • instruction_number
  • issue_958
  • issue_953
  • issues_indicadores_agregados
  • courseAggregate
  • v1.16.0
  • v1.15.1
  • v1.14.2
  • v1.14.1
  • v1.14.0
  • v1.14
  • v1.9.0
  • v1.8.3
  • v1.8.2
  • v1.8.1
  • v1.8.0
  • v1.7.0
  • v1.6.1
  • v1.6.0
  • v1.5.0
  • v1.4.2
  • v1.4.1
  • v1.4.0
  • v1.3.3
  • v1.3.2
40 results

id2str.js

Blame
  • id2str.js 4.77 KiB
    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 admDependencyPriv = require(`${libs}/convert/admDependencyPriv`);
    const location = require(`${libs}/convert/location`);
    const ruralLocation = require(`${libs}/convert/ruralLocation`);
    const ethnicGroup = require(`${libs}/convert/ethnicGroup`);
    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`);
    const educationType = require(`${libs}/convert/educationType`);
    const citySize = require(`${libs}/convert/citySize`);
    const incomeLevel = require(`${libs}/convert/incomeLevel`);
    const idhmLevel = require(`${libs}/convert/idhmLevel`);
    const stateName = require(`${libs}/convert/stateName`);
    const contractType = require(`${libs}/convert/contractType`);
    const ethnicGroupPnad = require(`${libs}/convert/ethnicGroupPnad`);
    const ageRange = require(`${libs}/convert/ageRange`);
    const fullAgeRange = require(`${libs}/convert/fullAgeRange`);
    const genderPnad = require(`${libs}/convert/genderPnad`);
    const fifthHouseholdIncome = require(`${libs}/convert/fifthHouseholdIncome`);
    const extremesHouseholdIncome = require(`${libs}/convert/extremesHouseholdIncome`);
    const educationLevelBasic = require(`${libs}/convert/educationLevelBasic`);
    const useTransport = require(`${libs}/convert/booleanVariable`);
    
    const ids = {
        gender_id: gender,
        period_id: period,
        school_year_id: schoolYear,
        education_level_id: educationLevel,
        education_level_basic_id: educationLevelBasic,
        education_level_mod_id: educationLevelMod,
        education_level_short_id: educationLevelShort,
        adm_dependency_id: admDependency,
        adm_dependency_detailed_id: admDependencyPriv,
        location_id: location,
        rural_location_id: ruralLocation,
        location_detailed_id: ruralLocation,
        ethnic_group_id: ethnicGroup,
        agreement_id: agreement,
        integral_time_id: booleanVariable,
        government_agreement_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,
        education_type_id: educationType,
        income_level_id: incomeLevel,
        city_size_id: citySize,
        idhm_level_id: idhmLevel,
        state_id: stateName,
        contract_type_id: contractType,
        ethnic_group_pnad_id: ethnicGroupPnad,
        age_range_id: ageRange,
        full_age_range_id: fullAgeRange,
        gender_pnad_id: genderPnad,
        fifth_household_income_id: fifthHouseholdIncome,
        extremes_household_income_id: extremesHouseholdIncome,
        use_transport_id: useTransport
    };
    
    function transform(removeId=false) {
        return (req, res, next) => {
            if(req.result.length <= 0) {
                return 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();
        };
    }
    
    function multitransform(removeId=false) {
        return (req, res, next) => {
            Object.keys(req.result[0]).forEach((query) => {
                req.result[0][query].forEach((obj) => {
                    Object.keys(obj).forEach((key) => {
                        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,
        multitransform,
        gender,
        period,
        schoolYear,
        educationLevel,
        educationLevelBasic,
        educationLevelMod,
        educationLevelShort,
        admDependency,
        admDependencyPriv,
        location,
        ruralLocation,
        ethnicGroup,
        agreement,
        booleanVariable,
        educationType,
        incomeLevel,
        citySize,
        idhmLevel,
        stateName,
        contractType,
        ethnicGroupPnad,
        ageRange,
        fullAgeRange,
        genderPnad,
        fifthHouseholdIncome,
        extremesHouseholdIncome,
        useTransport
    };