package views import ( "iris-test/app/repository" "github.com/kataras/iris/v12" ) 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() ordering := []repository.Ordering{ repository.NewOrdering("first_name", repository.ORDERING_ASC), repository.NewOrdering("last_name", repository.ORDERING_ASC), } isActive := true users := userRepository.List(&repository.UserFilter{IsActive: &isActive}, &pagination, &ordering) ctx.ViewData("users", users) if err := ctx.View("pages/users.jet"); err != nil { showError(ctx, err) 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") }