nextmail 0.0.1

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 (79) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +183 -0
  3. data/lib/nextmail/api_paths.rb +447 -0
  4. data/lib/nextmail/client.rb +81 -0
  5. data/lib/nextmail/constants.rb +1621 -0
  6. data/lib/nextmail/credentials.rb +53 -0
  7. data/lib/nextmail/decode.rb +34 -0
  8. data/lib/nextmail/defaults.rb +114 -0
  9. data/lib/nextmail/endpoint.rb +144 -0
  10. data/lib/nextmail/errors.rb +121 -0
  11. data/lib/nextmail/http.rb +172 -0
  12. data/lib/nextmail/image_crop.rb +38 -0
  13. data/lib/nextmail/languages.rb +42 -0
  14. data/lib/nextmail/pagination.rb +63 -0
  15. data/lib/nextmail/protocol.rb +221 -0
  16. data/lib/nextmail/raw_body.rb +83 -0
  17. data/lib/nextmail/request_path.rb +50 -0
  18. data/lib/nextmail/resource.rb +109 -0
  19. data/lib/nextmail/resources/account.rb +155 -0
  20. data/lib/nextmail/resources/addresses.rb +38 -0
  21. data/lib/nextmail/resources/analytics.rb +19 -0
  22. data/lib/nextmail/resources/app_host.rb +23 -0
  23. data/lib/nextmail/resources/audiences.rb +95 -0
  24. data/lib/nextmail/resources/automations.rb +125 -0
  25. data/lib/nextmail/resources/billing.rb +76 -0
  26. data/lib/nextmail/resources/bookings.rb +100 -0
  27. data/lib/nextmail/resources/branding.rb +24 -0
  28. data/lib/nextmail/resources/broadcasts.rb +102 -0
  29. data/lib/nextmail/resources/calendar.rb +153 -0
  30. data/lib/nextmail/resources/chats.rb +62 -0
  31. data/lib/nextmail/resources/connected_mailboxes.rb +35 -0
  32. data/lib/nextmail/resources/connectors.rb +75 -0
  33. data/lib/nextmail/resources/contacts.rb +197 -0
  34. data/lib/nextmail/resources/dns_connections.rb +23 -0
  35. data/lib/nextmail/resources/domains.rb +264 -0
  36. data/lib/nextmail/resources/drafts.rb +36 -0
  37. data/lib/nextmail/resources/emails.rb +120 -0
  38. data/lib/nextmail/resources/encryption.rb +19 -0
  39. data/lib/nextmail/resources/events.rb +22 -0
  40. data/lib/nextmail/resources/exports.rb +27 -0
  41. data/lib/nextmail/resources/files.rb +82 -0
  42. data/lib/nextmail/resources/follow_ups.rb +21 -0
  43. data/lib/nextmail/resources/forms.rb +112 -0
  44. data/lib/nextmail/resources/imports.rb +106 -0
  45. data/lib/nextmail/resources/keys.rb +126 -0
  46. data/lib/nextmail/resources/knowledge.rb +137 -0
  47. data/lib/nextmail/resources/labels.rb +43 -0
  48. data/lib/nextmail/resources/languages.rb +11 -0
  49. data/lib/nextmail/resources/me.rb +57 -0
  50. data/lib/nextmail/resources/members.rb +100 -0
  51. data/lib/nextmail/resources/out_of_office.rb +28 -0
  52. data/lib/nextmail/resources/provider_imports.rb +48 -0
  53. data/lib/nextmail/resources/roles.rb +39 -0
  54. data/lib/nextmail/resources/rules.rb +73 -0
  55. data/lib/nextmail/resources/security.rb +39 -0
  56. data/lib/nextmail/resources/segments.rb +31 -0
  57. data/lib/nextmail/resources/senders.rb +19 -0
  58. data/lib/nextmail/resources/sending.rb +23 -0
  59. data/lib/nextmail/resources/settings.rb +16 -0
  60. data/lib/nextmail/resources/signatures.rb +41 -0
  61. data/lib/nextmail/resources/subscriptions.rb +55 -0
  62. data/lib/nextmail/resources/support.rb +11 -0
  63. data/lib/nextmail/resources/suppressions.rb +43 -0
  64. data/lib/nextmail/resources/tasks.rb +95 -0
  65. data/lib/nextmail/resources/temp_mail.rb +67 -0
  66. data/lib/nextmail/resources/templates.rb +153 -0
  67. data/lib/nextmail/resources/threads.rb +218 -0
  68. data/lib/nextmail/resources/tools.rb +35 -0
  69. data/lib/nextmail/resources/tracking.rb +72 -0
  70. data/lib/nextmail/resources/webhooks.rb +170 -0
  71. data/lib/nextmail/resources/workspaces.rb +40 -0
  72. data/lib/nextmail/results.rb +33 -0
  73. data/lib/nextmail/transport.rb +272 -0
  74. data/lib/nextmail/update_notice.rb +69 -0
  75. data/lib/nextmail/version.rb +5 -0
  76. data/lib/nextmail/webhook.rb +82 -0
  77. data/lib/nextmail/wire.rb +102 -0
  78. data/lib/nextmail.rb +126 -0
  79. metadata +122 -0
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nextmail
4
+ class Client
5
+ NAMESPACES = {
6
+ me: Resources::Me,
7
+ security: Resources::Security,
8
+ keys: Resources::Keys,
9
+ addresses: Resources::Addresses,
10
+ languages: Resources::Languages,
11
+ emails: Resources::Emails,
12
+ templates: Resources::Templates,
13
+ tracking: Resources::Tracking,
14
+ threads: Resources::Threads,
15
+ follow_ups: Resources::FollowUps,
16
+ drafts: Resources::Drafts,
17
+ labels: Resources::Labels,
18
+ contacts: Resources::Contacts,
19
+ audiences: Resources::Audiences,
20
+ billing: Resources::Billing,
21
+ forms: Resources::Forms,
22
+ automations: Resources::Automations,
23
+ events: Resources::Events,
24
+ broadcasts: Resources::Broadcasts,
25
+ domains: Resources::Domains,
26
+ app_host: Resources::AppHost,
27
+ branding: Resources::Branding,
28
+ rules: Resources::Rules,
29
+ webhooks: Resources::Webhooks,
30
+ imports: Resources::Imports,
31
+ provider_imports: Resources::ProviderImports,
32
+ calendar: Resources::Calendar,
33
+ settings: Resources::Settings,
34
+ out_of_office: Resources::OutOfOffice,
35
+ roles: Resources::Roles,
36
+ members: Resources::Members,
37
+ suppressions: Resources::Suppressions,
38
+ sending: Resources::Sending,
39
+ files: Resources::Files,
40
+ knowledge: Resources::Knowledge,
41
+ temp_mail: Resources::TempMail,
42
+ exports: Resources::Exports,
43
+ chats: Resources::Chats,
44
+ encryption: Resources::Encryption,
45
+ support: Resources::Support,
46
+ tools: Resources::Tools,
47
+ senders: Resources::Senders,
48
+ analytics: Resources::Analytics,
49
+ subscriptions: Resources::Subscriptions,
50
+ dns_connections: Resources::DnsConnections,
51
+ workspaces: Resources::Workspaces,
52
+ account: Resources::Account,
53
+ signatures: Resources::Signatures,
54
+ tasks: Resources::Tasks,
55
+ bookings: Resources::Bookings,
56
+ connectors: Resources::Connectors,
57
+ connected_mailboxes: Resources::ConnectedMailboxes,
58
+ segments: Resources::Segments
59
+ }.freeze
60
+
61
+ attr_reader :mode, :raw, *NAMESPACES.keys
62
+
63
+ def initialize(key = nil, api_key: nil, access_token: nil, base_url: nil, adapter: nil, max_retries: nil,
64
+ timeout: nil, user_agent: nil, headers: nil, disable_update_notice: false)
65
+ raise ArgumentError, Defaults::MESSAGES[:KEY_TWICE] unless key.nil? || api_key.nil?
66
+
67
+ api_key = key if api_key.nil?
68
+ Credentials.assert_credential(api_key, access_token, required: true)
69
+
70
+ @raw = Transport.new(api_key:, access_token:, base_url:, adapter:, max_retries:, timeout:, user_agent:, headers:,
71
+ disable_update_notice:)
72
+ @mode = Credentials.mode_of(api_key)
73
+ NAMESPACES.each { |name, resource| instance_variable_set(:"@#{name}", resource.new(@raw)) }
74
+ freeze
75
+ end
76
+
77
+ def inspect
78
+ "#<#{self.class.name} mode=#{@mode.inspect} base_url=#{@raw.base_url.inspect}>"
79
+ end
80
+ end
81
+ end