sendgrid-api 0.0.2 → 0.0.3

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 (76) hide show
  1. data/.gitignore +4 -2
  2. data/.yardopts +6 -0
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +5 -1
  5. data/README.md +200 -12
  6. data/Rakefile +3 -0
  7. data/lib/sendgrid/api/client.rb +16 -0
  8. data/lib/sendgrid/api/entities/category.rb +13 -0
  9. data/lib/sendgrid/api/entities/email.rb +13 -0
  10. data/lib/sendgrid/api/entities/entity.rb +2 -2
  11. data/lib/sendgrid/api/entities/list.rb +30 -0
  12. data/lib/sendgrid/api/entities/marketing_email.rb +20 -0
  13. data/lib/sendgrid/api/entities/response_insert.rb +23 -0
  14. data/lib/sendgrid/api/entities/response_remove.rb +23 -0
  15. data/lib/sendgrid/api/entities/schedule.rb +13 -0
  16. data/lib/sendgrid/api/entities/sender_address.rb +13 -0
  17. data/lib/sendgrid/api/newsletter/categories.rb +74 -0
  18. data/lib/sendgrid/api/newsletter/emails.rb +69 -0
  19. data/lib/sendgrid/api/newsletter/lists.rb +64 -0
  20. data/lib/sendgrid/api/newsletter/marketing_emails.rb +72 -0
  21. data/lib/sendgrid/api/newsletter/recipients.rb +55 -0
  22. data/lib/sendgrid/api/newsletter/schedule.rb +70 -0
  23. data/lib/sendgrid/api/newsletter/sender_addresses.rb +80 -0
  24. data/lib/sendgrid/api/newsletter/utils.rb +34 -0
  25. data/lib/sendgrid/api/rest/errors/error.rb +9 -3
  26. data/lib/sendgrid/api/rest/resource.rb +3 -1
  27. data/lib/sendgrid/api/version.rb +1 -1
  28. data/lib/sendgrid/api/web/mail.rb +44 -0
  29. data/lib/sendgrid/api/web/profile.rb +3 -3
  30. data/lib/sendgrid/api/web/stats.rb +3 -3
  31. data/spec/fixtures/categories.json +11 -0
  32. data/spec/fixtures/emails/email.json +6 -0
  33. data/spec/fixtures/emails/emails.json +10 -0
  34. data/spec/fixtures/errors/already_exists.json +3 -0
  35. data/spec/fixtures/errors/bad_request.json +6 -0
  36. data/spec/fixtures/errors/database_error.json +3 -0
  37. data/spec/fixtures/errors/does_not_exist.json +3 -0
  38. data/spec/fixtures/{forbidden.json → errors/forbidden.json} +0 -0
  39. data/spec/fixtures/errors/invalid_fields.json +3 -0
  40. data/spec/fixtures/errors/not_scheduled.json +3 -0
  41. data/spec/fixtures/errors/unauthorized.json +6 -0
  42. data/spec/fixtures/lists/list.json +5 -0
  43. data/spec/fixtures/lists/lists.json +11 -0
  44. data/spec/fixtures/marketing_emails/marketing_email.json +19 -0
  45. data/spec/fixtures/marketing_emails/marketing_emails.json +10 -0
  46. data/spec/fixtures/recipients.json +8 -0
  47. data/spec/fixtures/schedule.json +3 -0
  48. data/spec/fixtures/sender_addresses/sender_address.json +11 -0
  49. data/spec/fixtures/sender_addresses/sender_addresses.json +11 -0
  50. data/spec/sendgrid/api/client_spec.rb +16 -0
  51. data/spec/sendgrid/api/entities/category_spec.rb +14 -0
  52. data/spec/sendgrid/api/entities/email_spec.rb +15 -0
  53. data/spec/sendgrid/api/entities/list_spec.rb +34 -0
  54. data/spec/sendgrid/api/entities/marketing_email_spec.rb +31 -0
  55. data/spec/sendgrid/api/entities/response_insert_spec.rb +28 -0
  56. data/spec/sendgrid/api/entities/response_remove_spec.rb +28 -0
  57. data/spec/sendgrid/api/entities/schedule_spec.rb +14 -0
  58. data/spec/sendgrid/api/entities/sender_address_spec.rb +21 -0
  59. data/spec/sendgrid/api/newsletter/categories_spec.rb +247 -0
  60. data/spec/sendgrid/api/newsletter/emails_spec.rb +265 -0
  61. data/spec/sendgrid/api/newsletter/lists_spec.rb +307 -0
  62. data/spec/sendgrid/api/newsletter/marketing_emails_spec.rb +306 -0
  63. data/spec/sendgrid/api/newsletter/recipients_spec.rb +252 -0
  64. data/spec/sendgrid/api/newsletter/schedule_spec.rb +263 -0
  65. data/spec/sendgrid/api/newsletter/sender_addresses_spec.rb +300 -0
  66. data/spec/sendgrid/api/rest/errors/error_spec.rb +40 -16
  67. data/spec/sendgrid/api/rest/resource_spec.rb +2 -0
  68. data/spec/sendgrid/api/web/mail_spec.rb +111 -0
  69. data/spec/sendgrid/api/web/profile_spec.rb +13 -29
  70. data/spec/sendgrid/api/web/stats_spec.rb +9 -15
  71. data/spec/support/helpers.rb +8 -0
  72. data/spec/support/mock.rb +6 -2
  73. data/spec/support/online.rb +114 -0
  74. data/spec/support/shared_examples.rb +93 -0
  75. metadata +96 -10
  76. data/spec/fixtures/unauthorized.json +0 -6
@@ -0,0 +1,23 @@
1
+ require 'sendgrid/api/entities/entity'
2
+
3
+ module Sendgrid
4
+ module API
5
+ module Entities
6
+ class ResponseInsert < Entity
7
+
8
+ attribute :inserted
9
+
10
+ # Return true if one or more inserts were made
11
+ def any?
12
+ inserted > 0
13
+ end
14
+
15
+ # Return true if no inserts were made
16
+ def none?
17
+ !any?
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ require 'sendgrid/api/entities/entity'
2
+
3
+ module Sendgrid
4
+ module API
5
+ module Entities
6
+ class ResponseRemove < Entity
7
+
8
+ attribute :removed
9
+
10
+ # Return true if one or more removals were made
11
+ def any?
12
+ removed > 0
13
+ end
14
+
15
+ # Return true if no removals were made
16
+ def none?
17
+ !any?
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ require 'sendgrid/api/entities/entity'
2
+
3
+ module Sendgrid
4
+ module API
5
+ module Entities
6
+ class Schedule < Entity
7
+
8
+ attribute :date
9
+
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require 'sendgrid/api/entities/entity'
2
+
3
+ module Sendgrid
4
+ module API
5
+ module Entities
6
+ class SenderAddress < Entity
7
+
8
+ attribute :identity, :name, :email, :replyto, :address, :city, :state, :zip, :country
9
+
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,74 @@
1
+ require 'sendgrid/api/service'
2
+ require 'sendgrid/api/entities/category'
3
+ require 'sendgrid/api/entities/response'
4
+ require 'sendgrid/api/newsletter/utils'
5
+
6
+ module Sendgrid
7
+ module API
8
+ module Newsletter
9
+ module Categories
10
+
11
+ def categories
12
+ Services.new(resource)
13
+ end
14
+
15
+ class Services < Sendgrid::API::Service
16
+ include Newsletter::Utils
17
+
18
+ # Create a new Category.
19
+ #
20
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/categories.html#-create
21
+ # @param category [String, Entities::Category] A category name or Entities::Category object.
22
+ # @return [Entities::Response] An Entities::Response object.
23
+ def create(category)
24
+ params = { :category => extract_category(category) }
25
+ perform_request(Entities::Response, 'newsletter/category/create.json', params)
26
+ end
27
+
28
+ # Assign a Category to an existing Marketing Email.
29
+ #
30
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/categories.html#-add
31
+ # @param marketing_email [String, Entities::MarketingEmail] An existing marketing email name or Entities::MarketingEmail object.
32
+ # @param category [String, Entities::Category] A category name or Entities::Category object.
33
+ # @return [Entities::Response] An Entities::Response object.
34
+ def add(marketing_email, category)
35
+ params = { :name => extract_marketing_email(marketing_email), :category => extract_category(category) }
36
+ perform_request(Entities::Response, 'newsletter/category/add.json', params)
37
+ end
38
+
39
+ # Remove specific categories, or all categories from a Marketing Email.
40
+ #
41
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/categories.html#-remove
42
+ # @param marketing_email [String, Entities::MarketingEmail] An existing marketing email name or Entities::MarketingEmail object.
43
+ # @param category [String, Entities::Category] A category name or Entities::Category object.
44
+ # @return [Entities::Response] An Entities::Response object.
45
+ def remove(marketing_email, category)
46
+ params = { :name => extract_marketing_email(marketing_email), :category => extract_category(category) }
47
+ perform_request(Entities::Response, 'newsletter/category/remove.json', params)
48
+ end
49
+
50
+ # List all categories.
51
+ #
52
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/categories.html#-list
53
+ # @return [Array<Entities::Category>] An array of Entities::Category objects.
54
+ def list
55
+ perform_request(Entities::Category, 'newsletter/category/list.json')
56
+ end
57
+
58
+ private
59
+
60
+ def extract_category(category)
61
+ case category
62
+ when ::String
63
+ category
64
+ when Entities::Category
65
+ category.category
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,69 @@
1
+ require 'sendgrid/api/service'
2
+ require 'sendgrid/api/entities/email'
3
+ require 'sendgrid/api/entities/response_insert'
4
+ require 'sendgrid/api/entities/response_remove'
5
+ require 'sendgrid/api/newsletter/utils'
6
+
7
+ module Sendgrid
8
+ module API
9
+ module Newsletter
10
+ module Emails
11
+
12
+ def emails
13
+ Services.new(resource)
14
+ end
15
+
16
+ class Services < Sendgrid::API::Service
17
+ include Newsletter::Utils
18
+
19
+ # Add one or more emails to a Recipient List.
20
+ #
21
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html#-add
22
+ # @param list [String, Entities::List] A list name or Entities::List object.
23
+ # @param emails [Array<Entities::Email>] A list of emails to be added. Limited to a 1000 entries maximum.
24
+ # @return [Entities::ResponseInsert] An Entities::ResponseInsert object.
25
+ def add(list, emails)
26
+ params = { :list => extract_listname(list), :data => map_emails(emails, :to_json) }
27
+ perform_request(Entities::ResponseInsert, 'newsletter/lists/email/add.json', params)
28
+ end
29
+
30
+ # Get the email addresses and associated fields for a Recipient List.
31
+ #
32
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html#-get
33
+ # @param list [String, Entities::List] A list name or Entities::List object.
34
+ # @param emails [Entities::Email, Array<Entities::Email>] An email or list of emails to be searched and retrieved. Optional.
35
+ # @return [Array<Entities::Email>] An array of Entities::Email object.
36
+ def get(list, emails = nil)
37
+ params = { :list => extract_listname(list) }
38
+ params[:email] = map_emails(emails, :email) if emails
39
+ perform_request(Entities::Email, 'newsletter/lists/email/get.json', params)
40
+ end
41
+
42
+ # Remove one or more emails from a Recipient List.
43
+ #
44
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html#-delete
45
+ # @param list [String, Entities::List] A list name or Entities::List object.
46
+ # @param emails [Entities::Email, Array<Entities::Email>] An email or list of emails to be removed.
47
+ # @return [Entities::ResponseRemove] An Entities::ResponseRemove object.
48
+ def delete(list, emails)
49
+ params = { :list => extract_listname(list), :email => map_emails(emails, :email) }
50
+ perform_request(Entities::ResponseRemove, 'newsletter/lists/email/delete.json', params)
51
+ end
52
+
53
+ private
54
+
55
+ # Return a mapping from an email method name.
56
+ #
57
+ # @param emails [Entities::Email, Array<Entities::Email>] An email or list of emails.
58
+ # @param to [Symbol] The email method name to be mapped.
59
+ # @return [Array] An array of the mapping.
60
+ def map_emails(emails, to)
61
+ emails = [emails] unless emails.is_a?(Array)
62
+ emails.map(&to)
63
+ end
64
+
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,64 @@
1
+ require 'sendgrid/api/service'
2
+ require 'sendgrid/api/entities/list'
3
+ require 'sendgrid/api/entities/response'
4
+ require 'sendgrid/api/newsletter/utils'
5
+
6
+ module Sendgrid
7
+ module API
8
+ module Newsletter
9
+ module Lists
10
+
11
+ def lists
12
+ Services.new(resource)
13
+ end
14
+
15
+ class Services < Sendgrid::API::Service
16
+ include Newsletter::Utils
17
+
18
+ # Create a new Recipient List.
19
+ #
20
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/lists.html#-add
21
+ # @param list [String, Entities::List] A new list name or Entities::List object.
22
+ # @return [Entities::Response] An Entities::Response object.
23
+ def add(list)
24
+ params = { :list => extract_listname(list) }
25
+ perform_request(Entities::Response, 'newsletter/lists/add.json', params)
26
+ end
27
+
28
+ # Rename a Recipient List.
29
+ #
30
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/lists.html#-edit
31
+ # @param list [String, Entities::List] An existing list name or Entities::List object.
32
+ # @param newlist [String, Entities::List] A new list name or Entities::List object.
33
+ # @return [Entities::Response] An Entities::Response object.
34
+ def edit(list, newlist)
35
+ params = { :list => extract_listname(list), :newlist => extract_listname(newlist) }
36
+ perform_request(Entities::Response, 'newsletter/lists/edit.json', params)
37
+ end
38
+
39
+ # List all Recipient Lists on your account, or check if a particular List exists.
40
+ #
41
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/lists.html#-get
42
+ # @param list [String, Entities::List] An existing list name or Entities::List object. Optional.
43
+ # @return [Array<Entities::List>] An array of Entities::List objects.
44
+ def get(list = nil)
45
+ params = { :list => extract_listname(list) } if list
46
+ perform_request(Entities::List, 'newsletter/lists/get.json', params || {})
47
+ end
48
+
49
+ # Remove a Recipient List from your account.
50
+ #
51
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/lists.html#-delete
52
+ # @param list [String, Entities::List] An existing list name or Entities::List object.
53
+ # @return [Entities::Response] An Entities::Response object.
54
+ def delete(list)
55
+ params = { :list => extract_listname(list) }
56
+ perform_request(Entities::Response, 'newsletter/lists/delete.json', params)
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,72 @@
1
+ require 'sendgrid/api/service'
2
+ require 'sendgrid/api/entities/marketing_email'
3
+ require 'sendgrid/api/entities/response'
4
+ require 'sendgrid/api/newsletter/utils'
5
+
6
+ module Sendgrid
7
+ module API
8
+ module Newsletter
9
+ module MarketingEmails
10
+
11
+ def marketing_emails
12
+ Services.new(resource)
13
+ end
14
+
15
+ class Services < Sendgrid::API::Service
16
+ include Newsletter::Utils
17
+
18
+ # Create a new Marketing Email.
19
+ #
20
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/newsletters.html#-add
21
+ # @param marketing_email [Entities::MarketingEmail] An Entities::MarketingEmail object.
22
+ # @return [Entities::Response] An Entities::Response object.
23
+ def add(marketing_email)
24
+ perform_request(Entities::Response, 'newsletter/add.json', marketing_email.as_json)
25
+ end
26
+
27
+ # Edit an existing Marketing Email.
28
+ #
29
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/newsletters.html#-edit
30
+ # @param marketing_email [Entities::MarketingEmail] An Entities::MarketingEmail object.
31
+ # @param newname [String] The new name for the Marketing Email being edited. Optional.
32
+ # @return [Entities::Response] An Entities::Response object.
33
+ def edit(marketing_email, newname = nil)
34
+ params = marketing_email.as_json
35
+ params.merge!(:newname => newname) if newname
36
+ perform_request(Entities::Response, 'newsletter/edit.json', params)
37
+ end
38
+
39
+ # Retrieve the contents of an existing Marketing Email.
40
+ #
41
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/newsletters.html#-get
42
+ # @param marketing_email [String, Entities::MarketingEmail] An existing marketing email name or Entities::MarketingEmail object.
43
+ # @return [Entities::MarketingEmail] An Entities::MarketingEmail object.
44
+ def get(marketing_email)
45
+ params = { :name => extract_marketing_email(marketing_email) }
46
+ perform_request(Entities::MarketingEmail, 'newsletter/get.json', params)
47
+ end
48
+
49
+ # Retrieve a list of all existing Marketing Email.
50
+ #
51
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/newsletters.html#-list
52
+ # @return [Array<Entities::MarketingEmail>] An array of Entities::MarketingEmail objects.
53
+ def list
54
+ perform_request(Entities::MarketingEmail, 'newsletter/list.json')
55
+ end
56
+
57
+ # Remove an existing Marketing Email.
58
+ #
59
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/newsletters.html#-delete
60
+ # @param marketing_email [String, Entities::MarketingEmail] An existing marketing email name or Entities::MarketingEmail object.
61
+ # @return [Entities::Response] An Entities::Response object.
62
+ def delete(marketing_email)
63
+ params = { :name => extract_marketing_email(marketing_email) }
64
+ perform_request(Entities::Response, 'newsletter/delete.json', params)
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,55 @@
1
+ require 'sendgrid/api/service'
2
+ require 'sendgrid/api/entities/list'
3
+ require 'sendgrid/api/entities/response'
4
+ require 'sendgrid/api/newsletter/utils'
5
+
6
+ module Sendgrid
7
+ module API
8
+ module Newsletter
9
+ module Recipients
10
+
11
+ def recipients
12
+ Services.new(resource)
13
+ end
14
+
15
+ class Services < Sendgrid::API::Service
16
+ include Newsletter::Utils
17
+
18
+ # Assign a List to a Marketing Email.
19
+ #
20
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/recipients.html#-add
21
+ # @param list [String, Entities::List] A list name or Entities::List object.
22
+ # @param marketing_email [String, Entities::MarketingEmail] A marketing email name or Entities::MarketingEmail object.
23
+ # @return [Entities::Response] An Entities::Response object.
24
+ def add(list, marketing_email)
25
+ params = { :list => extract_listname(list), :name => extract_marketing_email(marketing_email) }
26
+ perform_request(Entities::Response, 'newsletter/recipients/add.json', params)
27
+ end
28
+
29
+ # Get all lists assigned to a particular Marketing Email.
30
+ #
31
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/recipients.html#-get
32
+ # @param marketing_email [String, Entities::MarketingEmail] A marketing email name or Entities::MarketingEmail object.
33
+ # @return [Array<Entities::List>] An array of Entities::List objects.
34
+ def get(marketing_email)
35
+ params = { :name => extract_marketing_email(marketing_email) }
36
+ perform_request(Entities::List, 'newsletter/recipients/get.json', params)
37
+ end
38
+
39
+ # Remove assigned lists from Marketing Email.
40
+ #
41
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/recipients.html#-delete
42
+ # @param list [String, Entities::List] A list name or Entities::List object.
43
+ # @param marketing_email [String, Entities::MarketingEmail] A marketing email name or Entities::MarketingEmail object.
44
+ # @return [Entities::Response] An Entities::Response object.
45
+ def delete(list, marketing_email)
46
+ params = { :list => extract_listname(list), :name => extract_marketing_email(marketing_email) }
47
+ perform_request(Entities::Response, 'newsletter/recipients/delete.json', params)
48
+ end
49
+
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,70 @@
1
+ require 'sendgrid/api/service'
2
+ require 'sendgrid/api/entities/schedule'
3
+ require 'sendgrid/api/entities/response'
4
+ require 'sendgrid/api/newsletter/utils'
5
+
6
+ module Sendgrid
7
+ module API
8
+ module Newsletter
9
+ module Schedule
10
+
11
+ def schedule
12
+ Services.new(resource)
13
+ end
14
+
15
+ class Services < Sendgrid::API::Service
16
+ include Newsletter::Utils
17
+
18
+ # Schedule a delivery time for an existing Marketing Email.
19
+ #
20
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/schedule.html#-add
21
+ # @param marketing_email [String, Entities::MarketingEmail] A marketing email name or Entities::MarketingEmail object.
22
+ # @param options [Hash] A customizable set of options.
23
+ # @option options [String] :at Date/Time to schedule marketing email Delivery. Date/Time must be provided in ISO 8601 format (YYYY-MM-DD HH:MM:SS+-HH:MM)
24
+ # @option options [Fixnum] :after Number of minutes until delivery should occur. Must be a positive integer.
25
+ # @return [Entities::Response] An Entities::Response object.
26
+ def add(marketing_email, options = {})
27
+ options.keep_if {|key, value| [:at, :after].include?(key) }
28
+ options[:at] = format_time(options[:at]) if options.member?(:at)
29
+ params = { :name => extract_marketing_email(marketing_email) }
30
+ params.merge!(options) if options.any?
31
+ perform_request(Entities::Response, 'newsletter/schedule/add.json', params)
32
+ end
33
+
34
+ # Retrieve the scheduled delivery time for an existing Marketing Email.
35
+ #
36
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/schedule.html#-get
37
+ # @param marketing_email [String, Entities::MarketingEmail] A marketing email name or Entities::MarketingEmail object.
38
+ # @return [Entities::Schedule] An Entities::Schedule objects.
39
+ def get(marketing_email)
40
+ params = { :name => extract_marketing_email(marketing_email) }
41
+ perform_request(Entities::Schedule, 'newsletter/schedule/get.json', params)
42
+ end
43
+
44
+ # Cancel a scheduled send for a Marketing Email.
45
+ #
46
+ # @see http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/schedule.html#-delete
47
+ # @param marketing_email [String, Entities::MarketingEmail] A marketing email name or Entities::MarketingEmail object.
48
+ # @return [Entities::Response] An Entities::Response object.
49
+ def delete(marketing_email)
50
+ params = { :name => extract_marketing_email(marketing_email) }
51
+ perform_request(Entities::Response, 'newsletter/schedule/delete.json', params)
52
+ end
53
+
54
+ private
55
+
56
+ def format_time(at)
57
+ case at
58
+ when ::String
59
+ at
60
+ when ::Time
61
+ at.strftime('%Y-%m-%d %H:%M:%S%:z')
62
+ end
63
+ end
64
+
65
+ end
66
+
67
+ end
68
+ end
69
+ end
70
+ end