func ValidateEndpoint(feature features.Features) endpoint.Endpoint { return func(ctx context.Context, request interface{}) (interface{}, error) { req := request.(validationRequest) ff, err := feature.Find(req.Key) if err != nil { return HTTPResponse{StatusCode: http.StatusForbidden}, nil } var access bool if ff.Percentage > 0 || len(ff.Users) > 0 { if access = feature.UserHasAccess(req.Key, req.User); access { return HTTPResponse{StatusCode: http.StatusOK}, nil } else { return HTTPResponse{StatusCode: http.StatusForbidden}, nil } } if access, _ = feature.IsEnabled(req.Key); access { return HTTPResponse{StatusCode: http.StatusOK}, nil } return HTTPResponse{StatusCode: http.StatusForbidden}, nil } }