Closed JuanCamiloMartinezLopez closed 6 months ago
Se modifica función originalmente planea para utilizar funciones ya implementadas para la obtención de xml y se optiene metodo que tenorna lista de Dependecias del rol supervisor
func ObtenerDependencias(documento string) (dependencias map[string]interface{}, errorOutput interface{}) {
defer func() {
if err := recover(); err != nil {
errorOutput = map[string]interface{}{
"Success": true,
"Status": 502,
"Message": "Error al consultar las dependencias: " + documento,
"Error": err,
}
panic(errorOutput)
}
}()
dependenciasList := make([]models.DependenciaSimple, 0)
var respuesta map[string]interface{}
if response, err := getJsonWSO2Test(beego.AppConfig.String("UrlAdministrativaJBPM")+"/dependencias_supervisor/"+documento, &respuesta); (err == nil) && (response == 200) {
if respuesta != nil {
if dependenciasMap, ok := respuesta["dependencias"].(map[string]interface{}); ok {
for _, depList := range dependenciasMap {
if list, ok := depList.([]interface{}); ok {
for _, dep := range list {
depMap := dep.(map[string]interface{})
dependencia := models.DependenciaSimple{
Codigo: depMap["codigo"].(string),
Nombre: depMap["nombre"].(string),
}
dependenciasList = append(dependenciasList, dependencia)
fmt.Println(dependenciasList)
}
}
}
}
}
}
dependencias = make(map[string]interface{})
dependencias["Dependencias Supervisor"] = dependenciasList
if dependencias != nil {
return dependencias, nil
}
return nil, errorOutput
}
Resultado de la solicitud
Se procede a realizar para el rol Ordenador
Se crea helper dependencias.go para relizar consultas de dependencias segun el rol, eliminado código de petición en histórico_ cumplidos.go, quedadon de la siguente manera
import (
"github.com/astaxie/beego"
"github.com/udistrital/cumplidos_mid/models"
)
func GetDependenciasSupervisor(documento string) (dependenciasList []models.DependenciaSimple, errorOutput interface{}) {
defer func() {
if err := recover(); err != nil {
errorOutput = map[string]interface{}{
"Success": true,
"Status": 502,
"Message": "Error al consultar las dependencias: " + documento,
"Error": err,
}
panic(errorOutput)
}
}()
var respuesta map[string]interface{}
if response, err := getJsonWSO2Test(beego.AppConfig.String("UrlAdministrativaJBPM")+"/dependencias_supervisor/"+documento, &respuesta); (err == nil) && (response == 200) {
if respuesta != nil {
if dependenciasMap, ok := respuesta["dependencias"].(map[string]interface{}); ok {
for _, depList := range dependenciasMap {
if list, ok := depList.([]interface{}); ok {
for _, dep := range list {
depMap := dep.(map[string]interface{})
dependencia := models.DependenciaSimple{
Codigo: depMap["codigo"].(string),
Nombre: depMap["nombre"].(string),
}
dependenciasList = append(dependenciasList, dependencia)
}
}
}
}
}
} else {
return nil, errorOutput
}
if dependenciasList != nil {
return dependenciasList, nil
}
return nil, nil
}
func GetDependenciasOrdenadr(documento string) (dependenciasList []models.DependenciaSimple, errorOutput interface{}) {
defer func() {
if err := recover(); err != nil {
errorOutput = map[string]interface{}{
"Success": true,
"Status": 502,
"Message": "Error al consultar las dependencias: " + documento,
"Error": err,
}
panic(errorOutput)
}
}()
var respuesta map[string]interface{}
if response, err := getJsonWSO2Test(beego.AppConfig.String("UrlAdministrativaJBPM")+"/dependencias_sic/"+documento, &respuesta); (err == nil) && (response == 200) {
if respuesta != nil {
if dependenciasMap, ok := respuesta["DependenciasSic"].(map[string]interface{}); ok {
for _, depList := range dependenciasMap {
if list, ok := depList.([]interface{}); ok {
for _, dep := range list {
depMap := dep.(map[string]interface{})
dependencia := models.DependenciaSimple{
Codigo: depMap["ESFCODIGODEP"].(string),
Nombre: depMap["ESFDEPENCARGADA"].(string),
}
dependenciasList = append(dependenciasList, dependencia)
}
}
}
}
}
} else {
return nil, errorOutput
}
if dependenciasList != nil {
return dependenciasList, nil
}
return nil, nil
}
y el helper:
package helpers
func ObtenerDependencias(documento string) (dependencias map[string]interface{}, errorOutput interface{}) {
defer func() {
if err := recover(); err != nil {
errorOutput = map[string]interface{}{
"Success": true,
"Status": 502,
"Message": "Error al consultar las dependencias: " + documento,
"Error": err,
}
panic(errorOutput)
}
}()
dependencias = make(map[string]interface{})
dependencias["Dependencias Supervisor"], errorOutput = GetDependenciasSupervisor(documento)
dependencias["Dependencias Ordenador"], errorOutput = GetDependenciasOrdenadr(documento)
if errorOutput != nil {
return dependencias, nil
}
return nil, errorOutput
}
@stevencol buen trabajo
Se requiere realizar un endpoint que dado el número del documento de un supervisor/ordenador retorné la lista las dependencias (nombre y código) a las que se encuentra asociado, así como los nombres y códigos de las dependencias que cambiaron si corresponde, ej: (la OATI, oficina asesora de tecnología e información de código DEP626 anteriormente era la OAS, oficina asesora de sistemas de código DEP12).
Sub Tareas
Criterios de aceptación
Requerimientos
No aplica
Definition of Ready - DoR
Definition of Done - DoD - Desarrollo