mirror of
https://github.com/cf-sonr/motr.git
synced 2026-01-12 11:09:13 +00:00
38 lines
826 B
Go
38 lines
826 B
Go
//go:build js && wasm
|
|
// +build js,wasm
|
|
|
|
package controller
|
|
|
|
import (
|
|
"github.com/sonr-io/motr/internal/config"
|
|
"github.com/sonr-io/motr/internal/sink/models"
|
|
"github.com/syumai/workers/cloudflare/kv"
|
|
)
|
|
|
|
type Controller struct {
|
|
DB models.Querier
|
|
Handles *kv.Namespace
|
|
Sessions *kv.Namespace
|
|
Server *config.Server
|
|
}
|
|
|
|
func New(cfg config.Config, s *config.Server) (*Controller, error) {
|
|
q, err := cfg.DB.GetQuerier()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
hkv, err := cfg.KV.GetHandles()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
skv, err := cfg.KV.GetSessions()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return create(q, hkv, skv, s), nil
|
|
}
|
|
|
|
func create(q models.Querier, hkv *kv.Namespace, skv *kv.Namespace, srv *config.Server) *Controller {
|
|
return &Controller{DB: q, Handles: hkv, Sessions: skv, Server: srv}
|
|
}
|