| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- package main
- import (
- "database/sql"
- "fmt"
- "log"
- "net/http"
- "text/template"
- _ "github.com/go-sql-driver/mysql"
- )
- func conexionDB() (conexion *sql.DB) {
- Driver := "mysql"
- Usuario := "root"
- Contraseña := ""
- Nombre := "sistema"
- conexion, err := sql.Open(Driver, Usuario+":"+Contraseña+"@tcp(127.0.0.1)/"+Nombre)
- if err != nil {
- panic(err.Error())
- }
- return conexion
- }
- var plantillas = template.Must(template.ParseGlob("plantillas/*"))
- func main() {
- http.HandleFunc("/", Inicio)
- http.HandleFunc("/formulario", Formulario)
- http.HandleFunc("/insertar", Insertar)
- http.HandleFunc("/borrar", Borrar)
- http.HandleFunc("/editar", Editar)
- http.HandleFunc("/actualizar", Actualizar)
- log.Println("Servidor corriendo")
- http.ListenAndServe(":8080", nil)
- }
- func Borrar(w http.ResponseWriter, r *http.Request) {
- idRegistro := r.URL.Query().Get("id")
- fmt.Println(idRegistro)
- conexionEstablecida := conexionDB()
- borrarRegistro, err := conexionEstablecida.Prepare("UPDATE registros SET deleted_at = NOW() WHERE id = ?")
- if err != nil {
- panic(err.Error())
- }
- borrarRegistro.Exec(idRegistro)
- http.Redirect(w, r, "/", http.StatusSeeOther)
- }
- type Registro struct {
- Id int
- Nombre string
- FechaNacimiento string
- Genero string
- NivelSocieconomico string
- Neurodivergente string
- GrupoEtnico string
- }
- func Inicio(w http.ResponseWriter, r *http.Request) {
- conexionEstablecida := conexionDB()
- registros, err := conexionEstablecida.Query("SELECT * FROM registros WHERE deleted_at IS NULL")
- if err != nil {
- log.Fatal(err)
- }
- registro := Registro{}
- arregloRegistro := []Registro{}
- for registros.Next() {
- var Id int
- var Nombre, Genero, NivelSocieconomico, Neurodivergente, GrupoEtnico, FechaNacimiento string
- var DeletedAt sql.NullTime
- err = registros.Scan(&Id, &Nombre, &FechaNacimiento, &Genero, &NivelSocieconomico, &Neurodivergente, &GrupoEtnico, &DeletedAt)
- if err != nil {
- log.Fatal(err)
- }
- registro.Id = Id
- registro.Nombre = Nombre
- registro.FechaNacimiento = FechaNacimiento
- registro.Genero = Genero
- registro.NivelSocieconomico = NivelSocieconomico
- registro.Neurodivergente = Neurodivergente
- registro.GrupoEtnico = GrupoEtnico
- arregloRegistro = append(arregloRegistro, registro)
- }
- fmt.Println(arregloRegistro)
- plantillas.ExecuteTemplate(w, "inicio", arregloRegistro)
- }
- func Editar(w http.ResponseWriter, r *http.Request) {
- idRegistro := r.URL.Query().Get("id")
- fmt.Println(idRegistro)
- conexionEstablecida := conexionDB()
- rows, err := conexionEstablecida.Query("SELECT Id, Nombre, FechaNacimiento, Genero, NivelSocieconomico, Neurodivergente, GrupoEtnico FROM registros WHERE Id=?", idRegistro)
- if err != nil {
- log.Fatal(err)
- }
- defer rows.Close()
- registro := Registro{}
- if rows.Next() {
- err = rows.Scan(®istro.Id, ®istro.Nombre, ®istro.FechaNacimiento, ®istro.Genero, ®istro.NivelSocieconomico, ®istro.Neurodivergente, ®istro.GrupoEtnico)
- if err != nil {
- log.Fatal(err)
- }
- }
- fmt.Println(registro)
- plantillas.ExecuteTemplate(w, "editar", registro)
- }
- func Formulario(w http.ResponseWriter, r *http.Request) {
- plantillas.ExecuteTemplate(w, "formulario", nil)
- }
- func Insertar(w http.ResponseWriter, r *http.Request) {
- if r.Method == "POST" {
- Id := r.FormValue("Id")
- Nombre := r.FormValue("nombre")
- FechaNacimiento := r.FormValue("fdn")
- Genero := r.FormValue("genero")
- NivelSocieconomico := r.FormValue("nivel_socioeconomico")
- Neurodivergente := r.FormValue("neurodivergente")
- GrupoEtnico := r.FormValue("grupo_etnico")
- conexionEstablecida := conexionDB()
- insertarRegistros, err := conexionEstablecida.Prepare("INSERT INTO registros (Id,Nombre, FechaNacimiento, Genero, NivelSocieconomico, Neurodivergente, GrupoEtnico) VALUES (?,?, ?, ?, ?, ?, ?)")
- if err != nil {
- http.Error(w, "Error al preparar la consulta: "+err.Error(), http.StatusInternalServerError)
- return
- }
- defer insertarRegistros.Close()
- _, err = insertarRegistros.Exec(Id, Nombre, FechaNacimiento, Genero, NivelSocieconomico, Neurodivergente, GrupoEtnico)
- if err != nil {
- http.Error(w, "Error al ejecutar la consulta: "+err.Error(), http.StatusInternalServerError)
- return
- }
- http.Redirect(w, r, "/", http.StatusSeeOther)
- } else {
- http.Error(w, "Método no permitido", http.StatusMethodNotAllowed)
- }
- }
- func Restaurar(w http.ResponseWriter, r *http.Request) {
- idRegistro := r.URL.Query().Get("id")
- fmt.Println(idRegistro)
- conexionEstablecida := conexionDB()
- restaurarRegistro, err := conexionEstablecida.Prepare("UPDATE registros SET deleted_at = NULL WHERE id = ?")
- if err != nil {
- panic(err.Error())
- }
- restaurarRegistro.Exec(idRegistro)
- http.Redirect(w, r, "/", http.StatusSeeOther)
- }
- func Actualizar(w http.ResponseWriter, r *http.Request) {
- if r.Method == "POST" {
- Id := r.FormValue("Id")
- Nombre := r.FormValue("nombre")
- FechaNacimiento := r.FormValue("fdn")
- Genero := r.FormValue("genero")
- NivelSocieconomico := r.FormValue("nivel_socioeconomico")
- Neurodivergente := r.FormValue("neurodivergente")
- GrupoEtnico := r.FormValue("grupo_etnico")
- if Id == "" || Nombre == "" || FechaNacimiento == "" || Genero == "" || NivelSocieconomico == "" || Neurodivergente == "" || GrupoEtnico == "" {
- http.Error(w, "Todos los campos son obligatorios", http.StatusBadRequest)
- return
- }
- conexionEstablecida := conexionDB()
- modificarRegistros, err := conexionEstablecida.Prepare(" UPDATE registros SET Nombre=?, FechaNacimiento=?, Genero=?, NivelSocieconomico=?, Neurodivergente=?, GrupoEtnico=? WHERE Id=?")
- if err != nil {
- http.Error(w, "Error al preparar la consulta: "+err.Error(), http.StatusInternalServerError)
- return
- }
- defer modificarRegistros.Close()
- _, err = modificarRegistros.Exec(Nombre, FechaNacimiento, Genero, NivelSocieconomico, Neurodivergente, GrupoEtnico, Id)
- if err != nil {
- http.Error(w, "Error al ejecutar la consulta: "+err.Error(), http.StatusInternalServerError)
- return
- }
- http.Redirect(w, r, "/", http.StatusSeeOther)
- } else {
- http.Error(w, "Método no permitido", http.StatusMethodNotAllowed)
- }
- }
|