Class: Gitlab::EtagCaching::Router::Graphql
- Inherits:
-
Object
- Object
- Gitlab::EtagCaching::Router::Graphql
show all
- Extended by:
- Helpers
- Defined in:
- lib/gitlab/etag_caching/router/graphql.rb
Constant Summary
collapse
'X-GITLAB-GRAPHQL-RESOURCE-ETAG'
- ROUTES =
[
[
%r{\Apipelines/id/\d+\z},
'pipelines_graph',
'continuous_integration'
],
[
%r(\Apipelines/sha/\w{#{Gitlab::Git::Commit::MIN_SHA_LENGTH},#{Gitlab::Git::Commit::MAX_SHA_LENGTH}}\z)o,
'ci_editor',
'pipeline_composition'
],
[
%r{\Aon_demand_scan/counts/},
'on_demand_scans',
'dynamic_application_security_testing'
],
[
%r{\A/projects/.+/-/environments.json\z},
'environment_details',
'continuous_delivery'
]
].map { |attrs| build_graphql_route(*attrs) }.freeze
Class Method Summary
collapse
Methods included from Helpers
build_graphql_route, build_rails_route
Class Method Details
.cache_key(request) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/gitlab/etag_caching/router/graphql.rb', line 42
def self.cache_key(request)
[
request.path,
request.[GRAPHQL_ETAG_RESOURCE_HEADER]
].compact.join(':')
end
|
.match(request) ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'lib/gitlab/etag_caching/router/graphql.rb', line 33
def self.match(request)
return unless request.path_info == graphql_api_path
graphql_resource = request.[GRAPHQL_ETAG_RESOURCE_HEADER]
return unless graphql_resource
ROUTES.find { |route| route.match(graphql_resource) }
end
|