Class: Kameleoon::Network::UrlProvider
- Inherits:
-
Object
- Object
- Kameleoon::Network::UrlProvider
- Defined in:
- lib/kameleoon/network/url_provider.rb
Overview
UrlProvider is used as a source of URLs for network calls.
Constant Summary collapse
- TRACKING_PATH =
'/visit/events'- VISITOR_DATA_PATH =
'/visit/visitor'- GET_DATA_PATH =
'/map/map'- POST_DATA_PATH =
'/map/maps'- ACCESS_TOKEN_PATH =
'/oauth/token'- DEFAULT_EVENTS_DOMAIN =
'events.kameleoon.eu'- DEFAULT_CONFIGURATION_DOMAIN =
'sdk-config.kameleoon.eu'- DEFAULT_ACCESS_TOKEN_DOMAIN =
'api.kameleoon.com'- DEFAULT_DATA_API_DOMAIN =
'data.kameleoon.io'- CONFIGURATION_API_URL_FORMAT =
'https://%s/v3/%s'- DATA_API_URL_FORMAT =
'https://%s%s?%s'- RT_CONFIGURATION_URL_FORMAT =
'https://%s:8110/sse?%s'- ACCESS_TOKEN_URL_FORMAT =
'https://%s/oauth/token'- TEST_DATA_API_DOMAIN =
'data.kameleoon.net'- TEST_AUTOMATION_API_DOMAIN =
'api.kameleoon.net'
Instance Attribute Summary collapse
-
#access_token_domain ⇒ Object
readonly
Returns the value of attribute access_token_domain.
-
#configuration_domain ⇒ Object
readonly
Returns the value of attribute configuration_domain.
-
#data_api_domain ⇒ Object
readonly
Returns the value of attribute data_api_domain.
-
#events_domain ⇒ Object
readonly
Returns the value of attribute events_domain.
-
#site_code ⇒ Object
readonly
Returns the value of attribute site_code.
Instance Method Summary collapse
- #apply_data_api_domain(domain) ⇒ Object
-
#initialize(site_code, network_domain = nil) ⇒ UrlProvider
constructor
A new instance of UrlProvider.
- #make_access_token_url ⇒ Object
- #make_api_data_get_request_url(key) ⇒ Object
- #make_configuration_url(environment = nil, timestamp = nil) ⇒ Object
- #make_real_time_url ⇒ Object
- #make_tracking_url ⇒ Object
- #make_visitor_data_get_url(visitor_code, filter, is_unique_identifier = false) ⇒ Object
Constructor Details
#initialize(site_code, network_domain = nil) ⇒ UrlProvider
Returns a new instance of UrlProvider.
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/kameleoon/network/url_provider.rb', line 32 def initialize( site_code, network_domain = nil ) @site_code = site_code @data_api_domain = DEFAULT_DATA_API_DOMAIN @events_domain = DEFAULT_EVENTS_DOMAIN @configuration_domain = DEFAULT_CONFIGURATION_DOMAIN @access_token_domain = DEFAULT_ACCESS_TOKEN_DOMAIN @is_custom_domain = false update_domains(network_domain) end |
Instance Attribute Details
#access_token_domain ⇒ Object (readonly)
Returns the value of attribute access_token_domain.
30 31 32 |
# File 'lib/kameleoon/network/url_provider.rb', line 30 def access_token_domain @access_token_domain end |
#configuration_domain ⇒ Object (readonly)
Returns the value of attribute configuration_domain.
30 31 32 |
# File 'lib/kameleoon/network/url_provider.rb', line 30 def configuration_domain @configuration_domain end |
#data_api_domain ⇒ Object (readonly)
Returns the value of attribute data_api_domain.
30 31 32 |
# File 'lib/kameleoon/network/url_provider.rb', line 30 def data_api_domain @data_api_domain end |
#events_domain ⇒ Object (readonly)
Returns the value of attribute events_domain.
30 31 32 |
# File 'lib/kameleoon/network/url_provider.rb', line 30 def events_domain @events_domain end |
#site_code ⇒ Object (readonly)
Returns the value of attribute site_code.
30 31 32 |
# File 'lib/kameleoon/network/url_provider.rb', line 30 def site_code @site_code end |
Instance Method Details
#apply_data_api_domain(domain) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/kameleoon/network/url_provider.rb', line 45 def apply_data_api_domain(domain) return if domain.nil? || domain.empty? if @is_custom_domain sub_domain = domain.split('.').first @data_api_domain = @data_api_domain.sub(/^[^.]+/, sub_domain) else @data_api_domain = domain end end |
#make_access_token_url ⇒ Object
106 107 108 |
# File 'lib/kameleoon/network/url_provider.rb', line 106 def make_access_token_url format(ACCESS_TOKEN_URL_FORMAT, @access_token_domain) end |
#make_api_data_get_request_url(key) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/kameleoon/network/url_provider.rb', line 84 def make_api_data_get_request_url(key) params = { siteCode: @site_code, key: key } format(DATA_API_URL_FORMAT, @data_api_domain, GET_DATA_PATH, UriHelper.encode_query(params)) end |
#make_configuration_url(environment = nil, timestamp = nil) ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/kameleoon/network/url_provider.rb', line 92 def make_configuration_url(environment = nil, = nil) url = format(CONFIGURATION_API_URL_FORMAT, @configuration_domain, @site_code) params = {} params[:environment] = environment unless environment.nil? params[:ts] = unless .nil? url = "#{url}?#{UriHelper.encode_query(params)}" unless params.empty? url end |
#make_real_time_url ⇒ Object
101 102 103 104 |
# File 'lib/kameleoon/network/url_provider.rb', line 101 def make_real_time_url params = { siteCode: @site_code } format(RT_CONFIGURATION_URL_FORMAT, @events_domain, UriHelper.encode_query(params)) end |
#make_tracking_url ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/kameleoon/network/url_provider.rb', line 56 def make_tracking_url params = { sdkName: SDK_NAME, sdkVersion: SDK_VERSION, siteCode: @site_code, bodyUa: true } format(DATA_API_URL_FORMAT, @data_api_domain, TRACKING_PATH, UriHelper.encode_query(params)) end |
#make_visitor_data_get_url(visitor_code, filter, is_unique_identifier = false) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/kameleoon/network/url_provider.rb', line 66 def make_visitor_data_get_url(visitor_code, filter, is_unique_identifier = false) params = { siteCode: @site_code } params[is_unique_identifier ? :mappingValue : :visitorCode] = visitor_code params[:maxNumberPreviousVisits] = filter.previous_visit_amount params[:version] = 0 params[:staticData] = true params[:kcs] = true if filter.kcs params[:currentVisit] = true if filter.current_visit params[:customData] = true if filter.custom_data params[:conversion] = true if filter.conversions params[:geolocation] = true if filter.geolocation params[:experiment] = true if filter.experiments params[:page] = true if filter.page_views params[:personalization] = true if filter.personalization params[:cbs] = true if filter.cbs format(DATA_API_URL_FORMAT, @data_api_domain, VISITOR_DATA_PATH, UriHelper.encode_query(params)) end |