Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created February 2, 2023 02:33
Show Gist options
  • Save parzibyte/f0521a8c6949fc992f9a69cb3bf63787 to your computer and use it in GitHub Desktop.
Save parzibyte/f0521a8c6949fc992f9a69cb3bf63787 to your computer and use it in GitHub Desktop.
/*
Valida que toda la lista de parametros exista en r.URL.Query. Si no encuentra alguno o
está vacío, regresa el error del parámetro faltante. En caso de éxito regresa una lista conteniendo
los parámetros en el mismo orden que fueron validados
*/
func validarParametrosGetDePeticionHttp(r *http.Request, parametros []string) ([]string, error) {
var valores []string
mapaDeValoresDeUrl := r.URL.Query()
for _, parametro := range parametros {
valorComoArreglo, ok := mapaDeValoresDeUrl[parametro]
if !ok {
return valores, fmt.Errorf("Falta el parámetro '%s'", parametro)
}
valor := valorComoArreglo[0]
if len(valor) <= 0 {
return valores, fmt.Errorf("El parámetro '%s' está vacío", parametro)
}
valores = append(valores, valor)
}
return valores, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment