45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package home
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
v1 "management/internal/erpserver/service/v1"
|
|
"management/internal/erpserver/templ/home"
|
|
"management/internal/pkg/mid"
|
|
"management/internal/pkg/render"
|
|
)
|
|
|
|
type app struct {
|
|
render render.Renderer
|
|
userService v1.UserService
|
|
menuService v1.MenuService
|
|
loginLogService v1.LoginLogService
|
|
}
|
|
|
|
func newApp(
|
|
render render.Renderer,
|
|
userService v1.UserService,
|
|
menuService v1.MenuService,
|
|
loginLogService v1.LoginLogService,
|
|
) *app {
|
|
return &app{
|
|
render: render,
|
|
userService: userService,
|
|
menuService: menuService,
|
|
loginLogService: loginLogService,
|
|
}
|
|
}
|
|
|
|
func (a *app) home(w http.ResponseWriter, r *http.Request) {
|
|
ctx := r.Context()
|
|
a.render.Render(ctx, w, home.Home(ctx))
|
|
}
|
|
|
|
func (a *app) dashboard(w http.ResponseWriter, r *http.Request) {
|
|
ctx := r.Context()
|
|
auth := mid.GetUser(ctx)
|
|
lt, _ := a.loginLogService.LoginTime(ctx, auth.Email)
|
|
c := a.loginLogService.LoginCount(ctx, auth.Email)
|
|
a.render.Render(ctx, w, home.Dashboard(ctx, int(c), lt.ThisLoginTime, lt.LastLoginTime))
|
|
}
|