udistrital / planes_crud

:heavy_check_mark: Check: Repositorio para el api CRUD para el manejo de planes del sistema de planeación de la universidad Distrital
0 stars 0 forks source link

Creación de métodos o controladores para funciones básicas en arboles #2

Closed fabianbarreto02 closed 3 years ago

fabianbarreto02 commented 3 years ago

Se debe realizar los métodos o controladores para la definición de las funciones GET, POST, PUT y Delete en los arboles de los niveles para el api, se debe definir cual es la mejor formar para la creación de los arboles y planes con su respectivo tipo de plan, de igual forma se debe crear una funcionalidad que consulte todo el árbol con la información necesaria (nombre, descripción u otra información relevante, no solo los _id) , de forma similar se debe analizar si para realizar alguna actualización es necesario definir un método particular o solo utilizar el método ya definido para cada estructura, finalmente si se debe crear un función delete que si se "elimina o deshabilita un plan o proyecto", al hacer esto se debe cambiar el campo "activo" a false de todos los subgrupos del plan junto a su información complementaria, para el caso de esta misma función pero a nivel de un subgrupo se debe cambiar el estado del campo "activo" y eliminar la relación de padre e hijo en los registros necesarios, la issue debe cumplir con los siguientes requerimientos:

brayaned commented 3 years ago

Se da inicio a la tarea:

Para la función get donde se creará y retornará el árbol de cualquier plan, se toma la decisión de crear un mid en Go ya que permite mayor flexibilidad a la hora e la creación de arboles a diferencia de Nestjs y Typescript. El método getArbol en el api mid retorna el árbol de subgrupos de cada plan, respetando la jerarquía entre grupos y devolviendo la toda la información que tiene el documento en MongoDB. La estructura que retorna la funcion getArbol es la siguiente: image

brayaned commented 3 years ago

Se realizó la función POST: registrar_nodo, para poder mantener la jerarquía padre-hijo, insertando un subgrupo mediante POST y actualizando el campo hijos[] de su padre por medio de una funcion PUT. No se presentaron inconvenientes realizando esta tarea.

brayaned commented 3 years ago

Analizando si es necesario realizar un nuevo método en el controlador de subgrupo para actualizar la información de cualquier documento, se llego a la conclusion de que con el método básico creado antes, se puede manejar cualquier actualización de información de cualquier subgrupo.

brayaned commented 3 years ago

La función delete_plan se realizó en el api mid, ya que también era necesario desactivar todas sus ramas de subgrupos por lo que era necesario recorrer cada una de estas ramas.

brayaned commented 3 years ago

El método delete subgrupo se realizo directamente en el crud y solo es necesario el id del subgrupo a desactivar. Este método también desactiva todos los hijos que tenga este subgrupo.

fabianbarreto02 commented 3 years ago

Se da por finalizada la issue