Skip to content

Commit 9779dfc

Browse files
committed
refactor(api): simplifying geoip initialization
1 parent 0c293db commit 9779dfc

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

api/server.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -159,24 +159,29 @@ func startServer(ctx context.Context, cfg *config, store store.Store, cache stor
159159

160160
servicesOptions := []services.Option{}
161161

162-
if cfg.GeoipMirror != "" {
162+
if cfg.GeoipMirror != "" || cfg.GeoipMaxmindLicense != "" {
163163
log.Info("GeoIP feature is enable")
164164

165-
locator, err := geolite2.NewLocator(ctx, geolite2.FetchFromMirror(cfg.GeoipMirror))
166-
if err != nil {
167-
log.WithError(err).Fatal("Failed to init GeoIP")
168-
} else {
169-
servicesOptions = append(servicesOptions, services.WithLocator(locator))
165+
var fetcher geolite2.GeoliteFetcher
166+
167+
switch {
168+
case cfg.GeoipMirror != "":
169+
fetcher = geolite2.FetchFromMirror(cfg.GeoipMirror)
170+
case cfg.GeoipMaxmindLicense != "":
171+
fetcher = geolite2.FetchFromLicenseKey(cfg.GeoipMaxmindLicense)
172+
default:
173+
log.WithError(err).Fatal("Failed to init GeoIP because no valid value was set")
170174
}
171-
} else if cfg.GeoipMaxmindLicense != "" {
172-
log.Info("GeoIP feature is enable")
173175

174-
locator, err := geolite2.NewLocator(ctx, geolite2.FetchFromLicenseKey(cfg.GeoipMaxmindLicense))
176+
locator, err := geolite2.NewLocator(ctx, fetcher)
177+
175178
if err != nil {
176179
log.WithError(err).Fatal("Failed to init GeoIP")
177180
} else {
178181
servicesOptions = append(servicesOptions, services.WithLocator(locator))
179182
}
183+
184+
log.Info("GeoIP feature is enable")
180185
}
181186

182187
service := services.NewService(store, nil, nil, cache, apiClient, servicesOptions...)

0 commit comments

Comments
 (0)