changed handlers summoning
This commit is contained in:
@@ -1,31 +1,49 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"log" // Додано імпорт log
|
||||
|
||||
"github.com/iancoleman/strcase"
|
||||
"github.com/spf13/viper"
|
||||
|
||||
"git.kplus.net.ua/yevhen/resource-scraper/pkg/service"
|
||||
"git.kplus.net.ua/yevhen/resource-scraper/types/constant"
|
||||
)
|
||||
|
||||
// consoleCommandHandler визначає тип для функцій-обробників консольних команд.
|
||||
type consoleCommandHandler func() string
|
||||
|
||||
type Handler struct {
|
||||
services *service.Service
|
||||
// consoleCommands зберігає мапу назв команд до відповідних функцій-обробників.
|
||||
consoleCommands map[string]consoleCommandHandler
|
||||
}
|
||||
|
||||
func New(services *service.Service) *Handler {
|
||||
return &Handler{services: services}
|
||||
h := &Handler{services: services}
|
||||
|
||||
// Ініціалізація мапи команд.
|
||||
h.consoleCommands = map[string]consoleCommandHandler{
|
||||
"console": h.Console,
|
||||
"info": h.Info,
|
||||
"metal-archives": h.MetalArchives,
|
||||
"prescene": h.Prescene,
|
||||
"rutracker": h.Rutracker,
|
||||
"stb": h.STB,
|
||||
//"web": h.Web,
|
||||
}
|
||||
|
||||
return h
|
||||
}
|
||||
|
||||
func (h *Handler) InitConsole() string {
|
||||
methodName := strcase.ToCamel(viper.GetString(constant.FlagScopeEnable))
|
||||
commandName := viper.GetString(constant.FlagScopeEnable)
|
||||
|
||||
immutable := reflect.ValueOf(h)
|
||||
method := immutable.MethodByName(methodName)
|
||||
v := method.Call(nil)
|
||||
|
||||
return methodName + " launched, " + v[0].String() + "\n"
|
||||
if cmdFunc, ok := h.consoleCommands[commandName]; ok {
|
||||
return commandName + " launched, " + cmdFunc() + "\n"
|
||||
} else {
|
||||
log.Printf("Error: unknown console command '%s'", commandName)
|
||||
return "Error: unknown console command"
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Handler) InitRoutes() string {
|
||||
|
||||
Reference in New Issue
Block a user