AnP/Go/Managers/HTTPServersManager.go

45 lines
1021 B
Go

package Managers
import (
"AnP/Drivers"
"AnP/Models"
)
type HTTPServersManager struct {
anp Models.AnPModel
servers map[string]*Drivers.HTTPDriver
}
func NewHTTPServersManager(anp Models.AnPModel, inputs any) HTTPServersManager {
var manager HTTPServersManager = HTTPServersManager{
anp: anp,
servers: map[string]*Drivers.HTTPDriver{},
}
for _, key := range []string{
"default_http_servers_files", "default_http_servers", "http_servers_files", "http_servers",
} {
manager.Add(anp.Settings.Get(key, nil, nil), false)
}
return manager
}
func (_self *HTTPServersManager) Add(inputs any, overwrite bool) {
_self.anp.Request.LoadJSON(inputs, func(response any) {
switch group := response.(type) {
case map[string]any:
for key, data := range group {
_, exists := _self.servers[key]
if overwrite || !exists {
switch subinputs := data.(type) {
case map[string]any:
_self.servers[key] = Drivers.NewHTTPDriver(_self.anp, subinputs)
}
}
}
}
}, true)
}