platform: modularize api/gui, add docs-tests-web foundation, and refresh root config

This commit is contained in:
beckline
2026-03-26 22:40:54 +03:00
parent 0e2d7f61ea
commit 6a56d734c2
562 changed files with 70151 additions and 16423 deletions

View File

@@ -0,0 +1,63 @@
package app
import dnscfgpkg "selective-vpn-api/app/dnscfg"
// ---------------------------------------------------------------------
// EN: `loadDNSMode` loads dns mode from storage or config.
// RU: `loadDNSMode` - загружает dns mode из хранилища или конфига.
// ---------------------------------------------------------------------
func loadDNSMode() DNSMode {
st, needPersist := dnscfgpkg.LoadMode(dnscfgModeConfig())
mode := DNSMode{
ViaSmartDNS: st.ViaSmartDNS,
SmartDNSAddr: st.SmartDNSAddr,
Mode: DNSResolverMode(st.Mode),
}
if needPersist {
_ = saveDNSMode(mode)
}
return mode
}
// ---------------------------------------------------------------------
// EN: `saveDNSMode` saves dns mode to persistent storage.
// RU: `saveDNSMode` - сохраняет dns mode в постоянное хранилище.
// ---------------------------------------------------------------------
func saveDNSMode(mode DNSMode) error {
return dnscfgpkg.SaveMode(
dnscfgModeConfig(),
dnscfgpkg.ModeState{
ViaSmartDNS: mode.ViaSmartDNS,
SmartDNSAddr: mode.SmartDNSAddr,
Mode: string(mode.Mode),
},
)
}
func dnscfgModeConfig() dnscfgpkg.ModeConfig {
return dnscfgpkg.ModeConfig{
Path: dnsModePath,
DirectMode: string(DNSModeDirect),
DefaultSmartDNSAddr: resolveDefaultSmartDNSAddr(),
NormalizeResolverMode: func(mode string, viaSmartDNS bool) string {
return string(normalizeDNSResolverMode(DNSResolverMode(mode), viaSmartDNS))
},
NormalizeSmartDNSAddr: normalizeSmartDNSAddr,
}
}
// ---------------------------------------------------------------------
// EN: `normalizeDNSResolverMode` normalizes dns resolver mode values.
// RU: `normalizeDNSResolverMode` - нормализует значения режима dns резолвера.
// ---------------------------------------------------------------------
func normalizeDNSResolverMode(mode DNSResolverMode, viaSmartDNS bool) DNSResolverMode {
return DNSResolverMode(
dnscfgpkg.NormalizeResolverMode(
string(mode),
viaSmartDNS,
string(DNSModeDirect),
string(DNSModeSmartDNS),
string(DNSModeHybridWildcard),
),
)
}