Exemple #1
0
//GenerarMejorCombinacion se encarga de buscar cada una de las prendas por color y birllo para generar una combinacion.
func GenerarMejorCombinacion(usuarioID string) (prendas [][]modelo.Prenda) {
	u := modelo.Usuario{ID: bson.ObjectIdHex(usuarioID)}
	u.BuscarPorID()
	mejores := genetico.Genetico(u.ConsultarColoresPrendas())
	for _, mejor := range mejores {
		var combinacion []modelo.Prenda
		for i, color := range mejor.Genotipo {
			prenda := modelo.Prenda{}
			prenda.Brillo = color.Brillo
			prenda.Color.Tono = color.Tono
			switch i {
			case 0:
				prenda.TipoPrenda.Nombre = "Calzado"
			case 1:
				prenda.TipoPrenda.Nombre = "Pantalon/Falda"
			case 2:
				prenda.TipoPrenda.Nombre = "Playera"
			case 3:
				prenda.TipoPrenda.Nombre = "Chamarra"
			}
			prenda.BuscarPorBrilloTono(u.Prendas)
			combinacion = append(combinacion, prenda)
		}
		prendas = append(prendas, combinacion)
	}
	return prendas
}
Exemple #2
0
//Login es la función que se encarga de comprobar las credenciales de los usuarios.
func Login(html *template.Template) gin.HandlerFunc {
	return func(c *gin.Context) {
		session := sessions.Default(c)
		usuario := modelo.Usuario{}
		c.Bind(&usuario)

		isOk := usuario.IniciarSesion()
		if !isOk {
			session.Set("UsuarioID", "0")
		}
		session.Set("UsuarioID", usuario.ID.Hex())
		session.Save()
		c.Redirect(http.StatusSeeOther, "/")
		return
	}
}
Exemple #3
0
//RegistroUsuario procesa los datos recibidos del formulario.
func RegistroUsuario() gin.HandlerFunc {
	return func(c *gin.Context) {
		var u modelo.Usuario
		if c.Bind(&u) == nil {
			if u.Registrar() {
				//Correcto
				session := sessions.Default(c)
				session.Set("UsuarioID", u.ID.Hex())
				session.Save()
				c.Redirect(http.StatusSeeOther, "/")
				return
			}
			//Algo salio mal
			c.String(http.StatusInternalServerError, "No se pudo registrar")
			fmt.Println("No registrado ", u)
		} else {
			c.Redirect(http.StatusSeeOther, "/")
			fmt.Println("Datos incorrectos")
		}
	}
}
Exemple #4
0
//RegistroPrendaPOST recibe el formulario y se encarga de registrarlo en la BD.
func RegistroPrendaPOST() gin.HandlerFunc {
	return func(c *gin.Context) {
		usuarioID := GetSession(sessions.Default(c).Get("UsuarioID"))
		if usuarioID != "0" {
			var p modelo.Prenda
			if c.Bind(&p) == nil {
				u := modelo.Usuario{ID: usuarioID}
				if u.BuscarPorID() {
					p.ID = bson.NewObjectId()
					p.Color.BuscarPorTono()

					p.Clima.ID = bson.ObjectIdHex(convertirID(c.PostForm("clima")))
					p.Clima.BuscarPorID()

					p.TipoPrenda.ID = bson.ObjectIdHex(convertirID(c.PostForm("tipoPrenda")))
					p.TipoPrenda.BuscarPorID()

					p.Ocasion.ID = bson.ObjectIdHex(convertirID(c.PostForm("ocasion")))
					p.Ocasion.BuscarPorID()

					guadarImagen(c, &p)

					u.Prendas = append(u.Prendas, p)
					if u.Modificar() {
						//BIEN
						fmt.Println(u)
					} else {
						fmt.Println("ALGO MAL", u)
					}
				} else {
					//No se encontró el usuario D:
					fmt.Println(u)
				}
			} else {
				fmt.Println("Algo salió mal")
			}
			return
		}
		c.Redirect(302, "/")
		return
	}
}