refactor: aggiunta documentazione sull'architettura e varie migliorie qua e là
This commit is contained in:
+18
-13
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
|
||||
"git.phc.dm.unipi.it/phc/website/services/config"
|
||||
@@ -15,6 +16,9 @@ import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
// Logger is the debug logger, in the future this will be disabled and discard by default.
|
||||
var Logger *log.Logger = log.New(os.Stderr, "[services/server/dev] ", log.Lmsgprefix)
|
||||
|
||||
// slot represents a private "write only" service
|
||||
var slot = sl.NewSlot[*devService]()
|
||||
|
||||
@@ -26,7 +30,7 @@ func InjectInto(l *sl.ServiceLocator) {
|
||||
func UseRoutesMetadata(l *sl.ServiceLocator) map[string]any {
|
||||
dev, err := sl.Use(l, slot)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
Logger.Fatal(err)
|
||||
}
|
||||
|
||||
return map[string]any{
|
||||
@@ -100,9 +104,9 @@ func Configure(l *sl.ServiceLocator) (*devService, error) {
|
||||
|
||||
r.Post("/api/development/render", func(c *fiber.Ctx) error {
|
||||
var data struct {
|
||||
Route string `json:"route"`
|
||||
Page string `json:"page"`
|
||||
Request struct {
|
||||
Route string `json:"route"`
|
||||
HtmlPage string `json:"page"`
|
||||
Request struct {
|
||||
ParamsMap map[string]string `json:"params"`
|
||||
QueryMap map[string]string `json:"query"`
|
||||
} `json:"request"`
|
||||
@@ -112,7 +116,9 @@ func Configure(l *sl.ServiceLocator) (*devService, error) {
|
||||
return err
|
||||
}
|
||||
|
||||
repr.Print(data)
|
||||
Logger.Printf(`server rendering route "%s"`, data.Route)
|
||||
Logger.Printf(`- params: %s`, repr.String(data.Request.ParamsMap))
|
||||
Logger.Printf(`- query: %s`, repr.String(data.Request.QueryMap))
|
||||
|
||||
handler, ok := d.dynamicRoutesHandlers[data.Route]
|
||||
if !ok {
|
||||
@@ -121,7 +127,7 @@ func Configure(l *sl.ServiceLocator) (*devService, error) {
|
||||
|
||||
var buf bytes.Buffer
|
||||
if err := handler(&buf, devServerRequest{
|
||||
[]byte(data.Page),
|
||||
[]byte(data.HtmlPage),
|
||||
data.Request.ParamsMap,
|
||||
data.Request.QueryMap,
|
||||
}); err != nil {
|
||||
@@ -136,27 +142,26 @@ func Configure(l *sl.ServiceLocator) (*devService, error) {
|
||||
|
||||
// RegisterRoute will register the provided "mountPoint" to the "frontendHtml" page
|
||||
func RegisterRoute(l *sl.ServiceLocator, mountPoint, frontendFile string) {
|
||||
log.Printf(`registering vite route %q for %q`, frontendFile, mountPoint)
|
||||
|
||||
dev, err := sl.Use(l, slot)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
Logger.Fatal(err)
|
||||
}
|
||||
|
||||
dev.staticRoutes[mountPoint] = frontendFile
|
||||
log.Print(dev)
|
||||
|
||||
Logger.Printf(`registered vite route "%v" for "%v"`, frontendFile, mountPoint)
|
||||
}
|
||||
|
||||
func RegisterDynamicRoute(l *sl.ServiceLocator, mountPoint, frontendFile string, handler Handler) {
|
||||
log.Printf(`registering vite route %q for %q`, frontendFile, mountPoint)
|
||||
|
||||
dev, err := sl.Use(l, slot)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
Logger.Fatal(err)
|
||||
}
|
||||
|
||||
dev.dynamicRoutes[mountPoint] = frontendFile
|
||||
dev.dynamicRoutesHandlers[mountPoint] = handler
|
||||
|
||||
Logger.Printf(`registered vite route "%v" for "%v"`, frontendFile, mountPoint)
|
||||
}
|
||||
|
||||
func GetArtifactPath(frontendFile string) string {
|
||||
|
||||
Reference in New Issue
Block a user