// altHandlerByID returns the Handler for the searchID. If not found // or slices have an indifferent length or something is nil it will // return the DefaultErrorHandler. func findHandlerByID(so scope.Scope, id int64, idsIdx utils.Int64Slice, handlers []ctxhttp.Handler) ctxhttp.Handler { if len(idsIdx) != len(handlers) { return DefaultAlternativeHandler } index := idsIdx.Index(id) if index < 0 { return DefaultAlternativeHandler } prospect := handlers[index] if nil == prospect { return DefaultAlternativeHandler } if PkgLog.IsInfo() { PkgLog.Info("geoip.findHandlerByID.found", "scope", so.String(), "id", id, "idsIdx", idsIdx) } return prospect }