Class: Conversant::V3::Services::CDN
- Includes:
- Authorization
- Defined in:
- lib/conversant/v3/services/cdn.rb,
lib/conversant/v3/services/cdn/audit.rb,
lib/conversant/v3/services/cdn/domain.rb,
lib/conversant/v3/services/cdn/partner.rb,
lib/conversant/v3/services/cdn/business.rb,
lib/conversant/v3/services/cdn/analytics.rb,
lib/conversant/v3/services/cdn/dashboard.rb,
lib/conversant/v3/services/cdn/monitoring.rb,
lib/conversant/v3/services/cdn/certificate.rb,
lib/conversant/v3/services/cdn/partner/analytics.rb,
sig/conversant/v3/services/cdn.rbs
Overview
CDN service inherits from Base class
Defined Under Namespace
Classes: Analytics, Audit, Business, Certificate, Dashboard, Domain, Monitoring, Partner
Constant Summary
Constants included from HttpClient
HttpClient::PORTAL_SESSION_REDIS_KEY, HttpClient::SSO_GW_SESSION2_REDIS_KEY
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#analytics ⇒ CDN::Analytics
Service instances.
-
#audit ⇒ Audit
Get audit service instance.
-
#business ⇒ Business
Get business metrics service instance.
- #call(method, uri, payload = nil) ⇒ String?
-
#certificate ⇒ Certificate
Get certificate management service instance.
- #configuration ⇒ Object
-
#dashboard ⇒ Dashboard
Get dashboard service instance.
-
#domain ⇒ Domain
Get domain management service instance.
- #fetch_new_session ⇒ String?
- #logger ⇒ Object
-
#monitoring ⇒ Monitoring
Get monitoring service instance.
-
#partner ⇒ Partner
Get partner service instance.
-
#partner_analytics ⇒ CDN::Partner::Analytics
deprecated
Deprecated.
Use #partner instead
-
#partner_oss ⇒ Conversant::V3::Services::OSS::Partner::Analytics
deprecated
Deprecated.
Use Conversant::V3.oss instead
- #redis ⇒ Object
- #requires_session? ⇒ Boolean
- #service_endpoint ⇒ String
- #session_cookie_name ⇒ String
Methods included from Authorization
#authorize, #authorized_headers, #base_headers, #build_cookie_hash, #build_headers_with_cookies, #cached_session, #fetch_session_cookie, #fetch_sso_session, #format_cookies, #log_missing_session, #session_cache_key, #sso_cache_key
Methods inherited from Base
#identifier, #initialize, #portal_endpoint, #sso_endpoint, #validate_configuration!
Methods included from HttpClient
#add_cookies_to_headers, #authenticate, #cookie_jar, #cookie_jar=, #debug_log, #extract_form_action, #http_get, #http_post, #login_url, #parse_cookie_to_jar, #request, #sso_login, #update_cookie_jar
Constructor Details
This class inherits a constructor from Conversant::V3::Base
Instance Method Details
#analytics ⇒ CDN::Analytics
Service instances
43 44 45 |
# File 'lib/conversant/v3/services/cdn.rb', line 43 def analytics @analytics ||= Analytics.new(self) end |
#audit ⇒ Audit
Get audit service instance
59 60 61 |
# File 'lib/conversant/v3/services/cdn.rb', line 59 def audit @audit ||= Audit.new(self) end |
#business ⇒ Business
Get business metrics service instance
83 84 85 |
# File 'lib/conversant/v3/services/cdn.rb', line 83 def business @business ||= Business.new(self) end |
#call(method, uri, payload = nil) ⇒ String?
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/conversant/v3/services/cdn.rb', line 133 def call(method, uri, payload = nil) url = "#{configuration.private_cdn_endpoint}#{uri}" headers = # Check for SESSION in Cookie header if headers['Cookie'].nil? || !headers['Cookie'].include?('SESSION=') logger.error "#{identifier}.METHOD:call.NO_SESSION" raise AuthenticationError, 'Missing SESSION for CDN' end code, response = request(method, url, payload, headers) if code >= 400 logger.error "#{identifier}.METHOD:call.HTTP_ERROR:#{code}" raise ApiError, "CDN API error: #{code}" end response.body end |
#certificate ⇒ Certificate
Get certificate management service instance
91 92 93 |
# File 'lib/conversant/v3/services/cdn.rb', line 91 def certificate @certificate ||= Certificate.new(self) end |
#configuration ⇒ Object
32 |
# File 'sig/conversant/v3/services/cdn.rbs', line 32
def configuration: () -> untyped
|
#dashboard ⇒ Dashboard
Get dashboard service instance
67 68 69 |
# File 'lib/conversant/v3/services/cdn.rb', line 67 def dashboard @dashboard ||= Dashboard.new(self) end |
#domain ⇒ Domain
Get domain management service instance
75 76 77 |
# File 'lib/conversant/v3/services/cdn.rb', line 75 def domain @domain ||= Domain.new(self) end |
#fetch_new_session ⇒ String?
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/conversant/v3/services/cdn.rb', line 156 def fetch_new_session sessions = authenticate return nil unless sessions && sessions[:session] && sessions[:sso_gw_session2] signature_url = "#{configuration.private_cdn_endpoint}/partner-dashboard?customerId=#{customer_id}" logger.debug "#{identifier}.METHOD:authorize.REQUESTING_SESSION" response = RestClient.get( signature_url, { authority: URI.parse(configuration.private_cdn_endpoint).hostname, referer: portal_endpoint, user_agent: configuration.default_ua, cookies: { 'SESSION': sessions[:session], 'SSO_GW_SESSION2': sessions[:sso_gw_session2] }, timeout: 30, open_timeout: 30 } ) if response.['SESSION'] = response.['SESSION'] redis.set(session_cache_key, , ex: configuration.cache_ttl) logger.debug "#{identifier}.METHOD:authorize.SESSION_OBTAINED" else logger.error "#{identifier}.METHOD:authorize.NO_SESSION_IN_RESPONSE" nil end rescue RestClient::Unauthorized, RestClient::Forbidden => e logger.error "#{identifier}.METHOD:authorize.AUTH_ERROR:#{e.}" nil rescue StandardError => e logger.error "#{identifier}.METHOD:authorize.ERROR:#{e.}" nil end |
#logger ⇒ Object
31 |
# File 'sig/conversant/v3/services/cdn.rbs', line 31
def logger: () -> untyped
|
#monitoring ⇒ Monitoring
Get monitoring service instance
51 52 53 |
# File 'lib/conversant/v3/services/cdn.rb', line 51 def monitoring @monitoring ||= Monitoring.new(self) end |
#partner ⇒ Partner
Get partner service instance
Provides access to partner-level analytics and reporting that aggregate data across multiple customer accounts.
107 108 109 |
# File 'lib/conversant/v3/services/cdn.rb', line 107 def partner @partner ||= Partner.new(self) end |
#partner_analytics ⇒ CDN::Partner::Analytics
Use #partner instead
Get partner analytics service instance (deprecated)
117 118 119 |
# File 'lib/conversant/v3/services/cdn.rb', line 117 def partner_analytics @partner_analytics ||= Partner::Analytics.new(self) end |
#partner_oss ⇒ Conversant::V3::Services::OSS::Partner::Analytics
Use Conversant::V3.oss instead
Get partner OSS analytics service instance (deprecated)
127 128 129 |
# File 'lib/conversant/v3/services/cdn.rb', line 127 def partner_oss @partner_oss ||= Conversant::V3::Services::OSS::Partner::Analytics.new(self) end |
#redis ⇒ Object
33 |
# File 'sig/conversant/v3/services/cdn.rbs', line 33
def redis: () -> untyped
|
#requires_session? ⇒ Boolean
205 206 207 |
# File 'lib/conversant/v3/services/cdn.rb', line 205 def requires_session? true end |
#service_endpoint ⇒ String
197 198 199 |
# File 'lib/conversant/v3/services/cdn.rb', line 197 def service_endpoint configuration.private_cdn_endpoint end |
#session_cookie_name ⇒ String
201 202 203 |
# File 'lib/conversant/v3/services/cdn.rb', line 201 def 'SESSION' end |