// app/controllers/base_controller.go
package controllers
import (
"context"
"errors"
"net/http"
"golazy.dev/lazycontroller"
)
var ErrLoginRequired = errors.New("login required")
type BaseController struct {
lazycontroller.Base
}
func NewBaseController(ctx context.Context) (BaseController, error) {
base, err := lazycontroller.NewBase(ctx)
if err != nil {
return BaseController{}, err
}
return BaseController{Base: base}, nil
}
func (c *BaseController) HandleError(w http.ResponseWriter, r *http.Request, err error) error {
if errors.Is(err, ErrLoginRequired) {
return c.RedirectToRoute("login", lazycontroller.RedirectStatus(http.StatusSeeOther))
}
return c.Base.HandleError(w, r, err)
}