package user import ( "fmt" "git.umbach.dev/app-idea/rest-api/routers/database" "github.com/gofiber/fiber/v2" "golang.org/x/crypto/bcrypt" ) // ABCDEFGHIJKLMNOPQRSTUVWXYZ // 0123456789 func NewUser(c *fiber.Ctx) error { db, err := database.GetDatabase() if db == nil || err != nil { return c.SendString(err.Error()) } type LoginInput struct { Username string `json:"username"` Email string `json:"email"` Password string `json:"password"` } var input LoginInput if err := c.BodyParser(&input); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"status": "error", "message": "Error on login request", "data": err}) } fmt.Println(input, input.Password) password := []byte(input.Password) hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) if err != nil { panic(err) } fmt.Println(string(hashedPassword)) err = bcrypt.CompareHashAndPassword(hashedPassword, []byte("hello wolrd")) fmt.Println(err) /*sqlStatement, err := db.Prepare("INSERT INTO users (name) VALUES (?);") res, err := sqlStatement.Exec(uuid.New().String()) rowCount, err := res.RowsAffected() fmt.Printf("inserted %d row(s) of data. %s \n", rowCount, err) fmt.Println("finish") */ return c.JSON(fiber.Map{"status": "error", "message": "invalid"}) } func GetUser(c *fiber.Ctx) error { return c.SendString("user") } func GetUsers(c *fiber.Ctx) error { db, err := database.GetDatabase() // c.Params("id") if db == nil || err != nil { return c.SendString("db error") } list := []string{} var ( name string ) rows, err := db.Query("SELECT username FROM users;") defer rows.Close() fmt.Println("reading data:") for rows.Next() { err := rows.Scan(&name) fmt.Printf("Data row = (%s, %s)\n", name, err) list = append(list, name) } err = rows.Err() fmt.Println("Done") return c.JSON(list) }