TinySkin/server/route/route.go
2023-09-02 17:39:58 +08:00

38 lines
1.0 KiB
Go

package route
import (
"database/sql"
"fmt"
"log/slog"
"github.com/bwmarrin/snowflake"
"github.com/go-playground/validator/v10"
"github.com/julienschmidt/httprouter"
"github.com/xmdhs/authlib-skin/config"
"github.com/xmdhs/authlib-skin/db/mysql"
"github.com/xmdhs/authlib-skin/handle"
)
func NewRoute(l *slog.Logger, q mysql.Querier, v *validator.Validate, db *sql.DB, snow *snowflake.Node, c config.Config) (*httprouter.Router, error) {
r := httprouter.New()
err := newYggdrasil(r)
if err != nil {
return nil, fmt.Errorf("NewRoute: %w", err)
}
err = newSkinApi(r, l, q, v, db, snow, c)
if err != nil {
return nil, fmt.Errorf("NewRoute: %w", err)
}
return r, nil
}
func newYggdrasil(r *httprouter.Router) error {
r.POST("/api/authserver/authenticate", nil)
return nil
}
func newSkinApi(r *httprouter.Router, l *slog.Logger, q mysql.Querier, v *validator.Validate, db *sql.DB, snow *snowflake.Node, c config.Config) error {
r.PUT("/api/v1/user/reg", handle.Reg(l, q, v, db, snow, c))
return nil
}