pepipost_gem 2.5.0 → 5.0.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +6 -13
  3. data/README.md +123 -77
  4. data/lib/pepipost.rb +74 -0
  5. data/lib/{pepipost_gem → pepipost}/api_helper.rb +5 -3
  6. data/lib/pepipost/configuration.rb +24 -0
  7. data/lib/{pepipost_gem → pepipost}/controllers/base_controller.rb +10 -5
  8. data/lib/pepipost/controllers/domain_controller.rb +68 -0
  9. data/lib/pepipost/controllers/domain_delete_controller.rb +67 -0
  10. data/lib/pepipost/controllers/events_controller.rb +104 -0
  11. data/lib/pepipost/controllers/mail_send_controller.rb +54 -0
  12. data/lib/pepipost/controllers/setrecurringcreditddetails_controller.rb +68 -0
  13. data/lib/pepipost/controllers/stats_controller.rb +82 -0
  14. data/lib/pepipost/controllers/subaccounts_controller.rb +68 -0
  15. data/lib/pepipost/controllers/subaccounts_create_subaccount_controller.rb +68 -0
  16. data/lib/pepipost/controllers/subaccounts_delete_controller.rb +67 -0
  17. data/lib/pepipost/controllers/subaccounts_get_sub_accounts_controller.rb +71 -0
  18. data/lib/pepipost/controllers/subaccounts_setsubaccountcredit_controller.rb +68 -0
  19. data/lib/pepipost/controllers/subaccounts_update_subaccount_controller.rb +67 -0
  20. data/lib/pepipost/controllers/suppression_controller.rb +121 -0
  21. data/lib/{pepipost_gem → pepipost}/exceptions/api_exception.rb +5 -3
  22. data/lib/pepipost/http/auth/custom_header_auth.rb +16 -0
  23. data/lib/{pepipost_gem → pepipost}/http/faraday_client.rb +17 -8
  24. data/lib/{pepipost_gem → pepipost}/http/http_call_back.rb +5 -3
  25. data/lib/{pepipost_gem → pepipost}/http/http_client.rb +5 -3
  26. data/lib/{pepipost_gem → pepipost}/http/http_context.rb +5 -3
  27. data/lib/{pepipost_gem → pepipost}/http/http_method_enum.rb +5 -3
  28. data/lib/{pepipost_gem → pepipost}/http/http_request.rb +5 -3
  29. data/lib/{pepipost_gem → pepipost}/http/http_response.rb +5 -3
  30. data/lib/pepipost/models/action_enum.rb +18 -0
  31. data/lib/pepipost/models/add_email_or_domain_to_suppression_list.rb +48 -0
  32. data/lib/pepipost/models/aggregated_by_enum.rb +20 -0
  33. data/lib/pepipost/models/attachments.rb +44 -0
  34. data/lib/{pepipost_gem → pepipost}/models/base_model.rb +5 -3
  35. data/lib/pepipost/models/content.rb +44 -0
  36. data/lib/pepipost/models/create_subaccount.rb +76 -0
  37. data/lib/pepipost/models/delete_domain.rb +35 -0
  38. data/lib/pepipost/models/delete_subacoount.rb +35 -0
  39. data/lib/pepipost/models/domain_struct.rb +45 -0
  40. data/lib/pepipost/models/email_struct.rb +44 -0
  41. data/lib/pepipost/models/enable_or_disable_subacoount.rb +44 -0
  42. data/lib/pepipost/models/events_enum.rb +44 -0
  43. data/lib/pepipost/models/from.rb +44 -0
  44. data/lib/pepipost/models/personalizations.rb +135 -0
  45. data/lib/pepipost/models/remove_email_or_domain_to_suppression_list.rb +48 -0
  46. data/lib/pepipost/models/send.rb +164 -0
  47. data/lib/pepipost/models/settings.rb +71 -0
  48. data/lib/pepipost/models/sort_enum.rb +17 -0
  49. data/lib/pepipost/models/timeperiod_enum.rb +20 -0
  50. data/lib/pepipost/models/type_enum.rb +17 -0
  51. data/lib/pepipost/models/update_credis_of_subaccount.rb +54 -0
  52. data/lib/pepipost/models/update_recurring_credis_of_subaccount.rb +80 -0
  53. data/lib/pepipost/models/update_subaccount.rb +72 -0
  54. data/lib/pepipost/pepipost_client.rb +99 -0
  55. metadata +98 -54
  56. data/lib/pepipost_gem.rb +0 -40
  57. data/lib/pepipost_gem/configuration.rb +0 -17
  58. data/lib/pepipost_gem/controllers/email_controller.rb +0 -59
  59. data/lib/pepipost_gem/models/attachments.rb +0 -42
  60. data/lib/pepipost_gem/models/attribute.rb +0 -42
  61. data/lib/pepipost_gem/models/email_body.rb +0 -119
  62. data/lib/pepipost_gem/models/email_body_attachments.rb +0 -42
  63. data/lib/pepipost_gem/models/from.rb +0 -42
  64. data/lib/pepipost_gem/models/personalizations.rb +0 -85
  65. data/lib/pepipost_gem/models/send_email_error.rb +0 -42
  66. data/lib/pepipost_gem/models/send_email_response.rb +0 -52
  67. data/lib/pepipost_gem/models/settings.rb +0 -69
  68. data/lib/pepipost_gem/pepipost_gem_client.rb +0 -19
@@ -0,0 +1,164 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Master modal
8
+ class Send < BaseModel
9
+ # email address which recipients can reply to.
10
+ # @return [String]
11
+ attr_accessor :reply_to
12
+
13
+ # Email address representing the sender of the mail
14
+ # @return [From]
15
+ attr_accessor :from
16
+
17
+ # Subject line of the email
18
+ # @return [String]
19
+ attr_accessor :subject
20
+
21
+ # ID of the template to be used for sending the mail
22
+ # @return [Long]
23
+ attr_accessor :template_id
24
+
25
+ # content in text/plain format
26
+ # @return [List of Content]
27
+ attr_accessor :content
28
+
29
+ # attachment information
30
+ # @return [List of Attachments]
31
+ attr_accessor :attachments
32
+
33
+ # to recipient with some personalized data like to address, attachments and
34
+ # attributes
35
+ # @return [List of Personalizations]
36
+ attr_accessor :personalizations
37
+
38
+ # to recipient with some personalized data like to address, attachments and
39
+ # attributes
40
+ # @return [Settings]
41
+ attr_accessor :settings
42
+
43
+ # define custom tags to organize your emails
44
+ # @return [List of String]
45
+ attr_accessor :tags
46
+
47
+ # define custom tags to organize your emails
48
+ # @return [Boolean]
49
+ attr_accessor :lint_payload
50
+
51
+ # schedule the time of email delivery
52
+ # @return [Long]
53
+ attr_accessor :schedule
54
+
55
+ # Global bcc can be defined here
56
+ # @return [List of EmailStruct]
57
+ attr_accessor :bcc
58
+
59
+ # A mapping from model property names to API property names.
60
+ def self.names
61
+ @_hash = {} if @_hash.nil?
62
+ @_hash['reply_to'] = 'reply_to'
63
+ @_hash['from'] = 'from'
64
+ @_hash['subject'] = 'subject'
65
+ @_hash['template_id'] = 'template_id'
66
+ @_hash['content'] = 'content'
67
+ @_hash['attachments'] = 'attachments'
68
+ @_hash['personalizations'] = 'personalizations'
69
+ @_hash['settings'] = 'settings'
70
+ @_hash['tags'] = 'tags'
71
+ @_hash['lint_payload'] = 'lint_payload'
72
+ @_hash['schedule'] = 'schedule'
73
+ @_hash['bcc'] = 'bcc'
74
+ @_hash
75
+ end
76
+
77
+ def initialize(from = nil,
78
+ subject = nil,
79
+ content = nil,
80
+ personalizations = nil,
81
+ reply_to = nil,
82
+ template_id = nil,
83
+ attachments = nil,
84
+ settings = nil,
85
+ tags = nil,
86
+ lint_payload = nil,
87
+ schedule = nil,
88
+ bcc = nil)
89
+ @reply_to = reply_to
90
+ @from = from
91
+ @subject = subject
92
+ @template_id = template_id
93
+ @content = content
94
+ @attachments = attachments
95
+ @personalizations = personalizations
96
+ @settings = settings
97
+ @tags = tags
98
+ @lint_payload = lint_payload
99
+ @schedule = schedule
100
+ @bcc = bcc
101
+ end
102
+
103
+ # Creates an instance of the object from a hash.
104
+ def self.from_hash(hash)
105
+ return nil unless hash
106
+
107
+ # Extract variables from the hash.
108
+ from = From.from_hash(hash['from']) if hash['from']
109
+ subject = hash['subject']
110
+ # Parameter is an array, so we need to iterate through it
111
+ content = nil
112
+ unless hash['content'].nil?
113
+ content = []
114
+ hash['content'].each do |structure|
115
+ content << (Content.from_hash(structure) if structure)
116
+ end
117
+ end
118
+ # Parameter is an array, so we need to iterate through it
119
+ personalizations = nil
120
+ unless hash['personalizations'].nil?
121
+ personalizations = []
122
+ hash['personalizations'].each do |structure|
123
+ personalizations << (Personalizations.from_hash(structure) if structure)
124
+ end
125
+ end
126
+ reply_to = hash['reply_to']
127
+ template_id = hash['template_id']
128
+ # Parameter is an array, so we need to iterate through it
129
+ attachments = nil
130
+ unless hash['attachments'].nil?
131
+ attachments = []
132
+ hash['attachments'].each do |structure|
133
+ attachments << (Attachments.from_hash(structure) if structure)
134
+ end
135
+ end
136
+ settings = Settings.from_hash(hash['settings']) if hash['settings']
137
+ tags = hash['tags']
138
+ lint_payload = hash['lint_payload']
139
+ schedule = hash['schedule']
140
+ # Parameter is an array, so we need to iterate through it
141
+ bcc = nil
142
+ unless hash['bcc'].nil?
143
+ bcc = []
144
+ hash['bcc'].each do |structure|
145
+ bcc << (EmailStruct.from_hash(structure) if structure)
146
+ end
147
+ end
148
+
149
+ # Create object from extracted values.
150
+ Send.new(from,
151
+ subject,
152
+ content,
153
+ personalizations,
154
+ reply_to,
155
+ template_id,
156
+ attachments,
157
+ settings,
158
+ tags,
159
+ lint_payload,
160
+ schedule,
161
+ bcc)
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,71 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Settings Model.
8
+ class Settings < BaseModel
9
+ # enable or disable footer
10
+ # @return [Boolean]
11
+ attr_accessor :footer
12
+
13
+ # enable or disable click tracking
14
+ # @return [Boolean]
15
+ attr_accessor :click_track
16
+
17
+ # enable or disable open tracking
18
+ # @return [Boolean]
19
+ attr_accessor :open_track
20
+
21
+ # enable or disable unsubscribe tracking
22
+ # @return [Boolean]
23
+ attr_accessor :unsubscribe_track
24
+
25
+ # enable or disable unsubscribe tracking
26
+ # @return [Boolean]
27
+ attr_accessor :hepf
28
+
29
+ # A mapping from model property names to API property names.
30
+ def self.names
31
+ @_hash = {} if @_hash.nil?
32
+ @_hash['footer'] = 'footer'
33
+ @_hash['click_track'] = 'click_track'
34
+ @_hash['open_track'] = 'open_track'
35
+ @_hash['unsubscribe_track'] = 'unsubscribe_track'
36
+ @_hash['hepf'] = 'hepf'
37
+ @_hash
38
+ end
39
+
40
+ def initialize(footer = nil,
41
+ click_track = nil,
42
+ open_track = nil,
43
+ unsubscribe_track = nil,
44
+ hepf = nil)
45
+ @footer = footer
46
+ @click_track = click_track
47
+ @open_track = open_track
48
+ @unsubscribe_track = unsubscribe_track
49
+ @hepf = hepf
50
+ end
51
+
52
+ # Creates an instance of the object from a hash.
53
+ def self.from_hash(hash)
54
+ return nil unless hash
55
+
56
+ # Extract variables from the hash.
57
+ footer = hash['footer']
58
+ click_track = hash['click_track']
59
+ open_track = hash['open_track']
60
+ unsubscribe_track = hash['unsubscribe_track']
61
+ hepf = hash['hepf']
62
+
63
+ # Create object from extracted values.
64
+ Settings.new(footer,
65
+ click_track,
66
+ open_track,
67
+ unsubscribe_track,
68
+ hepf)
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,17 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # sort.
8
+ class SortEnum
9
+ SORT_ENUM = [
10
+ # TODO: Write general description for ASC
11
+ ASC = 'asc'.freeze,
12
+
13
+ # TODO: Write general description for DESC
14
+ DESC = 'desc'.freeze
15
+ ].freeze
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # The periodic \n\nAllowed values \"daily\", \"weekly\", \"monhtly\"
8
+ class TimeperiodEnum
9
+ TIMEPERIOD_ENUM = [
10
+ # TODO: Write general description for DAILY
11
+ DAILY = 'daily'.freeze,
12
+
13
+ # TODO: Write general description for WEEKLY
14
+ WEEKLY = 'weekly'.freeze,
15
+
16
+ # TODO: Write general description for MONHTLY
17
+ MONHTLY = 'monhtly'.freeze
18
+ ].freeze
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Type.
8
+ class TypeEnum
9
+ TYPE_ENUM = [
10
+ # TODO: Write general description for AMP
11
+ AMP = 'amp'.freeze,
12
+
13
+ # TODO: Write general description for HTML
14
+ HTML = 'html'.freeze
15
+ ].freeze
16
+ end
17
+ end
@@ -0,0 +1,54 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # UpdateCreditaccount modal
8
+ class UpdateCredisOfSubaccount < BaseModel
9
+ # The username of the subaccount
10
+ # @return [String]
11
+ attr_accessor :username
12
+
13
+ # Indicate the action (add or subtract) to be taken.Allowed values increase,
14
+ # decrease
15
+ # @return [ActionEnum]
16
+ attr_accessor :action
17
+
18
+ # Amount of credits
19
+ # @return [Integer]
20
+ attr_accessor :amount
21
+
22
+ # A mapping from model property names to API property names.
23
+ def self.names
24
+ @_hash = {} if @_hash.nil?
25
+ @_hash['username'] = 'username'
26
+ @_hash['action'] = 'action'
27
+ @_hash['amount'] = 'amount'
28
+ @_hash
29
+ end
30
+
31
+ def initialize(username = nil,
32
+ action = nil,
33
+ amount = nil)
34
+ @username = username
35
+ @action = action
36
+ @amount = amount
37
+ end
38
+
39
+ # Creates an instance of the object from a hash.
40
+ def self.from_hash(hash)
41
+ return nil unless hash
42
+
43
+ # Extract variables from the hash.
44
+ username = hash['username']
45
+ action = hash['action']
46
+ amount = hash['amount']
47
+
48
+ # Create object from extracted values.
49
+ UpdateCredisOfSubaccount.new(username,
50
+ action,
51
+ amount)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,80 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Setrecurringcreditddetails modal
8
+ class UpdateRecurringCredisOfSubaccount < BaseModel
9
+ # The username of the subaccount
10
+ # @return [String]
11
+ attr_accessor :username
12
+
13
+ # The amount to be added periodically
14
+ # @return [Integer]
15
+ attr_accessor :recurring_credit
16
+
17
+ # The periodic \n\nAllowed values \"daily\", \"weekly\", \"monhtly\"
18
+ # @return [TimeperiodEnum]
19
+ attr_accessor :timeperiod
20
+
21
+ # The date from which the credit allocation will commence
22
+ # @return [String]
23
+ attr_accessor :start_date
24
+
25
+ # The last date of credit allocation
26
+ # @return [String]
27
+ attr_accessor :end_date
28
+
29
+ # Flag to enable or disable the recurring credit allocation
30
+ # @return [String]
31
+ attr_accessor :status
32
+
33
+ # A mapping from model property names to API property names.
34
+ def self.names
35
+ @_hash = {} if @_hash.nil?
36
+ @_hash['username'] = 'username'
37
+ @_hash['recurring_credit'] = 'recurring_credit'
38
+ @_hash['timeperiod'] = 'timeperiod'
39
+ @_hash['start_date'] = 'start_date'
40
+ @_hash['end_date'] = 'end_date'
41
+ @_hash['status'] = 'status'
42
+ @_hash
43
+ end
44
+
45
+ def initialize(username = nil,
46
+ recurring_credit = nil,
47
+ timeperiod = nil,
48
+ start_date = nil,
49
+ end_date = nil,
50
+ status = nil)
51
+ @username = username
52
+ @recurring_credit = recurring_credit
53
+ @timeperiod = timeperiod
54
+ @start_date = start_date
55
+ @end_date = end_date
56
+ @status = status
57
+ end
58
+
59
+ # Creates an instance of the object from a hash.
60
+ def self.from_hash(hash)
61
+ return nil unless hash
62
+
63
+ # Extract variables from the hash.
64
+ username = hash['username']
65
+ recurring_credit = hash['recurring_credit']
66
+ timeperiod = hash['timeperiod']
67
+ start_date = hash['start_date']
68
+ end_date = hash['end_date']
69
+ status = hash['status']
70
+
71
+ # Create object from extracted values.
72
+ UpdateRecurringCredisOfSubaccount.new(username,
73
+ recurring_credit,
74
+ timeperiod,
75
+ start_date,
76
+ end_date,
77
+ status)
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,72 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # UpdateSubaccount modal
8
+ class UpdateSubaccount < BaseModel
9
+ # The username for the subaccount
10
+ # @return [String]
11
+ attr_accessor :username
12
+
13
+ # The new email address to be registered with the subaccount
14
+ # @return [String]
15
+ attr_accessor :new_email
16
+
17
+ # The new password of the subaccount
18
+ # @return [String]
19
+ attr_accessor :new_password
20
+
21
+ # reconfirm the new password for the subaccount
22
+ # @return [String]
23
+ attr_accessor :confirm_password
24
+
25
+ # Allowed values one_time_credit or unlimited by default, all subaccounts
26
+ # are created with credit type as unlimited.
27
+ # @return [String]
28
+ attr_accessor :credit_type
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['username'] = 'username'
34
+ @_hash['new_email'] = 'new_email'
35
+ @_hash['new_password'] = 'new_password'
36
+ @_hash['confirm_password'] = 'confirm_password'
37
+ @_hash['credit_type'] = 'credit_type'
38
+ @_hash
39
+ end
40
+
41
+ def initialize(username = nil,
42
+ new_email = nil,
43
+ new_password = nil,
44
+ confirm_password = nil,
45
+ credit_type = nil)
46
+ @username = username
47
+ @new_email = new_email
48
+ @new_password = new_password
49
+ @confirm_password = confirm_password
50
+ @credit_type = credit_type
51
+ end
52
+
53
+ # Creates an instance of the object from a hash.
54
+ def self.from_hash(hash)
55
+ return nil unless hash
56
+
57
+ # Extract variables from the hash.
58
+ username = hash['username']
59
+ new_email = hash['new_email']
60
+ new_password = hash['new_password']
61
+ confirm_password = hash['confirm_password']
62
+ credit_type = hash['credit_type']
63
+
64
+ # Create object from extracted values.
65
+ UpdateSubaccount.new(username,
66
+ new_email,
67
+ new_password,
68
+ confirm_password,
69
+ credit_type)
70
+ end
71
+ end
72
+ end