mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-19 20:32:35 +02:00
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package v1
|
|
|
|
import (
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/yusing/go-proxy/internal/common"
|
|
config "github.com/yusing/go-proxy/internal/config/types"
|
|
"github.com/yusing/go-proxy/internal/net/gphttp"
|
|
"github.com/yusing/go-proxy/internal/utils"
|
|
)
|
|
|
|
func ListFilesHandler(cfg config.ConfigInstance, w http.ResponseWriter, r *http.Request) {
|
|
files, err := utils.ListFiles(common.ConfigBasePath, 0, true)
|
|
if err != nil {
|
|
gphttp.ServerError(w, r, err)
|
|
return
|
|
}
|
|
resp := map[FileType][]string{
|
|
FileTypeConfig: make([]string, 0),
|
|
FileTypeProvider: make([]string, 0),
|
|
FileTypeMiddleware: make([]string, 0),
|
|
}
|
|
|
|
for _, file := range files {
|
|
t := fileType(file)
|
|
file = strings.TrimPrefix(file, common.ConfigBasePath+"/")
|
|
resp[t] = append(resp[t], file)
|
|
}
|
|
|
|
mids, err := utils.ListFiles(common.MiddlewareComposeBasePath, 0, true)
|
|
if err != nil {
|
|
gphttp.ServerError(w, r, err)
|
|
return
|
|
}
|
|
for _, mid := range mids {
|
|
mid = strings.TrimPrefix(mid, common.MiddlewareComposeBasePath+"/")
|
|
resp[FileTypeMiddleware] = append(resp[FileTypeMiddleware], mid)
|
|
}
|
|
gphttp.RespondJSON(w, r, resp)
|
|
}
|