Module: KapsoClientRuby::Types

Defined in:
lib/kapso_client_ruby/types.rb

Defined Under Namespace

Classes: BusinessProfileEntry, CallActionResponse, CallConnectResponse, CallRecord, ContactRecord, ConversationRecord, FlowAssetResponse, FlowData, FlowEventData, FlowPreviewResponse, FlowResponse, FlowScreen, GraphPaging, GraphSuccessResponse, MediaMetadataResponse, MediaUploadResponse, MessageContact, MessageInfo, MessageTemplate, PagedResponse, SendMessageResponse, TemplateCreateResponse

Constant Summary collapse

MESSAGE_STATUSES =

Message status types

%w[accepted held_for_quality_assessment].freeze
TEMPLATE_STATUSES =

Template status types

%w[APPROVED PENDING REJECTED PAUSED IN_APPEAL DISABLED].freeze
TEMPLATE_CATEGORIES =

Template categories

%w[MARKETING UTILITY AUTHENTICATION UNKNOWN].freeze
MEDIA_TYPES =

Media types

%w[image audio video document sticker].freeze
INTERACTIVE_TYPES =

Interactive message types

%w[button list product product_list flow address location_request call_permission].freeze

Class Method Summary collapse

Class Method Details

.deep_camel_case_keys(obj) ⇒ Object

Deep convert hash keys from snake_case to camelCase



337
338
339
340
341
342
343
344
345
346
347
# File 'lib/kapso_client_ruby/types.rb', line 337

def self.deep_camel_case_keys(obj)
  case obj
  when Hash
    obj.transform_keys { |key| to_camel_case(key.to_s) }
       .transform_values { |value| deep_camel_case_keys(value) }
  when Array
    obj.map { |item| deep_camel_case_keys(item) }
  else
    obj
  end
end

.deep_snake_case_keys(obj) ⇒ Object

Deep convert hash keys from camelCase to snake_case



324
325
326
327
328
329
330
331
332
333
334
# File 'lib/kapso_client_ruby/types.rb', line 324

def self.deep_snake_case_keys(obj)
  case obj
  when Hash
    obj.transform_keys { |key| to_snake_case(key.to_s) }
       .transform_values { |value| deep_snake_case_keys(value) }
  when Array
    obj.map { |item| deep_snake_case_keys(item) }
  else
    obj
  end
end

.to_camel_case(str) ⇒ Object

Utility method to convert snake_case to camelCase for API requests



314
315
316
# File 'lib/kapso_client_ruby/types.rb', line 314

def self.to_camel_case(str)
  str.split('_').map.with_index { |word, i| i == 0 ? word : word.capitalize }.join
end

.to_snake_case(str) ⇒ Object

Utility method to convert camelCase to snake_case for Ruby conventions



319
320
321
# File 'lib/kapso_client_ruby/types.rb', line 319

def self.to_snake_case(str)
  str.gsub(/([A-Z])/, '_\1').downcase.sub(/^_/, '')
end