Class: PayOS::Utils::Formater
- Inherits:
-
Object
- Object
- PayOS::Utils::Formater
- Defined in:
- lib/payOS/utils/formater.rb
Class Method Summary collapse
- .convert_data_to_query_str(object) ⇒ Object
- .format_params(params) ⇒ Object
- .params_to_string(params) ⇒ Object
- .snake_to_camel(str) ⇒ Object
- .sort_obj_data_by_key(object) ⇒ Object
- .webhook_data_to_string(data) ⇒ Object
Class Method Details
.convert_data_to_query_str(object) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/payOS/utils/formater.rb', line 34 def self.convert_data_to_query_str(object) object.map do |key, value| camel_key = snake_to_camel(key) formatted_value = case value when Array JSON.generate(value.map { |val| sort_obj_data_by_key(val) }) when nil, "undefined", "null" "" else value.to_s end "#{camel_key}=#{formatted_value}" end .join("&") end |
.format_params(params) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/payOS/utils/formater.rb', line 6 def self.format_params(params) params.sort_by { |key, _| key.to_s }.map do |key, value| formatted_key = key.to_s.split("_").map.with_index do |word, i| i.zero? ? word : word.capitalize end.join [formatted_key, value] end.to_h end |
.params_to_string(params) ⇒ Object
15 16 17 |
# File 'lib/payOS/utils/formater.rb', line 15 def self.params_to_string(params) params.reject { |k, _| k == "signature" }.sort_by { |key, _| key.to_s }.map { |k, v| "#{k}=#{v}" }.join("&") end |
.snake_to_camel(str) ⇒ Object
24 25 26 |
# File 'lib/payOS/utils/formater.rb', line 24 def self.snake_to_camel(str) str.to_s.split("_").map.with_index { |word, i| i.zero? ? word : word.capitalize }.join end |
.sort_obj_data_by_key(object) ⇒ Object
28 29 30 31 32 |
# File 'lib/payOS/utils/formater.rb', line 28 def self.sort_obj_data_by_key(object) object.transform_keys { |key| snake_to_camel(key) } .sort .to_h end |
.webhook_data_to_string(data) ⇒ Object
19 20 21 22 |
# File 'lib/payOS/utils/formater.rb', line 19 def self.webhook_data_to_string(data) sorted_data_by_key = sort_obj_data_by_key(data) convert_data_to_query_str(sorted_data_by_key) end |