MCPcopy
hub / github.com/IceWhaleTech/CasaOS / InitV1Router

Function InitV1Router

route/v1.go:17–201  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

15)
16
17func InitV1Router() http.Handler {
18 e := echo.New()
19
20 e.Use((echo_middleware.CORSWithConfig(echo_middleware.CORSConfig{
21 AllowOrigins: []string{"*"},
22 AllowMethods: []string{echo.POST, echo.GET, echo.OPTIONS, echo.PUT, echo.DELETE},
23 AllowHeaders: []string{echo.HeaderAuthorization, echo.HeaderContentLength, echo.HeaderXCSRFToken, echo.HeaderContentType, echo.HeaderAccessControlAllowOrigin, echo.HeaderAccessControlAllowHeaders, echo.HeaderAccessControlAllowMethods, echo.HeaderConnection, echo.HeaderOrigin, echo.HeaderXRequestedWith},
24 ExposeHeaders: []string{echo.HeaderContentLength, echo.HeaderAccessControlAllowOrigin, echo.HeaderAccessControlAllowHeaders},
25 MaxAge: 172800,
26 AllowCredentials: true,
27 })))
28 e.Use(echo_middleware.Gzip())
29 e.Use(echo_middleware.Recover())
30 e.Use(echo_middleware.Logger())
31
32 e.GET("/v1/sys/debug", v1.GetSystemConfigDebug) // //debug
33
34 e.GET("/v1/sys/version/check", v1.GetSystemCheckVersion)
35 e.GET("/v1/sys/version/current", func(ctx echo.Context) error {
36 return ctx.String(200, common.VERSION)
37 })
38 e.GET("/ping", func(ctx echo.Context) error {
39 return ctx.String(200, "pong")
40 })
41 e.GET("/v1/recover/:type", v1.GetRecoverStorage)
42 v1Group := e.Group("/v1")
43 // e.Any("/v1/test", v1.CheckNetwork)
44 v1Group.Use(echo_middleware.JWTWithConfig(echo_middleware.JWTConfig{
45 Skipper: func(c echo.Context) bool {
46 return c.RealIP() == "::1" || c.RealIP() == "127.0.0.1"
47 },
48 ParseTokenFunc: func(token string, c echo.Context) (interface{}, error) {
49 valid, claims, err := jwt.Validate(token, func() (*ecdsa.PublicKey, error) { return external.GetPublicKey(config.CommonInfo.RuntimePath) })
50 if err != nil || !valid {
51 return nil, echo.ErrUnauthorized
52 }
53
54 c.Request().Header.Set("user_id", strconv.Itoa(claims.ID))
55
56 return claims, nil
57 },
58 TokenLookupFuncs: []echo_middleware.ValuesExtractor{
59 func(ctx echo.Context) ([]string, error) {
60 if len(ctx.Request().Header.Get(echo.HeaderAuthorization)) > 0 {
61 return []string{ctx.Request().Header.Get(echo.HeaderAuthorization)}, nil
62 }
63 return []string{ctx.QueryParam("token")}, nil
64 },
65 },
66 }))
67 {
68
69 v1SysGroup := v1Group.Group("/sys")
70 v1SysGroup.Use()
71 {
72 v1SysGroup.GET("/version", v1.GetSystemCheckVersion) // version/check
73
74 v1SysGroup.POST("/update", v1.SystemUpdate)

Callers 1

mainFunction · 0.92

Calls 2

ValidateMethod · 0.80
RequestMethod · 0.80

Tested by

no test coverage detected