support amap

This commit is contained in:
MaysWind
2023-06-18 00:26:56 +08:00
parent 251f3fe2da
commit 82d150e53a
9 changed files with 248 additions and 12 deletions
+7 -6
View File
@@ -4,10 +4,11 @@ import "net/http"
// Error codes related to settings
var (
ErrInvalidProtocol = NewSystemError(SystemSubcategorySetting, 0, http.StatusInternalServerError, "invalid server protocol")
ErrInvalidLogMode = NewSystemError(SystemSubcategorySetting, 1, http.StatusInternalServerError, "invalid log mode")
ErrGettingLocalAddress = NewSystemError(SystemSubcategorySetting, 2, http.StatusInternalServerError, "failed to get local address")
ErrInvalidUuidMode = NewSystemError(SystemSubcategorySetting, 3, http.StatusInternalServerError, "invalid uuid mode")
ErrInvalidExchangeRatesDataSource = NewSystemError(SystemSubcategorySetting, 4, http.StatusInternalServerError, "invalid exchange rates data source")
ErrInvalidMapProvider = NewSystemError(SystemSubcategorySetting, 5, http.StatusInternalServerError, "invalid map provider")
ErrInvalidProtocol = NewSystemError(SystemSubcategorySetting, 0, http.StatusInternalServerError, "invalid server protocol")
ErrInvalidLogMode = NewSystemError(SystemSubcategorySetting, 1, http.StatusInternalServerError, "invalid log mode")
ErrGettingLocalAddress = NewSystemError(SystemSubcategorySetting, 2, http.StatusInternalServerError, "failed to get local address")
ErrInvalidUuidMode = NewSystemError(SystemSubcategorySetting, 3, http.StatusInternalServerError, "invalid uuid mode")
ErrInvalidExchangeRatesDataSource = NewSystemError(SystemSubcategorySetting, 4, http.StatusInternalServerError, "invalid exchange rates data source")
ErrInvalidMapProvider = NewSystemError(SystemSubcategorySetting, 5, http.StatusInternalServerError, "invalid map provider")
ErrInvalidAmapSecurityVerificationMethod = NewSystemError(SystemSubcategorySetting, 6, http.StatusInternalServerError, "invalid amap security verification method")
)
+12
View File
@@ -31,6 +31,18 @@ func ServerSettingsCookie(config *settings.Config) core.MiddlewareHandlerFunc {
settingsArr = append(settingsArr, buildStringSetting("bmak", config.BaiduMapAK))
}
if config.AMapApplicationKey != "" {
settingsArr = append(settingsArr, buildStringSetting("amak", config.AMapApplicationKey))
}
if config.AMapSecurityVerificationMethod != "" {
settingsArr = append(settingsArr, buildStringSetting("amsv", config.AMapSecurityVerificationMethod))
if config.AMapSecurityVerificationMethod == settings.AmapSecurityVerificationPlainMethod {
settingsArr = append(settingsArr, buildStringSetting("amas", config.AMapApplicationSecret))
}
}
bundledSettings := strings.Join(settingsArr, "_")
c.SetCookie(settingsCookieName, bundledSettings, int(config.TokenExpiredTime), "", "", false, false)
+24 -4
View File
@@ -67,6 +67,12 @@ const (
OpenStreetMapProvider string = "openstreetmap"
GoogleMapProvider string = "googlemap"
BaiduMapProvider string = "baidumap"
AmapProvider string = "amap"
)
// Amap security verification method
const (
AmapSecurityVerificationPlainMethod string = "plain"
)
// Exchange rates data source types
@@ -177,10 +183,13 @@ type Config struct {
EnableDataExport bool
// Map
MapProvider string
GoogleMapAPIKey string
BaiduMapAK string
EnableMapDataFetchProxy bool
MapProvider string
GoogleMapAPIKey string
BaiduMapAK string
AMapApplicationKey string
AMapSecurityVerificationMethod string
AMapApplicationSecret string
EnableMapDataFetchProxy bool
// Exchange Rates
ExchangeRatesDataSource string
@@ -444,6 +453,8 @@ func loadMapConfiguration(config *Config, configFile *ini.File, sectionName stri
config.MapProvider = GoogleMapProvider
} else if getConfigItemStringValue(configFile, sectionName, "map_provider") == BaiduMapProvider {
config.MapProvider = BaiduMapProvider
} else if getConfigItemStringValue(configFile, sectionName, "map_provider") == AmapProvider {
config.MapProvider = AmapProvider
} else {
return errs.ErrInvalidMapProvider
}
@@ -451,6 +462,15 @@ func loadMapConfiguration(config *Config, configFile *ini.File, sectionName stri
config.EnableMapDataFetchProxy = getConfigItemBoolValue(configFile, sectionName, "map_data_fetch_proxy", false)
config.GoogleMapAPIKey = getConfigItemStringValue(configFile, sectionName, "google_map_api_key")
config.BaiduMapAK = getConfigItemStringValue(configFile, sectionName, "baidu_map_ak")
config.AMapApplicationKey = getConfigItemStringValue(configFile, sectionName, "amap_application_key")
if getConfigItemStringValue(configFile, sectionName, "amap_security_verification_method") == AmapSecurityVerificationPlainMethod {
config.AMapSecurityVerificationMethod = AmapSecurityVerificationPlainMethod
} else {
return errs.ErrInvalidAmapSecurityVerificationMethod
}
config.AMapApplicationSecret = getConfigItemStringValue(configFile, sectionName, "amap_application_secret")
return nil
}