+page.js 1.51 KB
export const ssr = false;

import { error } from '@sveltejs/kit';

export async function load({ params, fetch }) {
  const { codigo } = params;

  const res = await fetch(`/api/organismo-data?codigo=${codigo}&tipo=clasificador`);
  if (!res.ok) throw error(404, 'Organismo no encontrado');
  const organismo = await res.json();

  let padres = [];
  let hijos = [];

  try {
    const clasRes = await fetch('/api/organismo-clasificador');
    if (clasRes.ok) {
      const clasificador = await clasRes.json();
      const current = clasificador.find(c => String(c.organismo) === codigo);
      if (current) {
        // Padres: grupo y subgrupo (como objetos virtuales para navegación)
        padres = [
          { organismo: `grupo_${current.organismo_grupo}`, desc_organismo: current.desc_organismo_grupo, nivel: 'grupo', sigla: current.sigla_organismo_grupo },
          { organismo: `subgrupo_${current.organismo_grupo}_${current.organismo_subgrupo}`, desc_organismo: current.desc_organismo_subgrupo, nivel: 'subgrupo', sigla: current.sigla_organismo_subgrupo }
        ];

        // Hijos: otros organismos del mismo subgrupo
        hijos = clasificador.filter(c =>
          c.organismo_grupo === current.organismo_grupo &&
          c.organismo_subgrupo === current.organismo_subgrupo &&
          c.organismo !== current.organismo &&
          c.organismo !== 0
        ).sort((a, b) => (a.desc_organismo || '').localeCompare(b.desc_organismo || ''));
      }
    }
  } catch { /* optional */ }

  return { organismo, padres, hijos };
}