Documentation
¶
Index ¶
- Variables
- func GenericErrorFn(ctx context.Context, statusCode int, w http.ResponseWriter, err error)
- func GetDesktopsMobileProduct(browser backend.BrowserPathParam) (backend.BrowserPathParam, error)
- func NewHTTPServer(port string, baseURL *url.URL, metadataStorer WebFeatureMetadataStorer, ...) *http.Server
- type GetFeatureResultVisitor
- func (v *GetFeatureResultVisitor) VisitMovedFeature(_ context.Context, result backendtypes.MovedFeatureResult) error
- func (v *GetFeatureResultVisitor) VisitRegularFeature(ctx context.Context, result backendtypes.RegularFeatureResult) error
- func (v *GetFeatureResultVisitor) VisitSplitFeature(_ context.Context, result backendtypes.SplitFeatureResult) error
- type GitHubUserClient
- type MissingOneBrowserParams
- type RawBytesDataCacher
- type RouteCacheOptions
- type Server
- func (s *Server) CreateSavedSearch(ctx context.Context, request backend.CreateSavedSearchRequestObject) (backend.CreateSavedSearchResponseObject, error)
- func (s *Server) CreateSubscription(ctx context.Context, request backend.CreateSubscriptionRequestObject) (backend.CreateSubscriptionResponseObject, error)
- func (s *Server) DeleteNotificationChannel(ctx context.Context, req backend.DeleteNotificationChannelRequestObject) (backend.DeleteNotificationChannelResponseObject, error)
- func (s *Server) DeleteSubscription(ctx context.Context, request backend.DeleteSubscriptionRequestObject) (backend.DeleteSubscriptionResponseObject, error)
- func (s *Server) GetFeature(ctx context.Context, request backend.GetFeatureRequestObject) (backend.GetFeatureResponseObject, error)
- func (s *Server) GetFeatureMetadata(ctx context.Context, request backend.GetFeatureMetadataRequestObject) (backend.GetFeatureMetadataResponseObject, error)
- func (s *Server) GetNotificationChannel(ctx context.Context, req backend.GetNotificationChannelRequestObject) (backend.GetNotificationChannelResponseObject, error)
- func (s *Server) GetSavedSearch(ctx context.Context, req backend.GetSavedSearchRequestObject) (backend.GetSavedSearchResponseObject, error)
- func (s *Server) GetSubscription(ctx context.Context, request backend.GetSubscriptionRequestObject) (backend.GetSubscriptionResponseObject, error)
- func (s *Server) ListAggregatedBaselineStatusCounts(ctx context.Context, ...) (backend.ListAggregatedBaselineStatusCountsResponseObject, error)
- func (s *Server) ListAggregatedFeatureSupport(ctx context.Context, request backend.ListAggregatedFeatureSupportRequestObject) (backend.ListAggregatedFeatureSupportResponseObject, error)
- func (s *Server) ListAggregatedWPTMetrics(ctx context.Context, request backend.ListAggregatedWPTMetricsRequestObject) (backend.ListAggregatedWPTMetricsResponseObject, error)
- func (s *Server) ListChromeDailyUsageStats(ctx context.Context, request backend.ListChromeDailyUsageStatsRequestObject) (backend.ListChromeDailyUsageStatsResponseObject, error)
- func (s *Server) ListFeatureWPTMetrics(ctx context.Context, request backend.ListFeatureWPTMetricsRequestObject) (backend.ListFeatureWPTMetricsResponseObject, error)
- func (s *Server) ListFeatures(ctx context.Context, req backend.ListFeaturesRequestObject) (backend.ListFeaturesResponseObject, error)
- func (s *Server) ListMissingOneImplementationCounts(ctx context.Context, ...) (backend.ListMissingOneImplementationCountsResponseObject, error)
- func (s *Server) ListMissingOneImplementationFeatures(ctx context.Context, ...) (backend.ListMissingOneImplementationFeaturesResponseObject, error)
- func (s *Server) ListNotificationChannels(ctx context.Context, req backend.ListNotificationChannelsRequestObject) (backend.ListNotificationChannelsResponseObject, error)
- func (s *Server) ListSubscriptions(ctx context.Context, request backend.ListSubscriptionsRequestObject) (backend.ListSubscriptionsResponseObject, error)
- func (s *Server) ListUserSavedSearches(ctx context.Context, request backend.ListUserSavedSearchesRequestObject) (backend.ListUserSavedSearchesResponseObject, error)
- func (s *Server) PingUser(ctx context.Context, req backend.PingUserRequestObject) (backend.PingUserResponseObject, error)
- func (s *Server) PutUserSavedSearchBookmark(ctx context.Context, request backend.PutUserSavedSearchBookmarkRequestObject) (backend.PutUserSavedSearchBookmarkResponseObject, error)
- func (s *Server) RemoveSavedSearch(ctx context.Context, request backend.RemoveSavedSearchRequestObject) (backend.RemoveSavedSearchResponseObject, error)
- func (s *Server) RemoveUserSavedSearchBookmark(ctx context.Context, ...) (backend.RemoveUserSavedSearchBookmarkResponseObject, error)
- func (s *Server) UpdateSavedSearch(ctx context.Context, request backend.UpdateSavedSearchRequestObject) (backend.UpdateSavedSearchResponseObject, error)
- func (s *Server) UpdateSubscription(ctx context.Context, request backend.UpdateSubscriptionRequestObject) (backend.UpdateSubscriptionResponseObject, error)
- type UserCheckResult
- type UserGitHubClient
- type UserGitHubClientFactory
- type WPTMetricsStorer
- type WebFeatureMetadataStorer
Constants ¶
This section is empty.
Variables ¶
var ErrNoMatchingMobileBrowser = errors.New("browser does not have a matching mobile browser")
Functions ¶
func GenericErrorFn ¶
GenericErrorFn is a reusable method for the middleware layers that they can use to get well structured JSON output for BasicErrorModel.
func GetDesktopsMobileProduct ¶
func GetDesktopsMobileProduct(browser backend.BrowserPathParam) (backend.BrowserPathParam, error)
GetDesktopsMobileProduct returns the mobile version of the given desktop browser.
func NewHTTPServer ¶
func NewHTTPServer( port string, baseURL *url.URL, metadataStorer WebFeatureMetadataStorer, wptMetricsStorer WPTMetricsStorer, rawBytesDataCacher RawBytesDataCacher, routeCacheOptions RouteCacheOptions, userGitHubClientFactory UserGitHubClientFactory, preRequestValidationMiddlewares []func(http.Handler) http.Handler, authMiddleware func(http.Handler) http.Handler) *http.Server
Types ¶
type GetFeatureResultVisitor ¶
type GetFeatureResultVisitor struct {
// contains filtered or unexported fields
}
func (*GetFeatureResultVisitor) VisitMovedFeature ¶
func (v *GetFeatureResultVisitor) VisitMovedFeature(_ context.Context, result backendtypes.MovedFeatureResult) error
func (*GetFeatureResultVisitor) VisitRegularFeature ¶
func (v *GetFeatureResultVisitor) VisitRegularFeature(ctx context.Context, result backendtypes.RegularFeatureResult) error
func (*GetFeatureResultVisitor) VisitSplitFeature ¶
func (v *GetFeatureResultVisitor) VisitSplitFeature(_ context.Context, result backendtypes.SplitFeatureResult) error
type GitHubUserClient ¶
type MissingOneBrowserParams ¶
type MissingOneBrowserParams struct {
// contains filtered or unexported fields
}
func PrepareMissingOneBrowserParams ¶
func PrepareMissingOneBrowserParams( targetBrowserParam backend.BrowserPathParam, otherBrowsersParam []backend.BrowserPathParam, includeMobileBrowsers bool, ) (*MissingOneBrowserParams, error)
PrepareMissingOneBrowserParams takes the raw request arguments for "missing in one browser" requests and formats them.
type RawBytesDataCacher ¶
type RawBytesDataCacher interface {
// Cache stores a value associated with a key in the cache.
Cache(context.Context, string, []byte, ...cachetypes.CacheOption) error
// Get retrieves a value from the cache by its key.
Get(context.Context, string) ([]byte, error)
}
RawBytesDataCacher defines an interface for caching raw byte data. This interface is intended for use in scenarios where data needs to be cached as raw bytes, rather than structured data types. Implementations of this interface should provide methods to store and retrieve byte slices associated with string keys. Currently implemented by the valkey cache layer.
type RouteCacheOptions ¶
type RouteCacheOptions struct {
// AggregatedFeatureStatsOptions applies cache options for routes that only contain stats on features.
// Any routes with multiple data sources are not included (e.g. WPT Metrics)
AggregatedFeatureStatsOptions []cachetypes.CacheOption
}
RouteCacheOptions contains options for caching routes.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func (*Server) CreateSavedSearch ¶
func (s *Server) CreateSavedSearch(ctx context.Context, request backend.CreateSavedSearchRequestObject) ( backend.CreateSavedSearchResponseObject, error)
CreateSavedSearch implements backend.StrictServerInterface. nolint: ireturn // Name generated from openapi
func (*Server) CreateSubscription ¶
func (s *Server) CreateSubscription( ctx context.Context, request backend.CreateSubscriptionRequestObject, ) (backend.CreateSubscriptionResponseObject, error)
nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) DeleteNotificationChannel ¶
func (s *Server) DeleteNotificationChannel( ctx context.Context, req backend.DeleteNotificationChannelRequestObject, ) (backend.DeleteNotificationChannelResponseObject, error)
DeleteNotificationChannel handles the DELETE request to /v1/users/me/notification-channels/{channel_id}. nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) DeleteSubscription ¶
func (s *Server) DeleteSubscription( ctx context.Context, request backend.DeleteSubscriptionRequestObject, ) (backend.DeleteSubscriptionResponseObject, error)
nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) GetFeature ¶
func (s *Server) GetFeature( ctx context.Context, request backend.GetFeatureRequestObject, ) (backend.GetFeatureResponseObject, error)
GetFeature implements backend.StrictServerInterface. nolint: revive, ireturn // Name generated from openapi
func (*Server) GetFeatureMetadata ¶
func (s *Server) GetFeatureMetadata(ctx context.Context, request backend.GetFeatureMetadataRequestObject) (backend.GetFeatureMetadataResponseObject, error)
GetFeatureMetadata implements backend.StrictServerInterface. nolint: revive, ireturn // Name generated from openapi
func (*Server) GetNotificationChannel ¶
func (s *Server) GetNotificationChannel( ctx context.Context, req backend.GetNotificationChannelRequestObject, ) (backend.GetNotificationChannelResponseObject, error)
GetNotificationChannel handles the GET request to /v1/users/me/notification-channels/{channel_id}. nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) GetSavedSearch ¶
func (s *Server) GetSavedSearch( ctx context.Context, req backend.GetSavedSearchRequestObject) ( backend.GetSavedSearchResponseObject, error)
GetSavedSearch implements backend.StrictServerInterface. nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) GetSubscription ¶
func (s *Server) GetSubscription( ctx context.Context, request backend.GetSubscriptionRequestObject, ) (backend.GetSubscriptionResponseObject, error)
nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) ListAggregatedBaselineStatusCounts ¶
func (s *Server) ListAggregatedBaselineStatusCounts( ctx context.Context, request backend.ListAggregatedBaselineStatusCountsRequestObject) ( backend.ListAggregatedBaselineStatusCountsResponseObject, error)
ListAggregatedBaselineStatusCounts implements backend.StrictServerInterface. nolint: revive, ireturn // Name generated from openapi
func (*Server) ListAggregatedFeatureSupport ¶
func (s *Server) ListAggregatedFeatureSupport( ctx context.Context, request backend.ListAggregatedFeatureSupportRequestObject) ( backend.ListAggregatedFeatureSupportResponseObject, error)
ListAggregatedFeatureSupport implements backend.StrictServerInterface. nolint: ireturn // Signature generated from openapi
func (*Server) ListAggregatedWPTMetrics ¶
func (s *Server) ListAggregatedWPTMetrics( ctx context.Context, request backend.ListAggregatedWPTMetricsRequestObject, ) (backend.ListAggregatedWPTMetricsResponseObject, error)
ListAggregatedWPTMetrics implements backend.StrictServerInterface. nolint: revive, ireturn // Name generated from openapi
func (*Server) ListChromeDailyUsageStats ¶
func (s *Server) ListChromeDailyUsageStats( ctx context.Context, request backend.ListChromeDailyUsageStatsRequestObject, ) (backend.ListChromeDailyUsageStatsResponseObject, error)
ListChromeDailyUsageStats implements backend.StrictServerInterface. nolint: revive, ireturn // Name generated from openapi
func (*Server) ListFeatureWPTMetrics ¶
func (s *Server) ListFeatureWPTMetrics( ctx context.Context, request backend.ListFeatureWPTMetricsRequestObject, ) (backend.ListFeatureWPTMetricsResponseObject, error)
ListFeatureWPTMetrics implements backend.StrictServerInterface. nolint: revive, ireturn // Name generated from openapi
func (*Server) ListFeatures ¶
func (s *Server) ListFeatures( ctx context.Context, req backend.ListFeaturesRequestObject, ) (backend.ListFeaturesResponseObject, error)
ListFeatures implements backend.StrictServerInterface. nolint:ireturn // Expected ireturn for openapi generation.
func (*Server) ListMissingOneImplementationCounts ¶
func (s *Server) ListMissingOneImplementationCounts( ctx context.Context, request backend.ListMissingOneImplementationCountsRequestObject) ( backend.ListMissingOneImplementationCountsResponseObject, error)
ListMissingOneImplementationCounts implements backend.StrictServerInterface. nolint: ireturn // Signature generated from openapi
func (*Server) ListMissingOneImplementationFeatures ¶
func (s *Server) ListMissingOneImplementationFeatures( ctx context.Context, request backend.ListMissingOneImplementationFeaturesRequestObject) ( backend.ListMissingOneImplementationFeaturesResponseObject, error)
ListMissingOneImplementationFeatures implements backend.StrictServerInterface. nolint: ireturn // Signature generated from openapi
func (*Server) ListNotificationChannels ¶
func (s *Server) ListNotificationChannels( ctx context.Context, req backend.ListNotificationChannelsRequestObject, ) (backend.ListNotificationChannelsResponseObject, error)
ListNotificationChannels handles the GET request to /v1/users/me/notification-channels. nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) ListSubscriptions ¶
func (s *Server) ListSubscriptions( ctx context.Context, request backend.ListSubscriptionsRequestObject, ) (backend.ListSubscriptionsResponseObject, error)
nolint:ireturn, revive // Expected ireturn for openapi generation.
func (*Server) ListUserSavedSearches ¶
func (s *Server) ListUserSavedSearches( ctx context.Context, request backend.ListUserSavedSearchesRequestObject) ( backend.ListUserSavedSearchesResponseObject, error)
ListUserSavedSearches implements backend.StrictServerInterface. nolint:ireturn // Expected ireturn for openapi generation.
func (*Server) PingUser ¶
func (s *Server) PingUser( ctx context.Context, req backend.PingUserRequestObject, ) (backend.PingUserResponseObject, error)
PingUser implements backend.StrictServerInterface. nolint: ireturn // Name generated from openapi
func (*Server) PutUserSavedSearchBookmark ¶
func (s *Server) PutUserSavedSearchBookmark( ctx context.Context, request backend.PutUserSavedSearchBookmarkRequestObject) ( backend.PutUserSavedSearchBookmarkResponseObject, error)
PutUserSavedSearchBookmark implements backend.StrictServerInterface. nolint: ireturn // Name generated from openapi
func (*Server) RemoveSavedSearch ¶
func (s *Server) RemoveSavedSearch( ctx context.Context, request backend.RemoveSavedSearchRequestObject) ( backend.RemoveSavedSearchResponseObject, error)
RemoveSavedSearch implements backend.StrictServerInterface. nolint: ireturn // Name generated from openapi
func (*Server) RemoveUserSavedSearchBookmark ¶
func (s *Server) RemoveUserSavedSearchBookmark( ctx context.Context, request backend.RemoveUserSavedSearchBookmarkRequestObject) ( backend.RemoveUserSavedSearchBookmarkResponseObject, error)
RemoveUserSavedSearchBookmark implements backend.StrictServerInterface. nolint: ireturn // Name generated from openapi
func (*Server) UpdateSavedSearch ¶
func (s *Server) UpdateSavedSearch( ctx context.Context, request backend.UpdateSavedSearchRequestObject) ( backend.UpdateSavedSearchResponseObject, error)
UpdateSavedSearch implements backend.StrictServerInterface. nolint: ireturn // Name generated from openapi
func (*Server) UpdateSubscription ¶
func (s *Server) UpdateSubscription( ctx context.Context, request backend.UpdateSubscriptionRequestObject, ) (backend.UpdateSubscriptionResponseObject, error)
nolint:ireturn, revive // Expected ireturn for openapi generation.
type UserCheckResult ¶
UserCheckResult represents either a successful user retrieval or an error response.
func CheckAuthenticatedUser ¶
func CheckAuthenticatedUser[T any]( ctx context.Context, operation string, newErrorResponse func(code int, message string) T) UserCheckResult[T]
CheckAuthenticatedUser retrieves the authenticated user from the context. If the user is not found, it returns an error response.
type UserGitHubClient ¶
type UserGitHubClient struct {
GitHubUserClient
}
type UserGitHubClientFactory ¶
type UserGitHubClientFactory func(token string) *UserGitHubClient
type WPTMetricsStorer ¶
type WPTMetricsStorer interface {
ListMetricsForFeatureIDBrowserAndChannel(
ctx context.Context,
featureID string,
browser string,
channel string,
metricView backend.MetricViewPathParam,
startAt time.Time,
endAt time.Time,
pageSize int,
pageToken *string) ([]backend.WPTRunMetric, *string, error)
ListMetricsOverTimeWithAggregatedTotals(
ctx context.Context,
featureIDs []string,
browser string,
channel string,
metricView backend.MetricViewPathParam,
startAt, endAt time.Time,
pageSize int,
pageToken *string,
) ([]backend.WPTRunMetric, *string, error)
ListChromeDailyUsageStats(
ctx context.Context,
featureID string,
startAt, endAt time.Time,
pageSize int,
pageToken *string,
) ([]backend.ChromeUsageStat, *string, error)
FeaturesSearch(
ctx context.Context,
pageToken *string,
pageSize int,
searchNode *searchtypes.SearchNode,
sortOrder *backend.ListFeaturesParamsSort,
wptMetricType backend.WPTMetricView,
browsers []backend.BrowserPathParam,
) (*backend.FeaturePage, error)
GetFeature(
ctx context.Context,
featureID string,
wptMetricType backend.WPTMetricView,
browsers []backend.BrowserPathParam,
) (*backendtypes.GetFeatureResult, error)
ListBrowserFeatureCountMetric(
ctx context.Context,
targetBrowser string,
targetMobileBrowser *string,
startAt time.Time,
endAt time.Time,
pageSize int,
pageToken *string,
) (*backend.BrowserReleaseFeatureMetricsPage, error)
GetIDFromFeatureKey(
ctx context.Context,
featureID string,
) (*string, error)
ListMissingOneImplCounts(
ctx context.Context,
targetBrowser string,
targetMobileBrowser *string,
otherBrowsers []string,
startAt, endAt time.Time,
pageSize int,
pageToken *string,
) (*backend.BrowserReleaseFeatureMetricsPage, error)
ListMissingOneImplementationFeatures(
ctx context.Context,
targetBrowser string,
targetMobileBrowser *string,
otherBrowsers []string,
targetDate time.Time,
pageSize int,
pageToken *string,
) (*backend.MissingOneImplFeaturesPage, error)
ListBaselineStatusCounts(
ctx context.Context,
startAt time.Time,
endAt time.Time,
pageSize int,
pageToken *string,
) (*backend.BaselineStatusMetricsPage, error)
CreateUserSavedSearch(ctx context.Context, userID string,
savedSearch backend.SavedSearch) (*backend.SavedSearchResponse, error)
DeleteUserSavedSearch(ctx context.Context, userID, savedSearchID string) error
GetSavedSearch(ctx context.Context, savedSearchID string, userID *string) (*backend.SavedSearchResponse, error)
ListUserSavedSearches(
ctx context.Context,
userID string,
pageSize int,
pageToken *string,
) (*backend.UserSavedSearchPage, error)
UpdateUserSavedSearch(
ctx context.Context,
savedSearchID string,
userID string,
savedSearch *backend.SavedSearchUpdateRequest,
) (*backend.SavedSearchResponse, error)
PutUserSavedSearchBookmark(
ctx context.Context,
userID string,
savedSearchID string,
) error
RemoveUserSavedSearchBookmark(
ctx context.Context,
userID string,
savedSearchID string,
) error
SyncUserProfileInfo(ctx context.Context,
userProfile backendtypes.UserProfile) error
GetNotificationChannel(ctx context.Context,
userID, channelID string) (*backend.NotificationChannelResponse, error)
ListNotificationChannels(ctx context.Context,
userID string, pageSize int, pageToken *string) (*backend.NotificationChannelPage, error)
DeleteNotificationChannel(ctx context.Context,
userID, channelID string) error
CreateSavedSearchSubscription(ctx context.Context, userID string,
subscription backend.Subscription) (*backend.SubscriptionResponse, error)
DeleteSavedSearchSubscription(ctx context.Context, userID, subscriptionID string) error
GetSavedSearchSubscription(ctx context.Context,
userID, subscriptionID string) (*backend.SubscriptionResponse, error)
ListSavedSearchSubscriptions(ctx context.Context,
userID string, pageSize int, pageToken *string) (*backend.SubscriptionPage, error)
UpdateSavedSearchSubscription(ctx context.Context, userID, subscriptionID string,
req backend.UpdateSubscriptionRequest) (*backend.SubscriptionResponse, error)
}
Source Files
¶
- cache.go
- create_saved_search.go
- create_subscription.go
- delete_notification_channel.go
- delete_subscription.go
- get_feature.go
- get_feature_metadata.go
- get_features.go
- get_notification_channel.go
- get_saved_search.go
- get_subscription.go
- list_aggregated_baseline_status_counts.go
- list_aggregated_feature_support.go
- list_aggregated_wpt_metrics.go
- list_chromium_usage.go
- list_feature_wpt_metrics.go
- list_missing_one_implementation_counts.go
- list_missing_one_implementation_features.go
- list_notification_channels.go
- list_subscriptions.go
- list_user_saved_searches.go
- middlewares.go
- ping_user.go
- put_user_saved_search_bookmark.go
- remove_saved_search.go
- remove_user_saved_search_bookmark.go
- server.go
- update_saved_search.go
- update_subscription.go