mirror of
https://github.com/mentos1386/zdravko.git
synced 2024-11-29 10:41:19 +00:00
Tine
bb1ba5ed58
KeyValue store will be used by Incidents, so that the functions can decide based on history not just on the event that triggered them.
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package handlers
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"code.tjo.space/mentos1386/zdravko/internal/config"
|
|
"code.tjo.space/mentos1386/zdravko/internal/kv"
|
|
"code.tjo.space/mentos1386/zdravko/web/templates/components"
|
|
"github.com/gorilla/sessions"
|
|
"github.com/jmoiron/sqlx"
|
|
"go.temporal.io/sdk/client"
|
|
)
|
|
|
|
var Pages = []*components.Page{
|
|
{Path: "/", Title: "Status", Breadcrumb: "Status"},
|
|
{Path: "/incidents", Title: "Incidents", Breadcrumb: "Incidents"},
|
|
{Path: "/settings", Title: "Settings", Breadcrumb: "Settings"},
|
|
}
|
|
|
|
func GetPageByTitle(pages []*components.Page, title string) *components.Page {
|
|
for _, p := range pages {
|
|
if p.Title == title {
|
|
return p
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type BaseHandler struct {
|
|
db *sqlx.DB
|
|
kvStore kv.KeyValueStore
|
|
config *config.ServerConfig
|
|
logger *slog.Logger
|
|
|
|
temporal client.Client
|
|
|
|
store *sessions.CookieStore
|
|
}
|
|
|
|
func NewBaseHandler(db *sqlx.DB, kvStore kv.KeyValueStore, temporal client.Client, config *config.ServerConfig, logger *slog.Logger) *BaseHandler {
|
|
store := sessions.NewCookieStore([]byte(config.SessionSecret))
|
|
|
|
return &BaseHandler{
|
|
db: db,
|
|
kvStore: kvStore,
|
|
config: config,
|
|
logger: logger,
|
|
temporal: temporal,
|
|
store: store,
|
|
}
|
|
}
|