nylas 5.6.1 → 5.7.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.
- checksums.yaml +4 -4
- data/lib/nylas/account.rb +10 -0
- data/lib/nylas/api.rb +25 -1
- data/lib/nylas/application_details.rb +13 -0
- data/lib/nylas/calendar.rb +1 -0
- data/lib/nylas/contact.rb +1 -0
- data/lib/nylas/draft.rb +1 -0
- data/lib/nylas/event.rb +40 -0
- data/lib/nylas/folder.rb +4 -4
- data/lib/nylas/job_status.rb +26 -0
- data/lib/nylas/label.rb +1 -0
- data/lib/nylas/message.rb +1 -0
- data/lib/nylas/token_info.rb +20 -0
- data/lib/nylas/version.rb +1 -1
- data/lib/nylas.rb +4 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d8d9639941076724b3e9ae95b85a2e4a48c8f663a35b03f5f26473c5c87b208
|
4
|
+
data.tar.gz: 4b2733e86538a6dd7ac3069dc5738997ea8db1b7be13b1a8de9bef5c868ec1d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56b9216d9e5f37a0c449d999891a76a06e1ed8dd8925efe5186d8d59d16105da76ea3b8a5599d88a9e8e83bd2862bc71cc7491957ac8c8da8718a825af2a2a2a
|
7
|
+
data.tar.gz: 5fa04ae09e9692f0c954926ae8e7d541388597a12a154dd8bf82b78c40e91b7b9b73508c5d39b6a2c604ed5d53f5eec86379687dc9b79da81b4a8571d0500460
|
data/lib/nylas/account.rb
CHANGED
@@ -8,6 +8,7 @@ module Nylas
|
|
8
8
|
self.listable = true
|
9
9
|
self.showable = true
|
10
10
|
self.updatable = true
|
11
|
+
self.destroyable = true
|
11
12
|
|
12
13
|
attribute :id, :string, read_only: true
|
13
14
|
attribute :account_id, :string, read_only: true
|
@@ -36,6 +37,15 @@ module Nylas
|
|
36
37
|
response[:success]
|
37
38
|
end
|
38
39
|
|
40
|
+
# Return information about an account's access token
|
41
|
+
# @param access_token [String] The access token to inquire about
|
42
|
+
# @return [TokenInfo] The access token information
|
43
|
+
def token_info(access_token)
|
44
|
+
payload = JSON.dump(access_token: access_token)
|
45
|
+
response = execute(method: :post, path: "#{resource_path}/token-info", payload: payload)
|
46
|
+
TokenInfo.new(**response)
|
47
|
+
end
|
48
|
+
|
39
49
|
def self.resources_path(api:)
|
40
50
|
"/a/#{api.app_id}/accounts"
|
41
51
|
end
|
data/lib/nylas/api.rb
CHANGED
@@ -130,6 +130,11 @@ module Nylas
|
|
130
130
|
@room_resources ||= Collection.new(model: RoomResource, api: self)
|
131
131
|
end
|
132
132
|
|
133
|
+
# @return[Collection<JobStatus>] A queryable collection of {JobStatus} objects
|
134
|
+
def job_statuses
|
135
|
+
@job_statuses ||= Collection.new(model: JobStatus, api: self)
|
136
|
+
end
|
137
|
+
|
133
138
|
# @return[SchedulerCollection<Scheduler>] A queryable collection of {Scheduler} objects
|
134
139
|
def scheduler
|
135
140
|
# Make a deep copy of the API as the scheduler API uses a different base URL
|
@@ -155,6 +160,25 @@ module Nylas
|
|
155
160
|
response.code == 200 && response.empty?
|
156
161
|
end
|
157
162
|
|
163
|
+
# Returns the application details
|
164
|
+
# @return [ApplicationDetail] The application details
|
165
|
+
def application_details
|
166
|
+
response = client.as(client.app_secret).execute(method: :get, path: "/a/#{app_id}")
|
167
|
+
ApplicationDetail.new(**response)
|
168
|
+
end
|
169
|
+
|
170
|
+
# Updates the application details
|
171
|
+
# @param application_details [ApplicationDetail] The updated application details
|
172
|
+
# @return [ApplicationDetails] The updated application details, returned from the server
|
173
|
+
def update_application_details(application_details)
|
174
|
+
response = client.as(client.app_secret).execute(
|
175
|
+
method: :put,
|
176
|
+
path: "/a/#{app_id}",
|
177
|
+
payload: JSON.dump(application_details.to_h)
|
178
|
+
)
|
179
|
+
ApplicationDetail.new(**response)
|
180
|
+
end
|
181
|
+
|
158
182
|
# Returns list of IP addresses
|
159
183
|
# @return [Hash]
|
160
184
|
# hash has keys of :updated_at (unix timestamp) and :ip_addresses (array of strings)
|
@@ -172,7 +196,7 @@ module Nylas
|
|
172
196
|
end
|
173
197
|
|
174
198
|
# Allows you to get an API that acts as a different user but otherwise has the same settings
|
175
|
-
# @param [String] Oauth Access token or app secret used to authenticate with the API
|
199
|
+
# @param access_token [String] Oauth Access token or app secret used to authenticate with the API
|
176
200
|
# @return [API]
|
177
201
|
def as(access_token)
|
178
202
|
API.new(client: client.as(access_token))
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Nylas
|
4
|
+
# Structure to represent a Nylas Application Detail object.
|
5
|
+
# @see https://developer.nylas.com/docs/api/#get/a/client_id
|
6
|
+
class ApplicationDetail
|
7
|
+
include Model::Attributable
|
8
|
+
|
9
|
+
attribute :application_name, :string
|
10
|
+
attribute :icon_url, :string
|
11
|
+
has_n_of_attribute :redirect_uris, :string
|
12
|
+
end
|
13
|
+
end
|
data/lib/nylas/calendar.rb
CHANGED
data/lib/nylas/contact.rb
CHANGED
data/lib/nylas/draft.rb
CHANGED
data/lib/nylas/event.rb
CHANGED
@@ -31,6 +31,7 @@ module Nylas
|
|
31
31
|
attribute :conferencing, :event_conferencing
|
32
32
|
has_n_of_attribute :notifications, :event_notification
|
33
33
|
attribute :original_start_time, :unix_timestamp
|
34
|
+
attribute :job_status_id, :string, read_only: true
|
34
35
|
|
35
36
|
attr_accessor :notify_participants
|
36
37
|
|
@@ -59,8 +60,47 @@ module Nylas
|
|
59
60
|
rsvp.save
|
60
61
|
end
|
61
62
|
|
63
|
+
# Generate an ICS file server-side, from an Event
|
64
|
+
# @param ical_uid [String] Unique identifier used events across calendaring systems
|
65
|
+
# @param method [String] Description of invitation and response methods for attendees
|
66
|
+
# @param prodid [String] Company-specific unique product identifier
|
67
|
+
# @return [String] String for writing directly into an ICS file
|
68
|
+
def generate_ics(ical_uid: nil, method: nil, prodid: nil)
|
69
|
+
raise ArgumentError, "Cannot generate an ICS file for an event without a Calendar ID or when set" unless
|
70
|
+
calendar_id && self.when
|
71
|
+
|
72
|
+
payload = build_ics_event_payload(ical_uid, method, prodid)
|
73
|
+
response = api.execute(
|
74
|
+
method: :post,
|
75
|
+
path: "#{resources_path}/to-ics",
|
76
|
+
payload: JSON.dump(payload)
|
77
|
+
)
|
78
|
+
|
79
|
+
response[:ics]
|
80
|
+
end
|
81
|
+
|
62
82
|
private
|
63
83
|
|
84
|
+
def build_ics_event_payload(ical_uid, method, prodid)
|
85
|
+
payload = {}
|
86
|
+
if id
|
87
|
+
payload[:event_id] = id
|
88
|
+
else
|
89
|
+
payload = to_h(enforce_read_only: true)
|
90
|
+
end
|
91
|
+
ics_options = build_ics_options_payload(ical_uid, method, prodid)
|
92
|
+
payload["ics_options"] = ics_options unless ics_options.empty?
|
93
|
+
payload
|
94
|
+
end
|
95
|
+
|
96
|
+
def build_ics_options_payload(ical_uid, method, prodid)
|
97
|
+
payload = {}
|
98
|
+
payload["ical_uid"] = ical_uid if ical_uid
|
99
|
+
payload["method"] = method if method
|
100
|
+
payload["prodid"] = prodid if prodid
|
101
|
+
payload
|
102
|
+
end
|
103
|
+
|
64
104
|
def query_params
|
65
105
|
if notify_participants.nil?
|
66
106
|
{}
|
data/lib/nylas/folder.rb
CHANGED
@@ -13,12 +13,12 @@ module Nylas
|
|
13
13
|
self.updatable = true
|
14
14
|
self.destroyable = true
|
15
15
|
|
16
|
-
attribute :id, :string
|
17
|
-
attribute :account_id, :string
|
18
|
-
|
19
|
-
attribute :object, :string
|
16
|
+
attribute :id, :string, read_only: true
|
17
|
+
attribute :account_id, :string, read_only: true
|
18
|
+
attribute :object, :string, read_only: true
|
20
19
|
|
21
20
|
attribute :name, :string
|
22
21
|
attribute :display_name, :string
|
22
|
+
attribute :job_status_id, :string, read_only: true
|
23
23
|
end
|
24
24
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Nylas
|
4
|
+
# Ruby representation of a Nylas Job Status object
|
5
|
+
# @see https://developer.nylas.com/docs/api/#tag--Job-Status
|
6
|
+
class JobStatus
|
7
|
+
include Model
|
8
|
+
self.resources_path = "/job-statuses"
|
9
|
+
allows_operations(listable: true)
|
10
|
+
|
11
|
+
attribute :id, :string, read_only: true
|
12
|
+
attribute :account_id, :string, read_only: true
|
13
|
+
attribute :job_status_id, :string, read_only: true
|
14
|
+
attribute :action, :string, read_only: true
|
15
|
+
attribute :object, :string, read_only: true
|
16
|
+
attribute :status, :string, read_only: true
|
17
|
+
attribute :created_at, :unix_timestamp, read_only: true
|
18
|
+
attribute :original_data, :message, read_only: true
|
19
|
+
|
20
|
+
# Returns the status of a job as a boolean
|
21
|
+
# @return [Boolean] If the job was successful
|
22
|
+
def successful?
|
23
|
+
status == "successful"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/nylas/label.rb
CHANGED
data/lib/nylas/message.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Nylas
|
4
|
+
# Structure to represent information about a Nylas access token.
|
5
|
+
# @see https://developer.nylas.com/docs/api/#post/a/client_id/accounts/id/token-info
|
6
|
+
class TokenInfo
|
7
|
+
include Model::Attributable
|
8
|
+
|
9
|
+
attribute :scopes, :string
|
10
|
+
attribute :state, :string
|
11
|
+
attribute :created_at, :unix_timestamp
|
12
|
+
attribute :updated_at, :unix_timestamp
|
13
|
+
|
14
|
+
# Returns the state of the token as a boolean
|
15
|
+
# @return [Boolean] If the token is active
|
16
|
+
def valid?
|
17
|
+
state == "valid"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/nylas/version.rb
CHANGED
data/lib/nylas.rb
CHANGED
@@ -84,6 +84,9 @@ require_relative "nylas/raw_message"
|
|
84
84
|
require_relative "nylas/thread"
|
85
85
|
require_relative "nylas/webhook"
|
86
86
|
require_relative "nylas/scheduler"
|
87
|
+
require_relative "nylas/job_status"
|
88
|
+
require_relative "nylas/token_info"
|
89
|
+
require_relative "nylas/application_details"
|
87
90
|
|
88
91
|
# Neural specific types
|
89
92
|
require_relative "nylas/neural"
|
@@ -148,4 +151,5 @@ module Nylas
|
|
148
151
|
Types.registry[:neural_contact_name] = Types::ModelType.new(model: NeuralContactName)
|
149
152
|
Types.registry[:scheduler_config] = Types::ModelType.new(model: SchedulerConfig)
|
150
153
|
Types.registry[:scheduler_time_slot] = Types::ModelType.new(model: SchedulerTimeSlot)
|
154
|
+
Types.registry[:job_status] = Types::ModelType.new(model: JobStatus)
|
151
155
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nylas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nylas, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.24.1
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.24.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rubocop-rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 2.7.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 2.7.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: overcommit
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -269,6 +269,7 @@ files:
|
|
269
269
|
- lib/nylas.rb
|
270
270
|
- lib/nylas/account.rb
|
271
271
|
- lib/nylas/api.rb
|
272
|
+
- lib/nylas/application_details.rb
|
272
273
|
- lib/nylas/calendar.rb
|
273
274
|
- lib/nylas/calendar_collection.rb
|
274
275
|
- lib/nylas/categorize.rb
|
@@ -298,6 +299,7 @@ files:
|
|
298
299
|
- lib/nylas/free_busy_collection.rb
|
299
300
|
- lib/nylas/http_client.rb
|
300
301
|
- lib/nylas/im_address.rb
|
302
|
+
- lib/nylas/job_status.rb
|
301
303
|
- lib/nylas/label.rb
|
302
304
|
- lib/nylas/logging.rb
|
303
305
|
- lib/nylas/message.rb
|
@@ -341,6 +343,7 @@ files:
|
|
341
343
|
- lib/nylas/thread.rb
|
342
344
|
- lib/nylas/time_slot.rb
|
343
345
|
- lib/nylas/timespan.rb
|
346
|
+
- lib/nylas/token_info.rb
|
344
347
|
- lib/nylas/types.rb
|
345
348
|
- lib/nylas/version.rb
|
346
349
|
- lib/nylas/web_page.rb
|