User edit

This commit is contained in:
Eden Kirin
2023-10-26 00:13:16 +02:00
parent 21607a5c48
commit 7024cd0de9
7 changed files with 134 additions and 23 deletions

View File

@ -7,5 +7,8 @@ func CreateRouter(app *iris.Application) {
app.Post("/", PostIndexPage)
app.Get("/users", GetUsersPage)
app.Get("/users/{userId:uuid}", EditUserPage)
app.Post("/users/{userId:uuid}", SaveUserPage)
app.Get("/about", GetAboutPage)
}

View File

@ -6,10 +6,13 @@ import (
"github.com/kataras/iris/v12"
)
func GetUsersPage(ctx iris.Context) {
params1 := []string{"param 1", "param 2", "param 3"}
ctx.ViewData("params1", params1)
type editUserForm struct {
FirstName string `form:"first-name"`
LastName string `form:"last-name"`
Email string `form:"email"`
}
func GetUsersPage(ctx iris.Context) {
userRepository := repository.Dao.UsersRepository
pagination := repository.NewPagination()
@ -18,7 +21,8 @@ func GetUsersPage(ctx iris.Context) {
repository.NewOrdering("last_name", repository.ORDERING_ASC),
}
users := userRepository.List(&repository.UserFilter{}, &pagination, &ordering)
isActive := true
users := userRepository.List(&repository.UserFilter{IsActive: &isActive}, &pagination, &ordering)
ctx.ViewData("users", users)
@ -27,3 +31,42 @@ func GetUsersPage(ctx iris.Context) {
return
}
}
func EditUserPage(ctx iris.Context) {
userId := ctx.Params().Get("userId")
userRepository := repository.Dao.UsersRepository
filter := repository.UserFilter{Id: &userId}
user := userRepository.Get(&filter)
ctx.ViewData("user", user)
ctx.ViewData("currentPath", ctx.Path())
if err := ctx.View("pages/user-edit.jet"); err != nil {
showError(ctx, err)
return
}
}
func SaveUserPage(ctx iris.Context) {
var form editUserForm
err := ctx.ReadForm(&form)
if err != nil {
ctx.StopWithError(iris.StatusBadRequest, err)
return
}
userId := ctx.Params().Get("userId")
userRepository := repository.Dao.UsersRepository
filter := repository.UserFilter{Id: &userId}
user := userRepository.Get(&filter)
user.FirstName = form.FirstName
user.LastName = form.LastName
user.Email = form.Email
userRepository.Save(user)
ctx.Redirect("/users")
}