changed handlers summoning

This commit is contained in:
2025-11-12 12:56:22 +02:00
parent c6d1a8d455
commit 8eeb962016
3 changed files with 30 additions and 14 deletions

View File

@@ -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 {