nylas 5.17.0 → 6.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.
- checksums.yaml +4 -4
- data/lib/nylas/client.rb +121 -0
- data/lib/nylas/config.rb +19 -0
- data/lib/nylas/errors.rb +63 -89
- data/lib/nylas/handler/api_operations.rb +162 -0
- data/lib/nylas/handler/http_client.rb +252 -0
- data/lib/nylas/resources/applications.rb +27 -0
- data/lib/nylas/resources/attachments.rb +65 -0
- data/lib/nylas/resources/auth.rb +209 -0
- data/lib/nylas/resources/calendars.rb +101 -0
- data/lib/nylas/resources/connectors.rb +80 -0
- data/lib/nylas/resources/contacts.rb +89 -0
- data/lib/nylas/resources/credentials.rb +75 -0
- data/lib/nylas/resources/drafts.rb +121 -0
- data/lib/nylas/resources/events.rb +98 -0
- data/lib/nylas/resources/folders.rb +73 -0
- data/lib/nylas/resources/grants.rb +59 -0
- data/lib/nylas/resources/messages.rb +135 -0
- data/lib/nylas/resources/redirect_uris.rb +68 -0
- data/lib/nylas/resources/resource.rb +18 -0
- data/lib/nylas/resources/smart_compose.rb +36 -0
- data/lib/nylas/resources/threads.rb +62 -0
- data/lib/nylas/resources/webhooks.rb +121 -0
- data/lib/nylas/utils/file_utils.rb +61 -0
- data/lib/nylas/version.rb +1 -1
- data/lib/nylas.rb +31 -148
- metadata +88 -247
- data/lib/nylas/account.rb +0 -56
- data/lib/nylas/api.rb +0 -246
- data/lib/nylas/application_details.rb +0 -13
- data/lib/nylas/calendar.rb +0 -46
- data/lib/nylas/calendar_collection.rb +0 -144
- data/lib/nylas/categorize.rb +0 -14
- data/lib/nylas/collection.rb +0 -175
- data/lib/nylas/component.rb +0 -35
- data/lib/nylas/component_collection.rb +0 -10
- data/lib/nylas/constraints.rb +0 -56
- data/lib/nylas/contact.rb +0 -53
- data/lib/nylas/contact_group.rb +0 -23
- data/lib/nylas/current_account.rb +0 -23
- data/lib/nylas/delta.rb +0 -56
- data/lib/nylas/deltas.rb +0 -19
- data/lib/nylas/deltas_collection.rb +0 -40
- data/lib/nylas/draft.rb +0 -100
- data/lib/nylas/email_address.rb +0 -12
- data/lib/nylas/event.rb +0 -144
- data/lib/nylas/event_collection.rb +0 -15
- data/lib/nylas/event_conferencing.rb +0 -12
- data/lib/nylas/event_conferencing_autocreate.rb +0 -10
- data/lib/nylas/event_conferencing_details.rb +0 -14
- data/lib/nylas/event_notification.rb +0 -17
- data/lib/nylas/file.rb +0 -75
- data/lib/nylas/filter_attributes.rb +0 -25
- data/lib/nylas/folder.rb +0 -26
- data/lib/nylas/free_busy.rb +0 -13
- data/lib/nylas/free_busy_collection.rb +0 -48
- data/lib/nylas/http_client.rb +0 -279
- data/lib/nylas/im_address.rb +0 -11
- data/lib/nylas/job_status.rb +0 -27
- data/lib/nylas/job_status_collection.rb +0 -21
- data/lib/nylas/label.rb +0 -27
- data/lib/nylas/logging.rb +0 -41
- data/lib/nylas/message.rb +0 -98
- data/lib/nylas/message_headers.rb +0 -27
- data/lib/nylas/message_tracking.rb +0 -13
- data/lib/nylas/model/attributable.rb +0 -89
- data/lib/nylas/model/attribute_definition.rb +0 -24
- data/lib/nylas/model/attributes.rb +0 -97
- data/lib/nylas/model/list_attribute_definition.rb +0 -39
- data/lib/nylas/model/transferable.rb +0 -53
- data/lib/nylas/model.rb +0 -217
- data/lib/nylas/native_authentication.rb +0 -39
- data/lib/nylas/neural.rb +0 -87
- data/lib/nylas/neural_categorizer.rb +0 -29
- data/lib/nylas/neural_clean_conversation.rb +0 -33
- data/lib/nylas/neural_contact_link.rb +0 -11
- data/lib/nylas/neural_contact_name.rb +0 -11
- data/lib/nylas/neural_message_options.rb +0 -35
- data/lib/nylas/neural_ocr.rb +0 -16
- data/lib/nylas/neural_sentiment_analysis.rb +0 -17
- data/lib/nylas/neural_signature_contact.rb +0 -81
- data/lib/nylas/neural_signature_extraction.rb +0 -18
- data/lib/nylas/new_message.rb +0 -39
- data/lib/nylas/nylas_date.rb +0 -25
- data/lib/nylas/open_hours.rb +0 -15
- data/lib/nylas/outbox.rb +0 -116
- data/lib/nylas/outbox_job_status.rb +0 -19
- data/lib/nylas/outbox_message.rb +0 -17
- data/lib/nylas/participant.rb +0 -13
- data/lib/nylas/phone_number.rb +0 -11
- data/lib/nylas/physical_address.rb +0 -17
- data/lib/nylas/raw_message.rb +0 -25
- data/lib/nylas/recurrence.rb +0 -11
- data/lib/nylas/registry.rb +0 -42
- data/lib/nylas/room_resource.rb +0 -19
- data/lib/nylas/rsvp.rb +0 -24
- data/lib/nylas/scheduler.rb +0 -51
- data/lib/nylas/scheduler_booking_confirmation.rb +0 -24
- data/lib/nylas/scheduler_booking_request.rb +0 -17
- data/lib/nylas/scheduler_collection.rb +0 -104
- data/lib/nylas/scheduler_config.rb +0 -20
- data/lib/nylas/scheduler_time_slot.rb +0 -14
- data/lib/nylas/search_collection.rb +0 -10
- data/lib/nylas/send_grid_verified_status.rb +0 -12
- data/lib/nylas/services/tunnel.rb +0 -128
- data/lib/nylas/thread.rb +0 -66
- data/lib/nylas/time_slot.rb +0 -16
- data/lib/nylas/time_slot_capacity.rb +0 -13
- data/lib/nylas/timespan.rb +0 -20
- data/lib/nylas/token_info.rb +0 -20
- data/lib/nylas/types.rb +0 -168
- data/lib/nylas/web_page.rb +0 -11
- data/lib/nylas/webhook.rb +0 -111
- data/lib/nylas/when.rb +0 -75
data/lib/nylas/web_page.rb
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Nylas
|
|
4
|
-
# Structure to represent the Web Page Schema
|
|
5
|
-
# @see https://docs.nylas.com/reference#contactsid
|
|
6
|
-
class WebPage
|
|
7
|
-
include Model::Attributable
|
|
8
|
-
attribute :type, :string
|
|
9
|
-
attribute :url, :string
|
|
10
|
-
end
|
|
11
|
-
end
|
data/lib/nylas/webhook.rb
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module WebhookState
|
|
4
|
-
# Module representing the possible 'state' values in a Webhook
|
|
5
|
-
# @see https://developer.nylas.com/docs/api#post/a/client_id/webhooks
|
|
6
|
-
|
|
7
|
-
ACTIVE = "active"
|
|
8
|
-
INACTIVE = "inactive"
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
module WebhookTrigger
|
|
12
|
-
# Module representing the possible 'trigger' values in a Webhook
|
|
13
|
-
# @see https://developer.nylas.com/docs/api#post/a/client_id/webhooks
|
|
14
|
-
|
|
15
|
-
ACCOUNT_CONNECTED = "account.connected"
|
|
16
|
-
ACCOUNT_RUNNING = "account.running"
|
|
17
|
-
ACCOUNT_STOPPED = "account.stopped"
|
|
18
|
-
ACCOUNT_INVALID = "account.invalid"
|
|
19
|
-
ACCOUNT_SYNC_ERROR = "account.sync_error"
|
|
20
|
-
MESSAGE_CREATED = "message.created"
|
|
21
|
-
MESSAGE_OPENED = "message.opened"
|
|
22
|
-
MESSAGE_LINK_CLICKED = "message.link_clicked"
|
|
23
|
-
MESSAGE_UPDATED = "message.updated"
|
|
24
|
-
MESSAGE_BOUNCED = "message.bounced"
|
|
25
|
-
THREAD_REPLIED = "thread.replied"
|
|
26
|
-
CONTACT_CREATED = "contact.created"
|
|
27
|
-
CONTACT_UPDATED = "contact.updated"
|
|
28
|
-
CONTACT_DELETED = "contact.deleted"
|
|
29
|
-
CALENDAR_CREATED = "calendar.created"
|
|
30
|
-
CALENDAR_UPDATED = "calendar.updated"
|
|
31
|
-
CALENDAR_DELETED = "calendar.deleted"
|
|
32
|
-
EVENT_CREATED = "event.created"
|
|
33
|
-
EVENT_UPDATED = "event.updated"
|
|
34
|
-
EVENT_DELETED = "event.deleted"
|
|
35
|
-
JOB_SUCCESSFUL = "job.successful"
|
|
36
|
-
JOB_FAILED = "job.failed"
|
|
37
|
-
JOB_DELAYED = "job.delayed"
|
|
38
|
-
JOB_CANCELLED = "job.cancelled"
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
module Nylas
|
|
42
|
-
# Represents a webhook attached to your application.
|
|
43
|
-
# @see https://docs.nylas.com/reference#webhooks
|
|
44
|
-
class Webhook
|
|
45
|
-
require "openssl"
|
|
46
|
-
include Model
|
|
47
|
-
self.creatable = true
|
|
48
|
-
self.listable = true
|
|
49
|
-
self.showable = true
|
|
50
|
-
self.updatable = true
|
|
51
|
-
self.destroyable = true
|
|
52
|
-
self.auth_method = HttpClient::AuthMethod::BASIC
|
|
53
|
-
attribute :id, :string, read_only: true
|
|
54
|
-
attribute :application_id, :string, read_only: true
|
|
55
|
-
|
|
56
|
-
attribute :callback_url, :string
|
|
57
|
-
attribute :state, :string
|
|
58
|
-
attribute :version, :string, read_only: true
|
|
59
|
-
has_n_of_attribute :triggers, :string
|
|
60
|
-
|
|
61
|
-
STATE = [:inactive].freeze
|
|
62
|
-
|
|
63
|
-
def save
|
|
64
|
-
result = if persisted?
|
|
65
|
-
update_call(update_payload)
|
|
66
|
-
else
|
|
67
|
-
create
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
attributes.merge(result)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def save_all_attributes
|
|
74
|
-
save
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def update(**data)
|
|
78
|
-
raise ArgumentError, "Only 'state' is allowed to be updated" if data.length > 1 || !data.key?(:state)
|
|
79
|
-
|
|
80
|
-
attributes.merge(**data)
|
|
81
|
-
payload = JSON.dump(data)
|
|
82
|
-
update_call(payload)
|
|
83
|
-
|
|
84
|
-
true
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def update_all_attributes(**data)
|
|
88
|
-
update(**data)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def self.resources_path(api:)
|
|
92
|
-
"/a/#{api.app_id}/webhooks"
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Verify incoming webhook signature came from Nylas
|
|
96
|
-
# @param nylas_signature [str] The signature to verify
|
|
97
|
-
# @param raw_body [str] The raw body from the payload
|
|
98
|
-
# @param client_secret [str] Client secret of the app receiving the webhook
|
|
99
|
-
# @return [Boolean] True if the webhook signature was verified from Nylas
|
|
100
|
-
def self.verify_webhook_signature(nylas_signature, raw_body, client_secret)
|
|
101
|
-
digest = OpenSSL::HMAC.hexdigest("SHA256", client_secret, raw_body)
|
|
102
|
-
digest == nylas_signature
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
private
|
|
106
|
-
|
|
107
|
-
def update_payload
|
|
108
|
-
JSON.dump({ state: state })
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|
data/lib/nylas/when.rb
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Nylas
|
|
4
|
-
require "tzinfo"
|
|
5
|
-
|
|
6
|
-
# Structure to represent all the Nylas time types.
|
|
7
|
-
# @see https://docs.nylas.com/reference#section-time
|
|
8
|
-
class When
|
|
9
|
-
extend Forwardable
|
|
10
|
-
|
|
11
|
-
include Model::Attributable
|
|
12
|
-
|
|
13
|
-
attribute :object, :string, read_only: true
|
|
14
|
-
|
|
15
|
-
# when object == 'date'
|
|
16
|
-
attribute :date, :date
|
|
17
|
-
|
|
18
|
-
# when object == 'datespan'
|
|
19
|
-
attribute :start_date, :date
|
|
20
|
-
attribute :end_date, :date
|
|
21
|
-
|
|
22
|
-
# when object == 'time'
|
|
23
|
-
attribute :time, :unix_timestamp
|
|
24
|
-
# Timezone must be set to a valid IANA database timezone name
|
|
25
|
-
attribute :timezone, :string
|
|
26
|
-
|
|
27
|
-
# when object == 'timespan'
|
|
28
|
-
attribute :start_time, :unix_timestamp
|
|
29
|
-
attribute :end_time, :unix_timestamp
|
|
30
|
-
# Both timezone fields must be set to a valid IANA database timezone name
|
|
31
|
-
attribute :start_timezone, :string
|
|
32
|
-
attribute :end_timezone, :string
|
|
33
|
-
|
|
34
|
-
def_delegators :range, :cover?
|
|
35
|
-
|
|
36
|
-
def as_timespan
|
|
37
|
-
return unless object == "timespan"
|
|
38
|
-
|
|
39
|
-
Timespan.new(object: object, start_time: start_time, end_time: end_time)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def range
|
|
43
|
-
case object
|
|
44
|
-
when "timespan"
|
|
45
|
-
Range.new(start_time, end_time)
|
|
46
|
-
when "datespan"
|
|
47
|
-
Range.new(start_date, end_date)
|
|
48
|
-
when "date"
|
|
49
|
-
Range.new(date, date)
|
|
50
|
-
when "time"
|
|
51
|
-
Range.new(time, time)
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Validates the When object
|
|
56
|
-
# @return [Boolean] True if the When is valid
|
|
57
|
-
# @raise [ArgumentError] If any of the timezone fields are not valid IANA database names
|
|
58
|
-
def valid?
|
|
59
|
-
validate_timezone(timezone) if timezone
|
|
60
|
-
validate_timezone(start_timezone) if start_timezone
|
|
61
|
-
validate_timezone(end_timezone) if end_timezone
|
|
62
|
-
|
|
63
|
-
true
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
private
|
|
67
|
-
|
|
68
|
-
def validate_timezone(timezone_var)
|
|
69
|
-
return if TZInfo::Timezone.all_identifiers.include?(timezone_var)
|
|
70
|
-
|
|
71
|
-
raise ArgumentError,
|
|
72
|
-
format("The timezone provided (%s) is not a valid IANA timezone database name", timezone_var)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|