Class: Auth0::Experimentation::FeatureFlags::Client
- Inherits:
-
Object
- Object
- Auth0::Experimentation::FeatureFlags::Client
- Defined in:
- lib/auth0/experimentation/feature_flags/client.rb
Instance Method Summary collapse
-
#create(request_options: {}, **params) ⇒ Auth0::Types::CreateFeatureFlagResponseContent
Create a new feature flag with parameters for use in experiments.
-
#delete(request_options: {}, **params) ⇒ untyped
Delete a feature flag by ID.
-
#get(request_options: {}, **params) ⇒ Auth0::Types::GetFeatureFlagResponseContent
Retrieve a single feature flag by its ID.
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Auth0::Types::ListFeatureFlagsResponseContent
Retrieve a paginated list of feature flags for the tenant.
-
#update(request_options: {}, **params) ⇒ Auth0::Types::UpdateFeatureFlagResponseContent
Partially update a feature flag by ID.
-
#update_status(request_options: {}, **params) ⇒ Auth0::Types::UpdateFeatureFlagStatusResponseContent
Transitions a feature flag through its lifecycle states: draft → active, draft → archived, active → archived.
- #variations ⇒ Auth0::Variations::Client
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#create(request_options: {}, **params) ⇒ Auth0::Types::CreateFeatureFlagResponseContent
Create a new feature flag with parameters for use in experiments.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 91 def create(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "experimentation/feature-flags", body: Auth0::Experimentation::FeatureFlags::Types::CreateFeatureFlagRequestContent.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) (response.body.to_s.empty? ? nil : Auth0::Types::CreateFeatureFlagResponseContent.load(response.body)) else error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#delete(request_options: {}, **params) ⇒ untyped
Delete a feature flag by ID. Idempotent: returns 204 even if flag does not exist.
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 166 def delete(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "DELETE", path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#get(request_options: {}, **params) ⇒ Auth0::Types::GetFeatureFlagResponseContent
Retrieve a single feature flag by its ID.
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 129 def get(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) (response.body.to_s.empty? ? nil : Auth0::Types::GetFeatureFlagResponseContent.load(response.body)) else error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **params) ⇒ Auth0::Types::ListFeatureFlagsResponseContent
Retrieve a paginated list of feature flags for the tenant.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 37 def list(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["from"] = params[:from] if params.key?(:from) query_params["take"] = params.fetch(:take, 50) query_params["type"] = params[:type] if params.key?(:type) query_params["status"] = params[:status] if params.key?(:status) Auth0::Internal::CursorItemIterator.new( cursor_field: :next_, item_field: :feature_flags, initial_cursor: query_params["from"] ) do |next_cursor| query_params["from"] = next_cursor request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "experimentation/feature-flags", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) parsed_response = (response.body.to_s.empty? ? nil : Auth0::Types::ListFeatureFlagsResponseContent.load(response.body)) [parsed_response, response] else error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end end |
#update(request_options: {}, **params) ⇒ Auth0::Types::UpdateFeatureFlagResponseContent
Partially update a feature flag by ID. Only provided fields are updated.
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 201 def update(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request_data = Auth0::Experimentation::FeatureFlags::Types::UpdateFeatureFlagRequestContent.new(params).to_h non_body_param_names = %w[id] body = request_data.except(*non_body_param_names) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "PATCH", path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) (response.body.to_s.empty? ? nil : Auth0::Types::UpdateFeatureFlagResponseContent.load(response.body)) else error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#update_status(request_options: {}, **params) ⇒ Auth0::Types::UpdateFeatureFlagStatusResponseContent
Transitions a feature flag through its lifecycle states: draft → active, draft → archived, active → archived.
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 246 def update_status(request_options: {}, **params) params = Auth0::Internal::Types::Utils.normalize_keys(params) request_data = Auth0::Experimentation::FeatureFlags::Types::UpdateFeatureFlagStatusRequestContent.new(params).to_h non_body_param_names = %w[id] body = request_data.except(*non_body_param_names) request = Auth0::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/status", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Auth0::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) (response.body.to_s.empty? ? nil : Auth0::Types::UpdateFeatureFlagStatusResponseContent.load(response.body)) else error_class = Auth0::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#variations ⇒ Auth0::Variations::Client
274 275 276 |
# File 'lib/auth0/experimentation/feature_flags/client.rb', line 274 def variations @variations ||= Auth0::Experimentation::FeatureFlags::Variations::Client.new(client: @client) end |