mirror of
https://github.com/akyaiy/GoSally-mvp.git
synced 2026-01-03 19:12:25 +00:00
- Removed obsolete files: `hanle_multi.go`, `logger.go`, `handle_com.go`, `handle_list.go`, `server.go`, and `utils.go` from the `general_server` and `sv1` packages. - Introduced new implementations for the `GeneralServer` and `HandlerV1` in the `core` package, enhancing the overall architecture. - Updated the `go.mod` and `go.sum` files to include new dependencies. - Added a new configuration structure in `config.yaml` and `config.go` for better management of application settings. - Implemented a Lua command handling mechanism in `handle_com.go` and `handle_list.go` for improved command execution. - Enhanced logging capabilities with a new logger setup in `logger.go`. - Added a new Lua script `http.lua` for handling HTTP requests.
68 lines
1.2 KiB
Go
68 lines
1.2 KiB
Go
package sv1
|
|
|
|
import (
|
|
"log/slog"
|
|
"net/http"
|
|
"regexp"
|
|
|
|
"github.com/akyaiy/GoSally-mvp/core/config"
|
|
)
|
|
|
|
type ServerV1UtilsContract interface {
|
|
extractDescriptionStatic(path string) (string, error)
|
|
writeJSONError(status int, msg string)
|
|
newUUID() string
|
|
|
|
_errNotFound()
|
|
ErrNotFound(w http.ResponseWriter, r *http.Request)
|
|
}
|
|
|
|
// structure only for initialization
|
|
type HandlerV1InitStruct struct {
|
|
Ver string
|
|
Log slog.Logger
|
|
Config *config.ConfigConf
|
|
AllowedCmd *regexp.Regexp
|
|
ListAllowedCmd *regexp.Regexp
|
|
}
|
|
|
|
type HandlerV1 struct {
|
|
w http.ResponseWriter
|
|
r *http.Request
|
|
|
|
log slog.Logger
|
|
|
|
cfg *config.ConfigConf
|
|
|
|
allowedCmd *regexp.Regexp
|
|
listAllowedCmd *regexp.Regexp
|
|
|
|
ver string
|
|
}
|
|
|
|
func InitV1Server(o *HandlerV1InitStruct) *HandlerV1 {
|
|
return &HandlerV1{
|
|
log: o.Log,
|
|
cfg: o.Config,
|
|
allowedCmd: o.AllowedCmd,
|
|
listAllowedCmd: o.ListAllowedCmd,
|
|
ver: o.Ver,
|
|
}
|
|
}
|
|
|
|
func (h *HandlerV1) Handle(w http.ResponseWriter, r *http.Request) {
|
|
h.w = w
|
|
h.r = r
|
|
h._handle()
|
|
}
|
|
|
|
func (h *HandlerV1) HandleList(w http.ResponseWriter, r *http.Request) {
|
|
h.w = w
|
|
h.r = r
|
|
h._handleList()
|
|
}
|
|
|
|
func (h *HandlerV1) GetVersion() string {
|
|
return h.ver
|
|
}
|