Class: StarkBank::CorporateRule
- Inherits:
-
StarkCore::Utils::Resource
- Object
- StarkCore::Utils::Resource
- StarkBank::CorporateRule
- Defined in:
- lib/corporate_rule/corporaterule.rb
Overview
# CorporateRule object
The CorporateRule object displays the spending rules of CorporateCards and CorporateHolders created in your Workspace.
## Parameters (required):
-
name [string]: rule name. ex: ‘Travel’ or ‘Food’
-
amount [integer]: maximum amount that can be spent in the informed interval. ex: 200000 (= R$ 2000.00)
## Parameters (optional):
-
interval [string, default ‘lifetime’]: interval after which the rule amount counter will be reset to 0. ex: ‘instant’, ‘day’, ‘week’, ‘month’, ‘year’ or ‘lifetime’
-
schedule [string, default nil]: schedule time for user to spend. ex: “every monday, wednesday from 00:00 to 23:59 in America/Sao_Paulo”
-
purposes [list of string, default []]: list of strings representing the allowed purposes for card purchases, you can use this to restrict ATM withdrawals. ex: [“purchase”, “withdrawal”]
-
currency_code [string, default ‘BRL’]: code of the currency that the rule amount refers to. ex: ‘BRL’ or ‘USD’
-
categories [list of MerchantCategories, default nil]: merchant categories accepted by the rule. ex: [MerchantCategory(code=‘fastFoodRestaurants’)]
-
countries [list of MerchantCountries, default nil]: countries accepted by the rule. ex: [MerchantCountry(code=‘BRA’)]
-
methods [list of CardMethods, default nil]: card purchase methods accepted by the rule. ex: [CardMethod(code=‘magstripe’)]
## Attributes (expanded return-only):
-
id [string]: unique id returned when a CorporateRule is created, used to update a specific CorporateRule. ex: ‘5656565656565656’
-
counter_amount [integer]: current rule spent amount. ex: 1000
-
currency_symbol [string]: currency symbol. ex: ‘R$’
-
currency_name [string]: currency name. ex: ‘Brazilian Real’
Instance Attribute Summary collapse
-
#amount ⇒ Object
readonly
Returns the value of attribute amount.
-
#categories ⇒ Object
readonly
Returns the value of attribute categories.
-
#counter_amount ⇒ Object
readonly
Returns the value of attribute counter_amount.
-
#countries ⇒ Object
readonly
Returns the value of attribute countries.
-
#currency_code ⇒ Object
readonly
Returns the value of attribute currency_code.
-
#currency_name ⇒ Object
readonly
Returns the value of attribute currency_name.
-
#currency_symbol ⇒ Object
readonly
Returns the value of attribute currency_symbol.
-
#interval ⇒ Object
readonly
Returns the value of attribute interval.
-
#methods ⇒ Object
readonly
Returns the value of attribute methods.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#purposes ⇒ Object
readonly
Returns the value of attribute purposes.
-
#schedule ⇒ Object
readonly
Returns the value of attribute schedule.
Class Method Summary collapse
- .parse_categories(categories) ⇒ Object
- .parse_countries(countries) ⇒ Object
- .parse_methods(methods) ⇒ Object
- .parse_rules(rules) ⇒ Object
- .resource ⇒ Object
Instance Method Summary collapse
-
#initialize(name:, amount:, id: nil, interval: nil, schedule: nil, purposes: nil, currency_code: nil, categories: nil, countries: nil, methods: nil, counter_amount: nil, currency_symbol: nil, currency_name: nil) ⇒ CorporateRule
constructor
A new instance of CorporateRule.
Constructor Details
#initialize(name:, amount:, id: nil, interval: nil, schedule: nil, purposes: nil, currency_code: nil, categories: nil, countries: nil, methods: nil, counter_amount: nil, currency_symbol: nil, currency_name: nil) ⇒ CorporateRule
Returns a new instance of CorporateRule.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/corporate_rule/corporaterule.rb', line 31 def initialize( name:, amount:, id: nil, interval: nil, schedule: nil, purposes: nil, currency_code: nil, categories: nil, countries: nil, methods: nil, counter_amount: nil, currency_symbol: nil, currency_name: nil ) super(id) @name = name @amount = amount @interval = interval @schedule = schedule @purposes = purposes @currency_code = currency_code @categories = CorporateRule.parse_categories(categories) @countries = CorporateRule.parse_categories(countries) @methods = CorporateRule.parse_categories(methods) @counter_amount = counter_amount @currency_symbol = currency_symbol @currency_name = currency_name end |
Instance Attribute Details
#amount ⇒ Object (readonly)
Returns the value of attribute amount.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def amount @amount end |
#categories ⇒ Object (readonly)
Returns the value of attribute categories.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def categories @categories end |
#counter_amount ⇒ Object (readonly)
Returns the value of attribute counter_amount.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def counter_amount @counter_amount end |
#countries ⇒ Object (readonly)
Returns the value of attribute countries.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def countries @countries end |
#currency_code ⇒ Object (readonly)
Returns the value of attribute currency_code.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def currency_code @currency_code end |
#currency_name ⇒ Object (readonly)
Returns the value of attribute currency_name.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def currency_name @currency_name end |
#currency_symbol ⇒ Object (readonly)
Returns the value of attribute currency_symbol.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def currency_symbol @currency_symbol end |
#interval ⇒ Object (readonly)
Returns the value of attribute interval.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def interval @interval end |
#methods ⇒ Object (readonly)
Returns the value of attribute methods.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def methods @methods end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def name @name end |
#purposes ⇒ Object (readonly)
Returns the value of attribute purposes.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def purposes @purposes end |
#schedule ⇒ Object (readonly)
Returns the value of attribute schedule.
29 30 31 |
# File 'lib/corporate_rule/corporaterule.rb', line 29 def schedule @schedule end |
Class Method Details
.parse_categories(categories) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/corporate_rule/corporaterule.rb', line 50 def self.parse_categories(categories) resource_maker = StarkBank::MerchantCategory.resource[:resource_maker] return categories if categories.nil? parsed_categories = [] categories.each do |category| unless category.is_a? MerchantCategory category = StarkCore::Utils::API.from_api_json(resource_maker, category) end parsed_categories << category end parsed_categories end |
.parse_countries(countries) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/corporate_rule/corporaterule.rb', line 64 def self.parse_countries(countries) resource_maker = StarkBank::MerchantCountry.resource[:resource_maker] return countries if countries.nil? parsed_countries = [] countries.each do |country| unless country.is_a? MerchantCountry country = StarkCore::Utils::API.from_api_json(resource_maker, country) end parsed_countries << country end parsed_countries end |
.parse_methods(methods) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/corporate_rule/corporaterule.rb', line 78 def self.parse_methods(methods) resource_maker = StarkBank::CardMethod.resource[:resource_maker] return methods if methods.nil? parsed_methods = [] methods.each do |method| unless method.is_a? CardMethod method = StarkCore::Utils::API.from_api_json(resource_maker, method) end parsed_methods << method end parsed_methods end |
.parse_rules(rules) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/corporate_rule/corporaterule.rb', line 92 def self.parse_rules(rules) rule_maker = StarkBank::CorporateRule.resource[:resource_maker] return rules if rules.nil? parsed_rules = [] rules.each do |rule| unless rule.is_a? CorporateRule rule = StarkCore::Utils::API.from_api_json(rule_maker, rule) end parsed_rules << rule end parsed_rules end |
.resource ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/corporate_rule/corporaterule.rb', line 106 def self.resource { resource_name: 'CorporateRule', resource_maker: proc { |json| CorporateRule.new( name: json['name'], amount: json['amount'], interval: json['interval'], schedule: json['schedule'], purposes: json['purposes'], currency_code: json['currency_code'], categories: json['categories'], countries: json['countries'], methods: json['methods'], counter_amount: json['counter_amount'], currency_symbol: json['currency_symbol'], currency_name: json['currency_name'] ) } } end |