Move UserTableHandler and User model to own packages
parent
f4a6a1d761
commit
2b26d6e334
|
@ -0,0 +1,10 @@
|
|||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/a-h/templ"
|
||||
)
|
||||
|
||||
func render(ctx echo.Context, cmp templ.Component) error {
|
||||
return cmp.Render(ctx.Request().Context(), ctx.Response())
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
"git.duckylabs.xyz/duckbox/echo-todo/partials"
|
||||
)
|
||||
|
||||
func UserTableHandler(c echo.Context) error {
|
||||
return render(c, partials.AddUserTable())
|
||||
}
|
25
main.go
25
main.go
|
@ -14,18 +14,13 @@ import (
|
|||
|
||||
"github.com/a-h/templ"
|
||||
|
||||
"git.duckylabs.xyz/duckbox/echo-todo/partials"
|
||||
"git.duckylabs.xyz/duckbox/echo-todo/handlers"
|
||||
"git.duckylabs.xyz/duckbox/echo-todo/models"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/labstack/echo/v4/middleware"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID int
|
||||
Username string
|
||||
Email string
|
||||
Role string
|
||||
}
|
||||
|
||||
func main() {
|
||||
err := godotenv.Load(".env")
|
||||
|
@ -69,7 +64,7 @@ func main() {
|
|||
|
||||
e.GET("/api/allUsers", AllUserHandler)
|
||||
|
||||
e.GET("/api/addUserTable", UserTableHandler)
|
||||
e.GET("/api/addUserTable", handlers.UserTableHandler)
|
||||
|
||||
e.Logger.Fatal(e.Start(":1234"))
|
||||
}
|
||||
|
@ -83,13 +78,7 @@ func dbMiddleware(db *sql.DB) echo.MiddlewareFunc {
|
|||
}
|
||||
}
|
||||
|
||||
func render(ctx echo.Context, cmp templ.Component) error {
|
||||
return cmp.Render(ctx.Request().Context(), ctx.Response())
|
||||
}
|
||||
|
||||
func UserTableHandler(c echo.Context) error {
|
||||
return render(c, partials.AddUserTable())
|
||||
}
|
||||
|
||||
func HomeHandler(c echo.Context) error {
|
||||
return c.String(http.StatusOK, "Hello from the home route")
|
||||
|
@ -111,10 +100,10 @@ func AllUserHandler(c echo.Context) error {
|
|||
|
||||
defer rows.Close()
|
||||
|
||||
var users []User
|
||||
var users []models.User
|
||||
|
||||
for rows.Next() {
|
||||
var user User
|
||||
var user models.User
|
||||
|
||||
if err := rows.Scan(&user.ID, &user.Username, &user.Email, &user.Role); err != nil {
|
||||
logger.Fatalf("Error scanning row: %v", err)
|
||||
|
@ -148,7 +137,7 @@ func AddUserHandler(c echo.Context) error {
|
|||
return c.String(http.StatusBadRequest, "<h4>Role is required</h4>")
|
||||
}
|
||||
|
||||
user := User{
|
||||
user := models.User{
|
||||
Username: username,
|
||||
Email: email,
|
||||
Role: role,
|
||||
|
@ -161,7 +150,7 @@ func AddUserHandler(c echo.Context) error {
|
|||
return c.String(http.StatusOK, "<h4>Successfully added " + username + "</h4>")
|
||||
}
|
||||
|
||||
func insertUser(db *sql.DB, user User) (int64, error) {
|
||||
func insertUser(db *sql.DB, user models.User) (int64, error) {
|
||||
result, err := db.Exec("INSERT INTO users (username, email, role) VALUES (?, ?, ?)", user.Username, user.Email, user.Role)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to insert user: %v", err)
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package models
|
||||
|
||||
type User struct {
|
||||
ID int
|
||||
Username string
|
||||
Email string
|
||||
Role string
|
||||
}
|
Loading…
Reference in New Issue