starkinfra 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/lib/brcodepreview/brcodepreview.rb +12 -8
  3. data/lib/cardmethod/cardmethod.rb +1 -1
  4. data/lib/creditholmes/creditholmes.rb +160 -0
  5. data/lib/creditnote/creditnote.rb +19 -18
  6. data/lib/creditnote/invoice/discount.rb +1 -1
  7. data/lib/creditnote/invoice/invoice.rb +4 -3
  8. data/lib/creditnote/log.rb +16 -17
  9. data/lib/creditpreview/creditpreview.rb +2 -8
  10. data/lib/dynamicbrcode/dynamicbrcode.rb +3 -3
  11. data/lib/event/attempt.rb +1 -1
  12. data/lib/event/event.rb +1 -1
  13. data/lib/individualdocument/individualdocument.rb +165 -0
  14. data/lib/individualdocument/log.rb +125 -0
  15. data/lib/individualidentity/individualidentity.rb +193 -0
  16. data/lib/individualidentity/log.rb +124 -0
  17. data/lib/issuingcard/issuingcard.rb +11 -12
  18. data/lib/issuingcard/log.rb +19 -19
  19. data/lib/issuingdesign/issuingdesign.rb +138 -0
  20. data/lib/issuingembossingkit/issuingembossingkit.rb +121 -0
  21. data/lib/issuingembossingrequest/issuingembossingrequest.rb +210 -0
  22. data/lib/issuingembossingrequest/log.rb +128 -0
  23. data/lib/issuingholder/issuingholder.rb +8 -7
  24. data/lib/issuingholder/log.rb +17 -17
  25. data/lib/issuinginvoice/issuinginvoice.rb +6 -5
  26. data/lib/issuinginvoice/log.rb +16 -16
  27. data/lib/issuingproduct/issuingproduct.rb +2 -2
  28. data/lib/issuingpurchase/issuingpurchase.rb +15 -11
  29. data/lib/issuingpurchase/log.rb +15 -15
  30. data/lib/issuingrestock/issuingrestock.rb +162 -0
  31. data/lib/issuingrestock/log.rb +127 -0
  32. data/lib/issuingstock/issuingstock.rb +138 -0
  33. data/lib/issuingstock/log.rb +130 -0
  34. data/lib/issuingtransaction/issuingtransaction.rb +7 -6
  35. data/lib/issuingwithdrawal/issuingwithdrawal.rb +8 -11
  36. data/lib/pixchargeback/log.rb +12 -12
  37. data/lib/pixclaim/log.rb +13 -13
  38. data/lib/pixclaim/pixclaim.rb +4 -4
  39. data/lib/pixdomain/pixdomain.rb +1 -1
  40. data/lib/pixinfraction/log.rb +18 -18
  41. data/lib/pixinfraction/pixinfraction.rb +3 -3
  42. data/lib/pixkey/log.rb +18 -18
  43. data/lib/pixkey/pixkey.rb +4 -3
  44. data/lib/pixrequest/log.rb +22 -18
  45. data/lib/pixrequest/pixrequest.rb +3 -0
  46. data/lib/pixreversal/log.rb +1 -1
  47. data/lib/pixstatement/pixstatement.rb +1 -1
  48. data/lib/starkinfra.rb +13 -0
  49. data/lib/staticbrcode/staticbrcode.rb +8 -2
  50. data/lib/utils/bacenid.rb +1 -1
  51. data/lib/utils/request.rb +1 -1
  52. data/lib/webhook/webhook.rb +9 -9
  53. metadata +15 -2
@@ -10,10 +10,6 @@ module StarkInfra
10
10
  # The IssuingCard object displays the information of the cards created in your Workspace.
11
11
  # Sensitive information will only be returned when the 'expand' parameter is used, to avoid security concerns.
12
12
  #
13
- # When you initialize a IssuingCard, the entity will not be automatically
14
- # created in the Stark Infra API. The 'create' function sends the objects
15
- # to the Stark Infra API and returns the created object.
16
- #
17
13
  # ## Parameters (required):
18
14
  # - holder_name [string]: card holder name. ex: 'Tony Stark'
19
15
  # - holder_tax_id [string]: card holder tax ID. ex: '012.345.678-90'
@@ -114,14 +110,14 @@ module StarkInfra
114
110
  #
115
111
  # ## Parameters (optional):
116
112
  # - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
117
- # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
118
- # - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
119
- # - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
113
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
114
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
120
115
  # - status [list of strings, default nil]: filter for status of retrieved objects. ex: ['active', 'blocked', 'canceled', 'expired']
121
116
  # - types [list of strings, default nil]: card type. ex: ['virtual']
122
117
  # - holder_ids [list of strings, default nil]: card holder IDs. ex: ['5656565656565656', '4545454545454545']
123
118
  # - tags [list of strings, default nil]: tags to filter retrieved objects. ex: ['tony', 'stark']
124
119
  # - expand [list of strings, default nil]: fields to expand information. ex: ['rules', 'security_code', 'number', 'expiration']
120
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
125
121
  # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
126
122
  #
127
123
  # ## Return:
@@ -147,14 +143,15 @@ module StarkInfra
147
143
 
148
144
  # # Retrieve paged IssuingCards
149
145
  #
150
- # Receive a list of IssuingCards objects previously created in the Stark Infra API and the cursor to the next page.
146
+ # Receive a list of up to 100 IssuingCard objects previously created in the Stark Infra API and the cursor to the next page.
147
+ # Use this function instead of query if you want to manually page your identities.
151
148
  #
152
149
  # ## Parameters (optional):
153
150
  # - cursor [string, default nil]: cursor returned on the previous page function call.
154
151
  # - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
155
152
  # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
156
- # - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
157
- # - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
153
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
154
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
158
155
  # - status [list of strings, default nil]: filter for status of retrieved objects. ex: ['active', 'blocked', 'canceled', 'expired']
159
156
  # - types [list of strings, default nil]: card type. ex: ['virtual']
160
157
  # - holder_ids [list of strings, default nil]: card holder IDs. ex: ['5656565656565656', '4545454545454545']
@@ -163,7 +160,7 @@ module StarkInfra
163
160
  # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
164
161
  #
165
162
  # ## Return:
166
- # - list of IssuingCards objects with updated attributes
163
+ # - list of IssuingCard objects with updated attributes
167
164
  # - cursor to retrieve the next page of IssuingCards objects
168
165
  def self.page(cursor: nil, limit: nil, ids: nil, after: nil, before: nil, status: nil, types: nil, holder_ids: nil,
169
166
  tags: nil, expand: nil, user: nil)
@@ -194,6 +191,7 @@ module StarkInfra
194
191
  #
195
192
  # ## Parameters (optional):
196
193
  # - status [string, default nil]: You may block the IssuingCard by passing 'blocked' or activate by passing 'active' in the status
194
+ # - pin [string, default nil]: You may unlock your physical card by passing its PIN. This is also the PIN you use to authorize a purhcase.
197
195
  # - display_name [string, default nil]: card displayed name
198
196
  # - rules [list of IssuingRule objects, default nil]: [EXPANDABLE] list of card spending rules.
199
197
  # - tags [list of strings, default nil]: list of strings for tagging
@@ -201,10 +199,11 @@ module StarkInfra
201
199
  #
202
200
  # ## Return:
203
201
  # - target IssuingCard with updated attributes
204
- def self.update(id, status: nil, display_name: nil, rules: nil, tags: nil, user: nil)
202
+ def self.update(id, status: nil, display_name: nil, pin: nil, rules: nil, tags: nil, user: nil)
205
203
  StarkInfra::Utils::Rest.patch_id(
206
204
  id: id,
207
205
  status: status,
206
+ pin: pin,
208
207
  display_name: display_name,
209
208
  rules: rules,
210
209
  tags: tags,
@@ -9,14 +9,14 @@ module StarkInfra
9
9
  class IssuingCard
10
10
  # # IssuingCard::Log object
11
11
  #
12
- # Every time an IssuingCard entity is updated, a corresponding issuing card.Log is generated for the entity. This log
12
+ # Every time an IssuingCard entity is updated, a corresponding IssuingCard::Log is generated for the entity. This log
13
13
  # is never generated by the user, but it can be retrieved to check additional information on the IssuingCard.
14
14
  #
15
- # ## Attributes:
15
+ # ## Attributes (return-only):
16
16
  # - id [string]: unique id returned when the log is created. ex: '5656565656565656'
17
- # - created [DateTime]: creation datetime for the log. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
18
- # - type [string]: type of the IssuingCard event which triggered the log creation. ex: 'processing' or 'success'
19
17
  # - card [IssuingCard]: IssuingCard entity to which the log refers to.
18
+ # - type [string]: type of the IssuingCard event which triggered the log creation. ex: 'processing' or 'success'
19
+ # - created [DateTime]: creation datetime for the log. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
20
20
  class Log < StarkInfra::Utils::Resource
21
21
  attr_reader :id, :created, :type, :card
22
22
  def initialize(id:, created:, type:, card:)
@@ -26,9 +26,9 @@ module StarkInfra
26
26
  @created = StarkInfra::Utils::Checks.check_datetime(created)
27
27
  end
28
28
 
29
- # # Retrieve a specific Log
29
+ # # Retrieve a specific IssuingCard::Log
30
30
  #
31
- # Receive a single Log object previously created by the Stark Infra API by passing its id
31
+ # Receive a single IssuingCard::Log object previously created by the Stark Infra API by passing its id
32
32
  #
33
33
  # ## Parameters (required):
34
34
  # - id [string]: object unique id. ex: '5656565656565656'
@@ -37,26 +37,26 @@ module StarkInfra
37
37
  # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
38
38
  #
39
39
  # ## Return:
40
- # - Log object with updated attributes
40
+ # - IssuingCard::Log object with updated attributes
41
41
  def self.get(id, user: nil)
42
42
  StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
43
43
  end
44
44
 
45
- # # Retrieve Logs
45
+ # # Retrieve IssuingCard::Logs
46
46
  #
47
- # Receive a generator of Log objects previously created in the Stark Infra API
47
+ # Receive a generator of IssuingCard::Log objects previously created in the Stark Infra API
48
48
  #
49
49
  # ## Parameters (optional):
50
- # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
51
50
  # - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
52
- # - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
53
- # - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
51
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
52
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
54
53
  # - types [list of strings, default nil]: filter for log event types. ex: ['blocked', 'canceled', 'created', 'expired', 'unblocked', 'updated']
55
54
  # - card_ids [list of strings, default nil]: list of IssuingCard ids to filter logs. ex: ['5656565656565656', '4545454545454545']
55
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
56
56
  # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
57
57
  #
58
58
  # ## Return:
59
- # - generator of Log objects with updated attributes
59
+ # - generator of IssuingCard::Log objects with updated attributes
60
60
  def self.query(limit: nil, after: nil, before: nil, types: nil, card_ids: nil, user: nil)
61
61
  after = StarkInfra::Utils::Checks.check_date(after)
62
62
  before = StarkInfra::Utils::Checks.check_date(before)
@@ -71,23 +71,23 @@ module StarkInfra
71
71
  )
72
72
  end
73
73
 
74
- # # Retrieve paged Logs
74
+ # # Retrieve paged IssuingCard::Logs
75
75
  #
76
- # Receive a list of up to 100 Log objects previously created in the Stark Infra API and the cursor to the next page.
76
+ # Receive a list of up to 100 IssuingCard::Log objects previously created in the Stark Infra API and the cursor to the next page.
77
77
  # Use this function instead of query if you want to manually page your logs.
78
78
  #
79
79
  # ## Parameters (optional):
80
80
  # - cursor [string, default nil]: cursor returned on the previous page function call
81
- # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
82
81
  # - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
83
- # - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
84
- # - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
82
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
83
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
85
84
  # - types [list of strings, default nil]: filter for log event types. ex: ['blocked', 'canceled', 'created', 'expired', 'unblocked', 'updated']
86
85
  # - card_ids [list of strings, default nil]: list of IssuingCard ids to filter logs. ex: ['5656565656565656', '4545454545454545']
86
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
87
87
  # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
88
88
  #
89
89
  # ## Return:
90
- # - list of Log objects with updated attributes
90
+ # - list of IssuingCard::Log objects with updated attributes
91
91
  # - Cursor to retrieve the next page of Log objects
92
92
  def self.page(cursor: nil, limit: nil, after: nil, before: nil, types: nil, card_ids: nil, user: nil)
93
93
  after = StarkInfra::Utils::Checks.check_date(after)
@@ -0,0 +1,138 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative('../utils/rest')
4
+ require_relative('../utils/checks')
5
+ require_relative('../utils/resource')
6
+
7
+ module StarkInfra
8
+ # # IssuingDesign object
9
+ #
10
+ # The IssuingDesign object displays information on the card and card package designs available to your Workspace.
11
+ #
12
+ # ## Attributes (return-only):
13
+ # - id [string]: unique id returned when IssuingDesign is created. ex: "5656565656565656"
14
+ # - name [string]: card or package design name. ex: "stark-plastic-dark-001"
15
+ # - embosser_ids [list of strings]: list of embosser unique ids. ex: ["5136459887542272", "5136459887542273"]
16
+ # - type [string]: card or package design type. Options: "card", "envelope"
17
+ # - updated [DateTime]: latest update datetime for the IssuingDesign. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
18
+ # - created [DateTime]: creation datetime for the IssuingDesign. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
19
+ class IssuingDesign < StarkInfra::Utils::Resource
20
+ attr_reader :id, :name, :embosser_ids, :type, :updated, :created
21
+ def initialize(
22
+ id: nil, name: nil, embosser_ids: nil, type: nil, updated: nil, created: nil
23
+ )
24
+ super(id)
25
+ @name = name
26
+ @embosser_ids = embosser_ids
27
+ @type = type
28
+ @updated = StarkInfra::Utils::Checks.check_datetime(updated)
29
+ @created = StarkInfra::Utils::Checks.check_datetime(created)
30
+ end
31
+
32
+ # # Retrieve a specific IssuingDesign
33
+ #
34
+ # Receive a single IssuingDesign object previously created in the Stark Infra API by its id
35
+ #
36
+ # ## Parameters (required):
37
+ # - id [string]: object unique id. ex: '5656565656565656'
38
+ #
39
+ # ## Parameters (optional):
40
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
41
+ #
42
+ # ## Return:
43
+ # - IssuingDesign object with updated attributes
44
+ def self.get(id, user: nil)
45
+ StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
46
+ end
47
+
48
+ # # Retrieve IssuingDesigns
49
+ #
50
+ # Receive a generator of IssuingDesigns objects previously created in the Stark Infra API
51
+ #
52
+ # ## Parameters (optional):
53
+ # - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
54
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
55
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
56
+ #
57
+ # ## Return:
58
+ # - generator of IssuingDesigns objects with updated attributes
59
+ def self.query(limit: nil, ids: nil, user: nil)
60
+ StarkInfra::Utils::Rest.get_stream(
61
+ limit: limit,
62
+ ids: ids,
63
+ user: user,
64
+ **resource
65
+ )
66
+ end
67
+
68
+ # # Retrieve paged IssuingDesigns
69
+ #
70
+ # Receive a list of up to 100 IssuingDesign objects previously created in the Stark Infra API and the cursor to the next page.
71
+ # Use this function instead of query if you want to manually page your requests.
72
+ #
73
+ # ## Parameters (optional):
74
+ # - cursor [string, default nil]: cursor returned on the previous page function call.
75
+ # - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
76
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
77
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
78
+ #
79
+ # ## Return:
80
+ # - list of IssuingDesign objects with updated attributes
81
+ # - cursor to retrieve the next page of IssuingDesign objects
82
+ def self.page(cursor: nil, limit: nil, status: nil, user: nil)
83
+ StarkInfra::Utils::Rest.get_page(
84
+ cursor: cursor,
85
+ limit: limit,
86
+ status: status,
87
+ user: user,
88
+ **resource
89
+ )
90
+ end
91
+
92
+ # # Retrieve a specific IssuingDesign pdf file
93
+ #
94
+ # Receive a single IssuingDesign pdf file generated in the Stark Infra API by its id.
95
+ #
96
+ # ## Parameters (required):
97
+ # - id [string]: object unique id. ex: '5656565656565656'
98
+ #
99
+ # ## Parameters (optional):
100
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
101
+ #
102
+ # ## Return:
103
+ # - IssuingDesign pdf file
104
+ def self.pdf(id, user: nil)
105
+ StarkInfra::Utils::Rest.get_content(id: id, user: user, sub_resource_name: 'pdf', **resource)
106
+ end
107
+
108
+ def self.parse_designs(designs)
109
+ resource_maker = StarkInfra::IssuingDesign.resource[:resource_maker]
110
+ return designs if designs.nil?
111
+
112
+ parsed_designs = []
113
+ designs.each do |design|
114
+ unless design.is_a? IssuingDesign
115
+ design = StarkInfra::Utils::API.from_api_json(resource_maker, design)
116
+ end
117
+ parsed_designs << design
118
+ end
119
+ parsed_designs
120
+ end
121
+
122
+ def self.resource
123
+ {
124
+ resource_name: 'IssuingDesign',
125
+ resource_maker: proc { |json|
126
+ IssuingDesign.new(
127
+ id: json['id'],
128
+ name: json['name'],
129
+ embosser_ids: json['embosser_ids'],
130
+ type: json['type'],
131
+ updated: json['updated'],
132
+ created: json['created']
133
+ )
134
+ }
135
+ }
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative('../utils/rest')
4
+ require_relative('../utils/checks')
5
+ require_relative('../utils/resource')
6
+
7
+ module StarkInfra
8
+ # # IssuingEmbossingKit object
9
+ #
10
+ # The IssuingEmbossingKit object displays information on the embossing kits available to your Workspace.
11
+ #
12
+ # ## Attributes (return-only):
13
+ # - id [string]: unique id returned when IssuingEmbossingKit is created. ex: "5656565656565656"
14
+ # - name [string]: card or package design name. ex: "stark-plastic-dark-001"
15
+ # - designs [list of IssuingDesign objects]: list of IssuingDesign objects. ex: [IssuingDesign(), IssuingDesign()]
16
+ # - updated [DateTime]: latest update datetime for the IssuingEmbossingKit. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
17
+ # - created [DateTime]: creation datetime for the IssuingEmbossingKit. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
18
+ class IssuingEmbossingKit < StarkInfra::Utils::Resource
19
+ attr_reader :id, :name, :designs, :updated, :created
20
+ def initialize(
21
+ id: nil, name: nil, designs: nil, updated: nil, created: nil
22
+ )
23
+ super(id)
24
+ @name = name
25
+ @designs = IssuingDesign::parse_designs(designs)
26
+ @updated = StarkInfra::Utils::Checks.check_datetime(updated)
27
+ @created = StarkInfra::Utils::Checks.check_datetime(created)
28
+ end
29
+
30
+ # # Retrieve a specific IssuingEmbossingKit
31
+ #
32
+ # Receive a single IssuingEmbossingKit object previously created in the Stark Infra API by its id
33
+ #
34
+ # ## Parameters (required):
35
+ # - id [string]: object unique id. ex: '5656565656565656'
36
+ #
37
+ # ## Parameters (optional):
38
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
39
+ #
40
+ # ## Return:
41
+ # - IssuingEmbossingKit object with updated attributes
42
+ def self.get(id, user: nil)
43
+ StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
44
+ end
45
+
46
+ # # Retrieve IssuingEmbossingKits
47
+ #
48
+ # Receive a generator of IssuingEmbossingKits objects previously created in the Stark Infra API
49
+ #
50
+ # ## Parameters (optional):
51
+ # - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
52
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
53
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
54
+ # - status [list of strings, default nil]: filter for status of retrieved objects. ex: ["created", "processing", "success", "failed"]
55
+ # - design_ids [list of string, default nil]: list of design_ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
56
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
57
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
58
+ #
59
+ # ## Return:
60
+ # - generator of IssuingEmbossingKits objects with updated attributes
61
+ def self.query(limit: nil, after: nil, before: nil, status: nil, design_ids: nil, ids: nil, user: nil)
62
+ StarkInfra::Utils::Rest.get_stream(
63
+ limit: limit,
64
+ after: after,
65
+ before: before,
66
+ status: status,
67
+ design_ids: design_ids,
68
+ ids: ids,
69
+ user: user,
70
+ **resource
71
+ )
72
+ end
73
+
74
+ # # Retrieve paged IssuingEmbossingKits
75
+ #
76
+ # Receive a list of up to 100 IssuingEmbossingKit objects previously created in the Stark Infra API and the cursor to the next page.
77
+ # Use this function instead of query if you want to manually page your requests.
78
+ #
79
+ # ## Parameters (optional):
80
+ # - cursor [string, default nil]: cursor returned on the previous page function call.
81
+ # - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
82
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
83
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
84
+ # - status [list of strings, default nil]: filter for status of retrieved objects. ex: ["created", "processing", "success", "failed"]
85
+ # - design_ids [list of string, default nil]: list of design_ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
86
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
87
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
88
+ #
89
+ # ## Return:
90
+ # - list of IssuingEmbossingKit objects with updated attributes
91
+ # - cursor to retrieve the next page of IssuingEmbossingKit objects
92
+ def self.page(cursor: nil, limit: nil, after: nil, before: nil, status: nil, design_ids: nil, ids: nil, user: nil)
93
+ StarkInfra::Utils::Rest.get_page(
94
+ cursor: cursor,
95
+ limit: limit,
96
+ after: after,
97
+ before: before,
98
+ status: status,
99
+ design_ids: design_ids,
100
+ ids: ids,
101
+ user: user,
102
+ **resource
103
+ )
104
+ end
105
+
106
+ def self.resource
107
+ {
108
+ resource_name: 'IssuingEmbossingKit',
109
+ resource_maker: proc { |json|
110
+ IssuingEmbossingKit.new(
111
+ id: json['id'],
112
+ name: json['name'],
113
+ designs: json['designs'],
114
+ updated: json['updated'],
115
+ created: json['created']
116
+ )
117
+ }
118
+ }
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,210 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative('../utils/rest')
4
+ require_relative('../utils/checks')
5
+ require_relative('../utils/resource')
6
+
7
+ module StarkInfra
8
+ # # IssuingEmbossingRequest object
9
+ #
10
+ # The IssuingEmbossingRequest object displays the information of embossing requests in your Workspace.
11
+ #
12
+ # ## Parameters (required):
13
+ # - card_id [string]: id of the IssuingCard to be embossed. ex "5656565656565656"
14
+ # - kit_id [string]: card embossing kit id. ex "5656565656565656"
15
+ # - display_name_1 [string]: card displayed name. ex: "ANTHONY STARK"
16
+ # - shipping_city [string]: shipping city. ex: "NEW YORK"
17
+ # - shipping_country_code [string]: shipping country code. ex: "US"
18
+ # - shipping_district [string]: shipping district. ex: "NY"
19
+ # - shipping_state_code [string]: shipping state code. ex: "NY"
20
+ # - shipping_street_line_1 [string]: shipping main address. ex: "AVENUE OF THE AMERICAS"
21
+ # - shipping_street_line_2 [string]: shipping address complement. ex: "Apt. 6"
22
+ # - shipping_service [string]: shipping service. ex: "loggi"
23
+ # - shipping_tracking_number [string]: shipping tracking number. ex: "5656565656565656"
24
+ # - shipping_zip_code [string]: shipping zip code. ex: "12345-678"
25
+ #
26
+ # ## Parameters (optional):
27
+ # - embosser_id [string, default nil]: id of the card embosser. ex: "5656565656565656"
28
+ # - display_name_2 [string, default nil]: card displayed name. ex: "IT Services"
29
+ # - display_name_3 [string, default nil]: card displayed name. ex: "StarkBank S.A."
30
+ # - shipping_phone [string, deafult nil]: shipping phone. ex: "+5511999999999"
31
+ # - tags [list of strings, default nil]: list of strings for tagging. ex: ["card", "corporate"]
32
+ #
33
+ # ## Attributes (return-only):
34
+ # - id [string]: unique id returned when IssuingEmbossingRequest is created. ex: "5656565656565656"
35
+ # - fee [integer]: fee charged when IssuingEmbossingRequest is created. ex: 1000
36
+ # - status [string]: status of the IssuingEmbossingRequest. ex: "created", "processing", "success", "failed"
37
+ # - updated [DateTime]: latest update datetime for the IssuingEmbossingRequest. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
38
+ # - created [DateTime]: creation datetime for the IssuingEmbossingRequest. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
39
+ class IssuingEmbossingRequest < StarkInfra::Utils::Resource
40
+ attr_reader :card_id, :kit_id, :display_name_1, :shipping_city, :shipping_country_code,
41
+ :shipping_district, :shipping_state_code, :shipping_street_line_1, :shipping_street_line_2,
42
+ :shipping_service, :shipping_tracking_number, :shipping_zip_code, :embosser_id, :display_name_2,
43
+ :display_name_3, :shipping_phone, :tags, :id, :fee, :status, :created, :updated
44
+ def initialize(
45
+ card_id:, kit_id:, display_name_1:, shipping_city:,
46
+ shipping_country_code:, shipping_district:, shipping_state_code:, shipping_street_line_1:,
47
+ shipping_street_line_2:, shipping_service:, shipping_tracking_number:, shipping_zip_code:,
48
+ embosser_id: nil, display_name_2: nil, display_name_3: nil, shipping_phone: nil,
49
+ tags: nil, id: nil, fee: nil, status: nil, updated: nil, created: nil
50
+ )
51
+ super(id)
52
+ @card_id = card_id
53
+ @kit_id = kit_id
54
+ @display_name_1 = display_name_1
55
+ @shipping_city = shipping_city
56
+ @shipping_country_code = shipping_country_code
57
+ @shipping_district = shipping_district
58
+ @shipping_state_code = shipping_state_code
59
+ @shipping_street_line_1 = shipping_street_line_1
60
+ @shipping_street_line_2 = shipping_street_line_2
61
+ @shipping_service = shipping_service
62
+ @shipping_tracking_number = shipping_tracking_number
63
+ @shipping_zip_code = shipping_zip_code
64
+ @embosser_id = embosser_id
65
+ @display_name_2 = display_name_2
66
+ @display_name_3 = display_name_3
67
+ @shipping_phone = shipping_phone
68
+ @tags = tags
69
+ @fee = fee
70
+ @status = status
71
+ @created = StarkInfra::Utils::Checks.check_datetime(created)
72
+ @updated = StarkInfra::Utils::Checks.check_datetime(updated)
73
+ end
74
+
75
+ # # Create IssuingEmbossingRequests
76
+ #
77
+ # Send a list of IssuingEmbossingRequest objects for creation in the Stark Infra API
78
+ #
79
+ # ## Parameters (required):
80
+ # - requests [list of IssuingEmbossingRequest objects]: list of IssuingEmbossingRequest objects to be created in the API
81
+ #
82
+ # ## Parameters (optional):
83
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
84
+ #
85
+ # ## Return:
86
+ # - list of IssuingEmbossingRequest objects with updated attributes
87
+ def self.create(requests:, user: nil)
88
+ StarkInfra::Utils::Rest.post(entities: requests, user: user, **resource)
89
+ end
90
+
91
+ # # Retrieve a specific IssuingEmbossingRequest
92
+ #
93
+ # Receive a single IssuingEmbossingRequest object previously created in the Stark Infra API by its id
94
+ #
95
+ # ## Parameters (required):
96
+ # - id [string]: object unique id. ex: '5656565656565656'
97
+ #
98
+ # ## Parameters (optional):
99
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
100
+ #
101
+ # ## Return:
102
+ # - IssuingEmbossingRequest object with updated attributes
103
+ def self.get(id, user: nil)
104
+ StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
105
+ end
106
+
107
+ # # Retrieve IssuingEmbossingRequests
108
+ #
109
+ # Receive a generator of IssuingEmbossingRequests objects previously created in the Stark Infra API
110
+ #
111
+ # ## Parameters (optional):
112
+ # - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
113
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
114
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
115
+ # - status [list of strings, default nil]: filter for status of retrieved objects. ex: ["created", "processing", "success", "failed"]
116
+ # - card_ids [list of string, default nil]: list of card_ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
117
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
118
+ # - tags [list of strings, default nil]: tags to filter retrieved objects. ex: ["tony", "stark"]
119
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
120
+ #
121
+ # ## Return:
122
+ # - generator of IssuingEmbossingRequests objects with updated attributes
123
+ def self.query(
124
+ limit: nil, after: nil, before: nil, status: nil, card_ids: nil, ids: nil,
125
+ tags: nil, user: nil
126
+ )
127
+ after = StarkInfra::Utils::Checks.check_date(after)
128
+ before = StarkInfra::Utils::Checks.check_date(before)
129
+ StarkInfra::Utils::Rest.get_stream(
130
+ limit: limit,
131
+ after: after,
132
+ before: before,
133
+ status: status,
134
+ card_ids: card_ids,
135
+ ids: ids,
136
+ tags: tags,
137
+ user: user,
138
+ **resource
139
+ )
140
+ end
141
+
142
+ # # Retrieve paged IssuingEmbossingRequests
143
+ #
144
+ # Receive a list of up to 100 IssuingEmbossingRequest objects previously created in the Stark Infra API and the cursor to the next page.
145
+ # Use this function instead of query if you want to manually page your requests.
146
+ #
147
+ # ## Parameters (optional):
148
+ # - cursor [string, default nil]: cursor returned on the previous page function call.
149
+ # - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
150
+ # - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
151
+ # - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
152
+ # - status [list of strings, default nil]: filter for status of retrieved objects. ex: ["created", "processing", "success", "failed"]
153
+ # - card_ids [list of string, default nil]: list of card_ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
154
+ # - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"]
155
+ # - tags [list of strings, default nil]: tags to filter retrieved objects. ex: ["tony", "stark"]
156
+ # - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
157
+ #
158
+ # ## Return:
159
+ # - list of IssuingEmbossingRequests objects with updated attributes
160
+ # - cursor to retrieve the next page of IssuingEmbossingRequests objects
161
+ def self.page(cursor: nil, limit: nil, after: nil, before: nil, status: nil, card_ids: nil, ids: nil, tags: nil, user: nil)
162
+ after = StarkInfra::Utils::Checks.check_date(after)
163
+ before = StarkInfra::Utils::Checks.check_date(before)
164
+ StarkInfra::Utils::Rest.get_page(
165
+ cursor: cursor,
166
+ limit: limit,
167
+ after: after,
168
+ before: before,
169
+ status: status,
170
+ card_ids: card_ids,
171
+ ids: ids,
172
+ tags: tags,
173
+ user: user,
174
+ **resource
175
+ )
176
+ end
177
+
178
+ def self.resource
179
+ {
180
+ resource_name: 'IssuingEmbossingRequest',
181
+ resource_maker: proc { |json|
182
+ IssuingEmbossingRequest.new(
183
+ card_id: json['card_id'],
184
+ kit_id: json['kit_id'],
185
+ display_name_1: json['display_name_1'],
186
+ shipping_city: json['shipping_city'],
187
+ shipping_country_code: json['shipping_country_code'],
188
+ shipping_district: json['shipping_district'],
189
+ shipping_state_code: json['shipping_state_code'],
190
+ shipping_street_line_1: json['shipping_street_line_1'],
191
+ shipping_street_line_2: json['shipping_street_line_2'],
192
+ shipping_service: json['shipping_service'],
193
+ shipping_tracking_number: json['shipping_tracking_number'],
194
+ shipping_zip_code: json['shipping_zip_code'],
195
+ embosser_id: json['embosser_id'],
196
+ display_name_2: json['display_name_2'],
197
+ display_name_3: json['display_name_3'],
198
+ shipping_phone: json['shipping_phone'],
199
+ tags: json['tags'],
200
+ id: json['id'],
201
+ fee: json['fee'],
202
+ status: json['status'],
203
+ updated: json['updated'],
204
+ created: json['created']
205
+ )
206
+ }
207
+ }
208
+ end
209
+ end
210
+ end