Files
quark-go/pkg/adapter/zeroadapter/zeroadapter.go
2023-02-10 11:48:07 +08:00

164 lines
4.5 KiB
Go

package zeroadapter
import (
"net/http"
"github.com/quarkcms/quark-go/pkg/builder"
"github.com/quarkcms/quark-go/pkg/msg"
"github.com/zeromicro/go-zero/rest"
"github.com/zeromicro/go-zero/rest/httpx"
)
// 适配gozero框架路由
func RouteAdapter(b *builder.Engine, routePath string) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
// 转换Request对象
context := b.NewContext(w, r)
// 设置路由
context.SetFullPath(routePath)
err := b.Render(context)
if err != nil {
httpx.OkJson(w, msg.Error(err.Error(), ""))
return
}
}
}
// 适配gozero框架
func Adapter(b *builder.Engine, server *rest.Server) {
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/api/admin/login/:resource/index",
Handler: RouteAdapter(b, "/api/admin/login/:resource/index"),
},
{
Method: http.MethodPost,
Path: "/api/admin/login/:resource/handle",
Handler: RouteAdapter(b, "/api/admin/login/:resource/handle"),
},
{
Method: http.MethodGet,
Path: "/api/admin/login/:resource/captchaId",
Handler: RouteAdapter(b, "/api/admin/login/:resource/captchaId"),
},
{
Method: http.MethodGet,
Path: "/api/admin/login/:resource/captcha/:id",
Handler: RouteAdapter(b, "/api/admin/login/:resource/captcha/:id"),
},
{
Method: http.MethodGet,
Path: "/api/admin/logout/:resource/handle",
Handler: RouteAdapter(b, "/api/admin/logout/:resource/handle"),
},
{
Method: http.MethodGet,
Path: "/api/admin/dashboard/:resource/index",
Handler: RouteAdapter(b, "/api/admin/dashboard/:resource/index"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/index",
Handler: RouteAdapter(b, "/api/admin/:resource/index"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/editable",
Handler: RouteAdapter(b, "/api/admin/:resource/editable"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/action/:uriKey",
Handler: RouteAdapter(b, "/api/admin/:resource/action/:uriKey"),
},
{
Method: http.MethodPost,
Path: "/api/admin/:resource/action/:uriKey",
Handler: RouteAdapter(b, "/api/admin/:resource/action/:uriKey"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/create",
Handler: RouteAdapter(b, "/api/admin/:resource/create"),
},
{
Method: http.MethodPost,
Path: "/api/admin/:resource/store",
Handler: RouteAdapter(b, "/api/admin/:resource/store"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/edit",
Handler: RouteAdapter(b, "/api/admin/:resource/edit"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/edit/values",
Handler: RouteAdapter(b, "/api/admin/:resource/edit/values"),
},
{
Method: http.MethodPost,
Path: "/api/admin/:resource/save",
Handler: RouteAdapter(b, "/api/admin/:resource/save"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/detail",
Handler: RouteAdapter(b, "/api/admin/:resource/detail"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/export",
Handler: RouteAdapter(b, "/api/admin/:resource/export"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/import",
Handler: RouteAdapter(b, "/api/admin/:resource/import"),
},
{
Method: http.MethodPost,
Path: "/api/admin/:resource/import",
Handler: RouteAdapter(b, "/api/admin/:resource/import"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/import/template",
Handler: RouteAdapter(b, "/api/admin/:resource/import/template"),
},
{
Method: http.MethodGet,
Path: "/api/admin/:resource/:uriKey/form",
Handler: RouteAdapter(b, "/api/admin/:resource/:uriKey/form"),
},
{
Method: http.MethodPost,
Path: "/api/admin/upload/:resource/handle",
Handler: RouteAdapter(b, "/api/admin/upload/:resource/handle"),
},
{
Method: http.MethodGet,
Path: "/api/admin/upload/:resource/getList",
Handler: RouteAdapter(b, "/api/admin/upload/:resource/getList"),
},
{
Method: http.MethodPost,
Path: "/api/admin/upload/:resource/delete",
Handler: RouteAdapter(b, "/api/admin/upload/:resource/delete"),
},
{
Method: http.MethodPost,
Path: "/api/admin/upload/:resource/crop",
Handler: RouteAdapter(b, "/api/admin/upload/:resource/crop"),
},
},
)
}