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
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # Class for exceptions when there is a network error, status code error, etc.
6
8
  class APIException < StandardError
7
9
  attr_reader :context, :response_code
@@ -0,0 +1,16 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Utility class for custom header authorization.
8
+ class CustomHeaderAuth
9
+ # Add custom authentication to the request.
10
+ # @param [HttpRequest] The HttpRequest object to which authentication will
11
+ # be added.
12
+ def self.apply(http_request)
13
+ http_request.add_header('api_key', Configuration.api_key)
14
+ end
15
+ end
16
+ end
@@ -1,8 +1,12 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
3
6
  require 'faraday/http_cache'
7
+ require 'faraday_middleware'
4
8
 
5
- module PepipostGem
9
+ module Pepipost
6
10
  # An implementation of HttpClient.
7
11
  class FaradayClient < HttpClient
8
12
  # The constructor.
@@ -10,16 +14,17 @@ module PepipostGem
10
14
  max_retries: nil, retry_interval: nil)
11
15
  @connection = Faraday.new do |faraday|
12
16
  faraday.use Faraday::HttpCache, serializer: Marshal if cache
17
+ faraday.use FaradayMiddleware::FollowRedirects
13
18
  faraday.request :multipart
14
19
  faraday.request :url_encoded
15
20
  faraday.ssl[:ca_file] = Certifi.where
16
- faraday.adapter Faraday.default_adapter
17
- faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
18
- faraday.options[:open_timeout] = timeout if timeout
19
21
  faraday.request :retry, max: max_retries, interval: if max_retries &&
20
22
  retry_interval
21
23
  retry_interval
22
24
  end
25
+ faraday.adapter Faraday.default_adapter
26
+ faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
27
+ faraday.options[:open_timeout] = timeout if timeout
23
28
  end
24
29
  end
25
30
 
@@ -30,7 +35,9 @@ module PepipostGem
30
35
  http_request.query_url
31
36
  ) do |request|
32
37
  request.headers = http_request.headers
33
- request.body = http_request.parameters
38
+ unless http_request.parameters.empty?
39
+ request.body = http_request.parameters
40
+ end
34
41
  end
35
42
  convert_response(response)
36
43
  end
@@ -42,7 +49,9 @@ module PepipostGem
42
49
  http_request.query_url
43
50
  ) do |request|
44
51
  request.headers = http_request.headers
45
- request.body = http_request.parameters
52
+ unless http_request.parameters.empty?
53
+ request.body = http_request.parameters
54
+ end
46
55
  end
47
56
  convert_response(response)
48
57
  end
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # HttpCallBack allows defining callables for pre and post API calls.
6
8
  class HttpCallBack
7
9
  # A controller will call this method before making an HTTP Request.
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # An interface for the methods that an HTTP Client must implement.
6
8
  #
7
9
  # This class should not be instantiated but should be used as a base class
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # Represents an Http call in context.
6
8
  class HttpContext
7
9
  attr_accessor :request, :response
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # HTTP Methods Enumeration.
6
8
  class HttpMethodEnum
7
9
  HTTPMETHODENUM = [GET = 'GET'.freeze, POST = 'POST'.freeze,
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # Represents a single Http Request.
6
8
  class HttpRequest
7
9
  attr_accessor :http_method, :query_url, :headers,
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # Http response received.
6
8
  class HttpResponse
7
9
  attr_accessor :status_code, :headers, :raw_body
@@ -0,0 +1,18 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Indicate the action (add or subtract) to be taken.Allowed values increase,
8
+ # decrease
9
+ class ActionEnum
10
+ ACTION_ENUM = [
11
+ # TODO: Write general description for INCREASE
12
+ INCREASE = 'increase'.freeze,
13
+
14
+ # TODO: Write general description for DECREASE
15
+ DECREASE = 'decrease'.freeze
16
+ ].freeze
17
+ end
18
+ end
@@ -0,0 +1,48 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Add Suppression modal
8
+ class AddEmailOrDomainToSuppressionList < BaseModel
9
+ # Add the domain to be suppressed here. We will not deliver emails to
10
+ # recipients email addresses with this domain.<br>\nComma separate the
11
+ # values to suppress multiple domains..
12
+ # @return [String]
13
+ attr_accessor :domain
14
+
15
+ # Add an email address to be suppressed here. We will not deliver emails to
16
+ # this email address.<br>\nComma separate the values to suppress multiple
17
+ # email addresses
18
+ # @return [String]
19
+ attr_accessor :email
20
+
21
+ # A mapping from model property names to API property names.
22
+ def self.names
23
+ @_hash = {} if @_hash.nil?
24
+ @_hash['domain'] = 'domain'
25
+ @_hash['email'] = 'email'
26
+ @_hash
27
+ end
28
+
29
+ def initialize(domain = nil,
30
+ email = nil)
31
+ @domain = domain
32
+ @email = email
33
+ end
34
+
35
+ # Creates an instance of the object from a hash.
36
+ def self.from_hash(hash)
37
+ return nil unless hash
38
+
39
+ # Extract variables from the hash.
40
+ domain = hash['domain']
41
+ email = hash['email']
42
+
43
+ # Create object from extracted values.
44
+ AddEmailOrDomainToSuppressionList.new(domain,
45
+ email)
46
+ end
47
+ end
48
+ 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
+ # aggregated_by.
8
+ class AggregatedByEnum
9
+ AGGREGATED_BY_ENUM = [
10
+ # TODO: Write general description for DAY
11
+ DAY = 'day'.freeze,
12
+
13
+ # TODO: Write general description for WEEK
14
+ WEEK = 'week'.freeze,
15
+
16
+ # TODO: Write general description for MONTH
17
+ MONTH = 'month'.freeze
18
+ ].freeze
19
+ end
20
+ end
@@ -0,0 +1,44 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # Attachments
8
+ class Attachments < BaseModel
9
+ # Base64 encoded value of the attached file
10
+ # @return [String]
11
+ attr_accessor :content
12
+
13
+ # filename of attachments
14
+ # @return [String]
15
+ attr_accessor :name
16
+
17
+ # A mapping from model property names to API property names.
18
+ def self.names
19
+ @_hash = {} if @_hash.nil?
20
+ @_hash['content'] = 'content'
21
+ @_hash['name'] = 'name'
22
+ @_hash
23
+ end
24
+
25
+ def initialize(content = nil,
26
+ name = nil)
27
+ @content = content
28
+ @name = name
29
+ end
30
+
31
+ # Creates an instance of the object from a hash.
32
+ def self.from_hash(hash)
33
+ return nil unless hash
34
+
35
+ # Extract variables from the hash.
36
+ content = hash['content']
37
+ name = hash['name']
38
+
39
+ # Create object from extracted values.
40
+ Attachments.new(content,
41
+ name)
42
+ end
43
+ end
44
+ end
@@ -1,7 +1,9 @@
1
- # This file was automatically generated by APIMATIC v2.0
2
- # ( https://apimatic.io ).
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
3
5
 
4
- module PepipostGem
6
+ module Pepipost
5
7
  # Base model.
6
8
  class BaseModel
7
9
  # Returns a Hash representation of the current object.
@@ -0,0 +1,44 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # AMP, HTML should be provided
8
+ class Content < BaseModel
9
+ # TODO: Write general description for this method
10
+ # @return [TypeEnum]
11
+ attr_accessor :type
12
+
13
+ # HTML content to be sent in your email
14
+ # @return [String]
15
+ attr_accessor :value
16
+
17
+ # A mapping from model property names to API property names.
18
+ def self.names
19
+ @_hash = {} if @_hash.nil?
20
+ @_hash['type'] = 'type'
21
+ @_hash['value'] = 'value'
22
+ @_hash
23
+ end
24
+
25
+ def initialize(type = nil,
26
+ value = nil)
27
+ @type = type
28
+ @value = value
29
+ end
30
+
31
+ # Creates an instance of the object from a hash.
32
+ def self.from_hash(hash)
33
+ return nil unless hash
34
+
35
+ # Extract variables from the hash.
36
+ type = hash['type']
37
+ value = hash['value']
38
+
39
+ # Create object from extracted values.
40
+ Content.new(type,
41
+ value)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,76 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # CreateSubaccount modal
8
+ class CreateSubaccount < BaseModel
9
+ # provide a username for the subaccount
10
+ # @return [String]
11
+ attr_accessor :username
12
+
13
+ # email address to be registered with the account.
14
+ # @return [String]
15
+ attr_accessor :email
16
+
17
+ # You can opt to set the password for the subaccount.\nIf set as 1, please
18
+ # provide a value in password parameter.\nIf set as 0, the email
19
+ # confirmation link will act as a password reset link.
20
+ # @return [String]
21
+ attr_accessor :setpassword
22
+
23
+ # It is required to pass this value, if setpassword is set as 1.\nThe
24
+ # password must comprise minimum of 8 characters and include one uppercase
25
+ # character, one lowercase character, one numeric character.
26
+ # @return [String]
27
+ attr_accessor :password
28
+
29
+ # Allowed values one_time_credit or unlimited by default, all subaccounts
30
+ # are created with credit type as unlimited.
31
+ # @return [String]
32
+ attr_accessor :credit_type
33
+
34
+ # A mapping from model property names to API property names.
35
+ def self.names
36
+ @_hash = {} if @_hash.nil?
37
+ @_hash['username'] = 'username'
38
+ @_hash['email'] = 'email'
39
+ @_hash['setpassword'] = 'setpassword'
40
+ @_hash['password'] = 'password'
41
+ @_hash['credit_type'] = 'credit_type'
42
+ @_hash
43
+ end
44
+
45
+ def initialize(username = nil,
46
+ email = nil,
47
+ setpassword = nil,
48
+ password = nil,
49
+ credit_type = nil)
50
+ @username = username
51
+ @email = email
52
+ @setpassword = setpassword
53
+ @password = password
54
+ @credit_type = credit_type
55
+ end
56
+
57
+ # Creates an instance of the object from a hash.
58
+ def self.from_hash(hash)
59
+ return nil unless hash
60
+
61
+ # Extract variables from the hash.
62
+ username = hash['username']
63
+ email = hash['email']
64
+ setpassword = hash['setpassword']
65
+ password = hash['password']
66
+ credit_type = hash['credit_type']
67
+
68
+ # Create object from extracted values.
69
+ CreateSubaccount.new(username,
70
+ email,
71
+ setpassword,
72
+ password,
73
+ credit_type)
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,35 @@
1
+ # pepipost
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module Pepipost
7
+ # delete domain modal
8
+ class DeleteDomain < BaseModel
9
+ # Name of the domain
10
+ # @return [String]
11
+ attr_accessor :domain
12
+
13
+ # A mapping from model property names to API property names.
14
+ def self.names
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['domain'] = 'domain'
17
+ @_hash
18
+ end
19
+
20
+ def initialize(domain = nil)
21
+ @domain = domain
22
+ end
23
+
24
+ # Creates an instance of the object from a hash.
25
+ def self.from_hash(hash)
26
+ return nil unless hash
27
+
28
+ # Extract variables from the hash.
29
+ domain = hash['domain']
30
+
31
+ # Create object from extracted values.
32
+ DeleteDomain.new(domain)
33
+ end
34
+ end
35
+ end