From 6f75bb7593a0cbe9898f0d67b18f68f49ae0aa55 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 26 Oct 2025 01:05:18 +0800 Subject: [PATCH] refactor(api): replace apitypes module and fix swagger generation --- Makefile | 10 ++-- agent/pkg/agent/config.go | 2 +- internal/api/handler.go | 2 +- internal/api/types/error.go | 55 ---------------------- internal/api/types/query.go | 29 ------------ internal/api/types/success.go | 18 ------- internal/api/v1/agent/list.go | 3 +- internal/api/v1/cert/info.go | 2 +- internal/api/v1/cert/renew.go | 2 +- internal/api/v1/docker/container.go | 2 +- internal/api/v1/docker/containers.go | 2 + internal/api/v1/docker/info.go | 2 + internal/api/v1/docker/logs.go | 2 +- internal/api/v1/docker/restart.go | 2 +- internal/api/v1/docker/start.go | 2 +- internal/api/v1/docker/stop.go | 2 +- internal/api/v1/docker/utils.go | 2 +- internal/api/v1/favicon.go | 2 +- internal/api/v1/file/get.go | 2 +- internal/api/v1/file/list.go | 2 +- internal/api/v1/file/set.go | 2 +- internal/api/v1/file/validate.go | 2 +- internal/api/v1/health.go | 2 + internal/api/v1/homepage/categories.go | 2 + internal/api/v1/homepage/item_click.go | 2 +- internal/api/v1/homepage/items.go | 2 +- internal/api/v1/homepage/overrides.go | 2 +- internal/api/v1/icons.go | 2 +- internal/api/v1/metrics/all_system_info.go | 2 +- internal/api/v1/metrics/system_info.go | 2 +- internal/api/v1/metrics/upime.go | 2 + internal/api/v1/reload.go | 2 +- internal/api/v1/route/by_provider.go | 2 + internal/api/v1/route/providers.go | 4 +- internal/api/v1/route/route.go | 2 +- internal/gopsutil | 2 +- internal/homepage/favicon.go | 2 +- internal/logging/memlogger/mem_logger.go | 2 +- internal/metrics/period/handler.go | 2 +- internal/route/route.go | 4 +- internal/route/types/port.go | 2 +- 41 files changed, 53 insertions(+), 138 deletions(-) delete mode 100644 internal/api/types/error.go delete mode 100644 internal/api/types/query.go delete mode 100644 internal/api/types/success.go diff --git a/Makefile b/Makefile index 95f2089b..89c42ab2 100755 --- a/Makefile +++ b/Makefile @@ -3,8 +3,8 @@ export VERSION ?= $(shell git describe --tags --abbrev=0) export BUILD_DATE ?= $(shell date -u +'%Y%m%d-%H%M') export GOOS = linux -WEBUI_DIR ?= ../godoxy-frontend -DOCS_DIR ?= ../godoxy-wiki +WEBUI_DIR ?= ../godoxy-webui +DOCS_DIR ?= ${WEBUI_DIR}/wiki LDFLAGS = -X github.com/yusing/goutils/version.version=${VERSION} -checklinkname=0 @@ -143,15 +143,17 @@ push-github: git push origin $(shell git rev-parse --abbrev-ref HEAD) gen-swagger: - swag init --parseDependency --parseInternal -g handler.go -d internal/api -o internal/api/v1/docs + swag init --parseDependency --parseInternal --parseFuncBody -g handler.go -d internal/api -o internal/api/v1/docs python3 scripts/fix-swagger-json.py # we don't need this rm internal/api/v1/docs/docs.go gen-swagger-markdown: gen-swagger + # brew tap go-swagger/go-swagger && brew install go-swagger swagger generate markdown -f internal/api/v1/docs/swagger.yaml --skip-validation --output ${DOCS_DIR}/src/API.md gen-api-types: gen-swagger # --disable-throw-on-error - pnpx swagger-typescript-api generate --sort-types --generate-union-enums --axios --add-readonly --route-types \ + bunx --bun swagger-typescript-api generate --sort-types --generate-union-enums --axios --add-readonly --route-types \ --responses -o ${WEBUI_DIR}/lib -n api.ts -p internal/api/v1/docs/swagger.json + bunx --bun prettier --config ${WEBUI_DIR}/.prettierrc --write ${WEBUI_DIR}/lib/api.ts \ No newline at end of file diff --git a/agent/pkg/agent/config.go b/agent/pkg/agent/config.go index 59db7ec3..95b4c28f 100644 --- a/agent/pkg/agent/config.go +++ b/agent/pkg/agent/config.go @@ -23,7 +23,7 @@ import ( type AgentConfig struct { Addr string `json:"addr"` Name string `json:"name"` - Version version.Version `json:"version"` + Version version.Version `json:"version" swaggertype:"string"` Runtime ContainerRuntime `json:"runtime"` httpClient *http.Client diff --git a/internal/api/handler.go b/internal/api/handler.go index 96c4b37b..e25f1d39 100644 --- a/internal/api/handler.go +++ b/internal/api/handler.go @@ -8,7 +8,6 @@ import ( "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "github.com/rs/zerolog/log" - apitypes "github.com/yusing/godoxy/internal/api/types" apiV1 "github.com/yusing/godoxy/internal/api/v1" agentApi "github.com/yusing/godoxy/internal/api/v1/agent" authApi "github.com/yusing/godoxy/internal/api/v1/auth" @@ -20,6 +19,7 @@ import ( routeApi "github.com/yusing/godoxy/internal/api/v1/route" "github.com/yusing/godoxy/internal/auth" "github.com/yusing/godoxy/internal/common" + apitypes "github.com/yusing/goutils/apitypes" gperr "github.com/yusing/goutils/errs" ) diff --git a/internal/api/types/error.go b/internal/api/types/error.go deleted file mode 100644 index 2853bc68..00000000 --- a/internal/api/types/error.go +++ /dev/null @@ -1,55 +0,0 @@ -package apitypes - -import ( - "errors" - - gperr "github.com/yusing/goutils/errs" -) - -type ErrorResponse struct { - Message string `json:"message"` - Error string `json:"error,omitempty" extensions:"x-nullable"` -} // @name ErrorResponse - -type serverError struct { - Message string - Err error -} - -// Error returns a generic error response -func Error(message string, err ...error) ErrorResponse { - if len(err) > 0 { - var gpErr gperr.Error - if errors.As(err[0], &gpErr) { - return ErrorResponse{ - Message: message, - Error: string(gpErr.Plain()), - } - } - return ErrorResponse{ - Message: message, - Error: err[0].Error(), - } - } - return ErrorResponse{ - Message: message, - } -} - -func InternalServerError(err error, message string) error { - return serverError{ - Message: message, - Err: err, - } -} - -func (e serverError) Error() string { - if e.Err != nil { - return e.Message + ": " + e.Err.Error() - } - return e.Message -} - -func (e serverError) Unwrap() error { - return e.Err -} diff --git a/internal/api/types/query.go b/internal/api/types/query.go deleted file mode 100644 index db1e6e9a..00000000 --- a/internal/api/types/query.go +++ /dev/null @@ -1,29 +0,0 @@ -package apitypes - -type QueryOptions struct { - Limit int `binding:"required,min=1,max=20" form:"limit"` - Offset int `binding:"omitempty,min=0" form:"offset"` - OrderBy QueryOrder `binding:"omitempty,oneof=created_at updated_at" form:"order_by"` - Order QueryOrderDirection `binding:"omitempty,oneof=asc desc" form:"order"` -} - -type QueryOrder string - -const ( - QueryOrderCreatedAt QueryOrder = "created_at" - QueryOrderUpdatedAt QueryOrder = "updated_at" -) - -type QueryOrderDirection string - -const ( - QueryOrderDirectionAsc QueryOrderDirection = "asc" - QueryOrderDirectionDesc QueryOrderDirection = "desc" -) - -type QueryResponse struct { - Total int64 `json:"total"` - Limit int `json:"limit"` - Offset int `json:"offset"` - HasMore bool `json:"has_more"` -} diff --git a/internal/api/types/success.go b/internal/api/types/success.go deleted file mode 100644 index a74c7744..00000000 --- a/internal/api/types/success.go +++ /dev/null @@ -1,18 +0,0 @@ -package apitypes - -type SuccessResponse struct { - Message string `json:"message"` - Details map[string]any `json:"details,omitempty" extensions:"x-nullable"` -} // @name SuccessResponse - -func Success(message string, extra ...map[string]any) SuccessResponse { - if len(extra) > 0 { - return SuccessResponse{ - Message: message, - Details: extra[0], - } - } - return SuccessResponse{ - Message: message, - } -} diff --git a/internal/api/v1/agent/list.go b/internal/api/v1/agent/list.go index bc93caff..73968fd7 100644 --- a/internal/api/v1/agent/list.go +++ b/internal/api/v1/agent/list.go @@ -8,6 +8,8 @@ import ( "github.com/yusing/godoxy/agent/pkg/agent" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/websocket" + + _ "github.com/yusing/goutils/apitypes" ) // @x-id "list" @@ -19,7 +21,6 @@ import ( // @Produce json // @Success 200 {array} Agent // @Failure 403 {object} apitypes.ErrorResponse -// @Failure 500 {object} apitypes.ErrorResponse // @Router /agent/list [get] func List(c *gin.Context) { if httpheaders.IsWebsocket(c.Request.Header) { diff --git a/internal/api/v1/cert/info.go b/internal/api/v1/cert/info.go index 75b6f93a..882f3763 100644 --- a/internal/api/v1/cert/info.go +++ b/internal/api/v1/cert/info.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/autocert" + apitypes "github.com/yusing/goutils/apitypes" ) type CertInfo struct { diff --git a/internal/api/v1/cert/renew.go b/internal/api/v1/cert/renew.go index 7c4d21b2..816e458a 100644 --- a/internal/api/v1/cert/renew.go +++ b/internal/api/v1/cert/renew.go @@ -6,9 +6,9 @@ import ( "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/autocert" "github.com/yusing/godoxy/internal/logging/memlogger" + apitypes "github.com/yusing/goutils/apitypes" gperr "github.com/yusing/goutils/errs" "github.com/yusing/goutils/http/websocket" ) diff --git a/internal/api/v1/docker/container.go b/internal/api/v1/docker/container.go index 8f016202..108a9815 100644 --- a/internal/api/v1/docker/container.go +++ b/internal/api/v1/docker/container.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/docker" + apitypes "github.com/yusing/goutils/apitypes" ) // @x-id "container" diff --git a/internal/api/v1/docker/containers.go b/internal/api/v1/docker/containers.go index 06f32962..4d6c1d05 100644 --- a/internal/api/v1/docker/containers.go +++ b/internal/api/v1/docker/containers.go @@ -7,6 +7,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/gin-gonic/gin" gperr "github.com/yusing/goutils/errs" + + _ "github.com/yusing/goutils/apitypes" ) type ContainerState = container.ContainerState // @name ContainerState diff --git a/internal/api/v1/docker/info.go b/internal/api/v1/docker/info.go index 43f4caf0..f5f79248 100644 --- a/internal/api/v1/docker/info.go +++ b/internal/api/v1/docker/info.go @@ -8,6 +8,8 @@ import ( "github.com/gin-gonic/gin" gperr "github.com/yusing/goutils/errs" strutils "github.com/yusing/goutils/strings" + + _ "github.com/yusing/goutils/apitypes" ) type containerStats struct { diff --git a/internal/api/v1/docker/logs.go b/internal/api/v1/docker/logs.go index a871bf2e..917ee1f2 100644 --- a/internal/api/v1/docker/logs.go +++ b/internal/api/v1/docker/logs.go @@ -10,8 +10,8 @@ import ( "github.com/docker/docker/pkg/stdcopy" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/docker" + apitypes "github.com/yusing/goutils/apitypes" "github.com/yusing/goutils/http/websocket" "github.com/yusing/goutils/task" ) diff --git a/internal/api/v1/docker/restart.go b/internal/api/v1/docker/restart.go index cd6d50a0..5a72eb30 100644 --- a/internal/api/v1/docker/restart.go +++ b/internal/api/v1/docker/restart.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/docker" + apitypes "github.com/yusing/goutils/apitypes" ) // @x-id "restart" diff --git a/internal/api/v1/docker/start.go b/internal/api/v1/docker/start.go index fe480dd3..ad3eb176 100644 --- a/internal/api/v1/docker/start.go +++ b/internal/api/v1/docker/start.go @@ -5,8 +5,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/docker" + apitypes "github.com/yusing/goutils/apitypes" ) type StartRequest struct { diff --git a/internal/api/v1/docker/stop.go b/internal/api/v1/docker/stop.go index 9ecd5a7a..5db90737 100644 --- a/internal/api/v1/docker/stop.go +++ b/internal/api/v1/docker/stop.go @@ -5,8 +5,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/docker" + apitypes "github.com/yusing/goutils/apitypes" ) type StopRequest struct { diff --git a/internal/api/v1/docker/utils.go b/internal/api/v1/docker/utils.go index 4b80e27c..328d19e4 100644 --- a/internal/api/v1/docker/utils.go +++ b/internal/api/v1/docker/utils.go @@ -6,8 +6,8 @@ import ( "time" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/docker" + apitypes "github.com/yusing/goutils/apitypes" gperr "github.com/yusing/goutils/errs" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/websocket" diff --git a/internal/api/v1/favicon.go b/internal/api/v1/favicon.go index b3e4c8af..78be1666 100644 --- a/internal/api/v1/favicon.go +++ b/internal/api/v1/favicon.go @@ -5,9 +5,9 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/homepage" "github.com/yusing/godoxy/internal/route/routes" + apitypes "github.com/yusing/goutils/apitypes" _ "unsafe" ) diff --git a/internal/api/v1/file/get.go b/internal/api/v1/file/get.go index ab538552..392be144 100644 --- a/internal/api/v1/file/get.go +++ b/internal/api/v1/file/get.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/common" + apitypes "github.com/yusing/goutils/apitypes" ) type FileType string // @name FileType diff --git a/internal/api/v1/file/list.go b/internal/api/v1/file/list.go index 643ae536..1af12746 100644 --- a/internal/api/v1/file/list.go +++ b/internal/api/v1/file/list.go @@ -5,9 +5,9 @@ import ( "strings" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/common" "github.com/yusing/godoxy/internal/utils" + apitypes "github.com/yusing/goutils/apitypes" ) type ListFilesResponse struct { diff --git a/internal/api/v1/file/set.go b/internal/api/v1/file/set.go index cae7676d..8fe7825c 100644 --- a/internal/api/v1/file/set.go +++ b/internal/api/v1/file/set.go @@ -5,7 +5,7 @@ import ( "os" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" + apitypes "github.com/yusing/goutils/apitypes" ) type SetFileContentRequest GetFileContentRequest diff --git a/internal/api/v1/file/validate.go b/internal/api/v1/file/validate.go index 94e927c7..4b0e7d28 100644 --- a/internal/api/v1/file/validate.go +++ b/internal/api/v1/file/validate.go @@ -4,10 +4,10 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" config "github.com/yusing/godoxy/internal/config/types" "github.com/yusing/godoxy/internal/net/gphttp/middleware" "github.com/yusing/godoxy/internal/route/provider" + apitypes "github.com/yusing/goutils/apitypes" gperr "github.com/yusing/goutils/errs" ) diff --git a/internal/api/v1/health.go b/internal/api/v1/health.go index ca83fe16..7bc35618 100644 --- a/internal/api/v1/health.go +++ b/internal/api/v1/health.go @@ -8,6 +8,8 @@ import ( "github.com/yusing/godoxy/internal/route/routes" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/websocket" + + _ "github.com/yusing/goutils/apitypes" ) type HealthMap = map[string]routes.HealthInfo // @name HealthMap diff --git a/internal/api/v1/homepage/categories.go b/internal/api/v1/homepage/categories.go index c57414d7..1180ce2b 100644 --- a/internal/api/v1/homepage/categories.go +++ b/internal/api/v1/homepage/categories.go @@ -6,6 +6,8 @@ import ( "github.com/gin-gonic/gin" "github.com/yusing/godoxy/internal/homepage" "github.com/yusing/godoxy/internal/route/routes" + + _ "github.com/yusing/goutils/apitypes" ) // @x-id "categories" diff --git a/internal/api/v1/homepage/item_click.go b/internal/api/v1/homepage/item_click.go index 8b4dce47..4d608e81 100644 --- a/internal/api/v1/homepage/item_click.go +++ b/internal/api/v1/homepage/item_click.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/homepage" + apitypes "github.com/yusing/goutils/apitypes" ) type HomepageOverrideItemClickParams struct { diff --git a/internal/api/v1/homepage/items.go b/internal/api/v1/homepage/items.go index 87ca2c4d..ed0b1b2c 100644 --- a/internal/api/v1/homepage/items.go +++ b/internal/api/v1/homepage/items.go @@ -10,9 +10,9 @@ import ( "github.com/gin-gonic/gin" "github.com/lithammer/fuzzysearch/fuzzy" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/homepage" "github.com/yusing/godoxy/internal/route/routes" + apitypes "github.com/yusing/goutils/apitypes" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/websocket" ) diff --git a/internal/api/v1/homepage/overrides.go b/internal/api/v1/homepage/overrides.go index 5805647a..0733c27e 100644 --- a/internal/api/v1/homepage/overrides.go +++ b/internal/api/v1/homepage/overrides.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/homepage" + apitypes "github.com/yusing/goutils/apitypes" ) type ( diff --git a/internal/api/v1/icons.go b/internal/api/v1/icons.go index a3d4cb01..9e052f2b 100644 --- a/internal/api/v1/icons.go +++ b/internal/api/v1/icons.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/homepage" + apitypes "github.com/yusing/goutils/apitypes" ) type ListIconsRequest struct { diff --git a/internal/api/v1/metrics/all_system_info.go b/internal/api/v1/metrics/all_system_info.go index 2d1bf011..29963d19 100644 --- a/internal/api/v1/metrics/all_system_info.go +++ b/internal/api/v1/metrics/all_system_info.go @@ -12,9 +12,9 @@ import ( "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" "github.com/yusing/godoxy/agent/pkg/agent" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/metrics/period" "github.com/yusing/godoxy/internal/metrics/systeminfo" + apitypes "github.com/yusing/goutils/apitypes" gperr "github.com/yusing/goutils/errs" httputils "github.com/yusing/goutils/http" "github.com/yusing/goutils/http/httpheaders" diff --git a/internal/api/v1/metrics/system_info.go b/internal/api/v1/metrics/system_info.go index bf98c933..36b777f1 100644 --- a/internal/api/v1/metrics/system_info.go +++ b/internal/api/v1/metrics/system_info.go @@ -7,9 +7,9 @@ import ( "github.com/gin-gonic/gin" agentPkg "github.com/yusing/godoxy/agent/pkg/agent" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/metrics/period" "github.com/yusing/godoxy/internal/metrics/systeminfo" + apitypes "github.com/yusing/goutils/apitypes" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/synk" ) diff --git a/internal/api/v1/metrics/upime.go b/internal/api/v1/metrics/upime.go index aba64df4..72eb836b 100644 --- a/internal/api/v1/metrics/upime.go +++ b/internal/api/v1/metrics/upime.go @@ -4,6 +4,8 @@ import ( "github.com/gin-gonic/gin" "github.com/yusing/godoxy/internal/metrics/period" "github.com/yusing/godoxy/internal/metrics/uptime" + + _ "github.com/yusing/goutils/apitypes" ) type UptimeRequest struct { diff --git a/internal/api/v1/reload.go b/internal/api/v1/reload.go index b0e332c3..ba24d46d 100644 --- a/internal/api/v1/reload.go +++ b/internal/api/v1/reload.go @@ -4,8 +4,8 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" "github.com/yusing/godoxy/internal/config" + apitypes "github.com/yusing/goutils/apitypes" ) // @x-id "reload" diff --git a/internal/api/v1/route/by_provider.go b/internal/api/v1/route/by_provider.go index 07996012..04fd8113 100644 --- a/internal/api/v1/route/by_provider.go +++ b/internal/api/v1/route/by_provider.go @@ -6,6 +6,8 @@ import ( "github.com/gin-gonic/gin" "github.com/yusing/godoxy/internal/route" "github.com/yusing/godoxy/internal/route/routes" + + _ "github.com/yusing/goutils/apitypes" ) type RoutesByProvider map[string][]route.Route diff --git a/internal/api/v1/route/providers.go b/internal/api/v1/route/providers.go index 6a8600fa..d7c4291c 100644 --- a/internal/api/v1/route/providers.go +++ b/internal/api/v1/route/providers.go @@ -8,6 +8,8 @@ import ( statequery "github.com/yusing/godoxy/internal/config/query" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/websocket" + + _ "github.com/yusing/goutils/apitypes" ) // @x-id "providers" @@ -17,7 +19,7 @@ import ( // @Tags route,websocket // @Accept json // @Produce json -// @Success 200 {array} config.RouteProviderListResponse +// @Success 200 {array} statequery.RouteProviderListResponse // @Failure 403 {object} apitypes.ErrorResponse // @Failure 500 {object} apitypes.ErrorResponse // @Router /route/providers [get] diff --git a/internal/api/v1/route/route.go b/internal/api/v1/route/route.go index 7110fd16..ff9d3e73 100644 --- a/internal/api/v1/route/route.go +++ b/internal/api/v1/route/route.go @@ -4,9 +4,9 @@ import ( "net/http" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" statequery "github.com/yusing/godoxy/internal/config/query" "github.com/yusing/godoxy/internal/route/routes" + apitypes "github.com/yusing/goutils/apitypes" ) type ListRouteRequest struct { diff --git a/internal/gopsutil b/internal/gopsutil index e8a6c406..bf6fef72 160000 --- a/internal/gopsutil +++ b/internal/gopsutil @@ -1 +1 @@ -Subproject commit e8a6c406cdc5a2614944098418446b81372eec55 +Subproject commit bf6fef72d95e789c8f9045c1e7f6d64ff22a1343 diff --git a/internal/homepage/favicon.go b/internal/homepage/favicon.go index 269286cb..b07056ed 100644 --- a/internal/homepage/favicon.go +++ b/internal/homepage/favicon.go @@ -15,8 +15,8 @@ import ( "github.com/PuerkitoBio/goquery" "github.com/gin-gonic/gin" "github.com/vincent-petithory/dataurl" - apitypes "github.com/yusing/godoxy/internal/api/types" gphttp "github.com/yusing/godoxy/internal/net/gphttp" + apitypes "github.com/yusing/goutils/apitypes" "github.com/yusing/goutils/cache" httputils "github.com/yusing/goutils/http" strutils "github.com/yusing/goutils/strings" diff --git a/internal/logging/memlogger/mem_logger.go b/internal/logging/memlogger/mem_logger.go index 67874a20..5d50cd3d 100644 --- a/internal/logging/memlogger/mem_logger.go +++ b/internal/logging/memlogger/mem_logger.go @@ -9,7 +9,7 @@ import ( "github.com/gin-gonic/gin" "github.com/puzpuzpuz/xsync/v4" - apitypes "github.com/yusing/godoxy/internal/api/types" + apitypes "github.com/yusing/goutils/apitypes" "github.com/yusing/goutils/http/websocket" ) diff --git a/internal/metrics/period/handler.go b/internal/metrics/period/handler.go index a911138d..c20ec5ee 100644 --- a/internal/metrics/period/handler.go +++ b/internal/metrics/period/handler.go @@ -6,8 +6,8 @@ import ( "net/url" "github.com/gin-gonic/gin" - apitypes "github.com/yusing/godoxy/internal/api/types" metricsutils "github.com/yusing/godoxy/internal/metrics/utils" + apitypes "github.com/yusing/goutils/apitypes" "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/websocket" ) diff --git a/internal/route/route.go b/internal/route/route.go index b61ecebc..380c2c72 100644 --- a/internal/route/route.go +++ b/internal/route/route.go @@ -41,7 +41,7 @@ type ( _ utils.NoCopy Alias string `json:"alias"` - Scheme route.Scheme `json:"scheme,omitempty" swaggertype:"string"` + Scheme route.Scheme `json:"scheme,omitempty" swaggertype:"string" enums:"http,https,tcp,udp,fileserver"` Host string `json:"host,omitempty"` Port route.Port `json:"port"` Root string `json:"root,omitempty"` @@ -73,7 +73,7 @@ type ( ProxyURL *nettypes.URL `json:"purl,omitempty" swaggertype:"string"` Excluded bool `json:"excluded,omitempty" extensions:"x-nullable"` - ExcludedReason ExcludedReason `json:"excluded_reason,omitempty" extensions:"x-nullable"` + ExcludedReason ExcludedReason `json:"excluded_reason,omitempty" swaggertype:"string" extensions:"x-nullable"` HealthMon types.HealthMonitor `json:"health,omitempty" swaggerignore:"true"` // for swagger diff --git a/internal/route/types/port.go b/internal/route/types/port.go index 01f79013..769f9831 100644 --- a/internal/route/types/port.go +++ b/internal/route/types/port.go @@ -10,7 +10,7 @@ import ( type Port struct { Listening int `json:"listening"` Proxy int `json:"proxy"` -} +} // @name Port var ( ErrInvalidPortSyntax = gperr.New("invalid port syntax, expect [listening_port:]target_port")