nylas 4.6.6 → 4.6.7
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.rb +4 -0
- data/lib/nylas/api.rb +9 -0
- data/lib/nylas/collection.rb +11 -7
- data/lib/nylas/deltas_collection.rb +1 -1
- data/lib/nylas/free_busy.rb +13 -0
- data/lib/nylas/free_busy_collection.rb +48 -0
- data/lib/nylas/message.rb +2 -2
- data/lib/nylas/model.rb +1 -1
- data/lib/nylas/thread.rb +1 -1
- data/lib/nylas/time_slot.rb +14 -0
- data/lib/nylas/version.rb +1 -1
- metadata +5 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6dd52077bca505902f8fe016a103318a1c426f74f01235a36c27a2463478f101
|
|
4
|
+
data.tar.gz: 91f2addf66e656561881e721402955080f6e040536c3168737f7b62a4b74a9dd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed82717d82cdc4b5fed03a09e7ee1553ba16071e4603b8cedce2518871fc44e2b34c8bd0ce5d9e077bb492a1d216de577264da104014c75e9964b44f7a238e52
|
|
7
|
+
data.tar.gz: be58aff204cad1ce196f8fbeb766708d407d135a8247c484292a5a16fd821119727d21ded457b2b80650b58fc9c70d2a07c38dfc4beea94dc143454bc9377136
|
data/lib/nylas.rb
CHANGED
|
@@ -51,10 +51,13 @@ require_relative "nylas/timespan"
|
|
|
51
51
|
require_relative "nylas/web_page"
|
|
52
52
|
require_relative "nylas/nylas_date"
|
|
53
53
|
require_relative "nylas/when"
|
|
54
|
+
require_relative "nylas/free_busy"
|
|
55
|
+
require_relative "nylas/time_slot"
|
|
54
56
|
|
|
55
57
|
# Custom collection types
|
|
56
58
|
require_relative "nylas/search_collection"
|
|
57
59
|
require_relative "nylas/deltas_collection"
|
|
60
|
+
require_relative "nylas/free_busy_collection"
|
|
58
61
|
|
|
59
62
|
# Models supported by the API
|
|
60
63
|
require_relative "nylas/account"
|
|
@@ -104,4 +107,5 @@ module Nylas
|
|
|
104
107
|
Types.registry[:nylas_date] = NylasDateType.new
|
|
105
108
|
Types.registry[:contact_group] = Types::ModelType.new(model: ContactGroup)
|
|
106
109
|
Types.registry[:when] = Types::ModelType.new(model: When)
|
|
110
|
+
Types.registry[:time_slot] = Types::ModelType.new(model: TimeSlot)
|
|
107
111
|
end
|
data/lib/nylas/api.rb
CHANGED
|
@@ -150,6 +150,15 @@ module Nylas
|
|
|
150
150
|
@webhooks ||= Collection.new(model: Webhook, api: as(client.app_secret))
|
|
151
151
|
end
|
|
152
152
|
|
|
153
|
+
def free_busy(emails:, start_time:, end_time:)
|
|
154
|
+
FreeBusyCollection.new(
|
|
155
|
+
api: self,
|
|
156
|
+
emails: emails,
|
|
157
|
+
start_time: start_time.to_i,
|
|
158
|
+
end_time: end_time.to_i
|
|
159
|
+
)
|
|
160
|
+
end
|
|
161
|
+
|
|
153
162
|
private
|
|
154
163
|
|
|
155
164
|
def prevent_calling_if_missing_access_token(method_name)
|
data/lib/nylas/collection.rb
CHANGED
|
@@ -21,7 +21,7 @@ module Nylas
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def create(**attributes)
|
|
24
|
-
instance = model.new(attributes.merge(api: api))
|
|
24
|
+
instance = model.new(**attributes.merge(api: api))
|
|
25
25
|
instance.save
|
|
26
26
|
instance
|
|
27
27
|
end
|
|
@@ -69,7 +69,7 @@ module Nylas
|
|
|
69
69
|
return enum_for(:each) unless block_given?
|
|
70
70
|
|
|
71
71
|
execute.each do |result|
|
|
72
|
-
yield(model.new(result.merge(api: api)))
|
|
72
|
+
yield(model.new(**result.merge(api: api)))
|
|
73
73
|
end
|
|
74
74
|
end
|
|
75
75
|
|
|
@@ -119,7 +119,7 @@ module Nylas
|
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
def find_raw(id)
|
|
122
|
-
api.execute(to_be_executed.merge(path: "#{resources_path}/#{id}")).to_s
|
|
122
|
+
api.execute(**to_be_executed.merge(path: "#{resources_path}/#{id}")).to_s
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
def resources_path
|
|
@@ -127,9 +127,13 @@ module Nylas
|
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
def find_model(id)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
response = api.execute(
|
|
131
|
+
**to_be_executed.merge(
|
|
132
|
+
path: "#{resources_path}/#{id}",
|
|
133
|
+
query: {}
|
|
134
|
+
)
|
|
135
|
+
)
|
|
136
|
+
model.from_hash(response, api: api)
|
|
133
137
|
end
|
|
134
138
|
|
|
135
139
|
# @return [Hash] Specification for request to be passed to {API#execute}
|
|
@@ -141,7 +145,7 @@ module Nylas
|
|
|
141
145
|
# Retrieves the data from the API for the particular constraints
|
|
142
146
|
# @return [Hash,Array]
|
|
143
147
|
def execute
|
|
144
|
-
api.execute(to_be_executed)
|
|
148
|
+
api.execute(**to_be_executed)
|
|
145
149
|
end
|
|
146
150
|
end
|
|
147
151
|
end
|
|
@@ -34,7 +34,7 @@ module Nylas
|
|
|
34
34
|
# Retrieves the data from the API for the particular constraints
|
|
35
35
|
# @return [Detlas]
|
|
36
36
|
def execute
|
|
37
|
-
self.deltas ||= Deltas.new(api.execute(to_be_executed))
|
|
37
|
+
self.deltas ||= Deltas.new(**api.execute(**to_be_executed))
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Nylas
|
|
4
|
+
# Query free/busy information for a calendar during a certain time period
|
|
5
|
+
# @see https://docs.nylas.com/reference#calendars-free-busy
|
|
6
|
+
class FreeBusy
|
|
7
|
+
include Model::Attributable
|
|
8
|
+
|
|
9
|
+
attribute :email, :string
|
|
10
|
+
attribute :object, :string
|
|
11
|
+
has_n_of_attribute :time_slots, :time_slot
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Nylas
|
|
4
|
+
# Helper to get and build `FreeBusy` objects
|
|
5
|
+
class FreeBusyCollection
|
|
6
|
+
extend Forwardable
|
|
7
|
+
def_delegators :each, :map, :select, :reject, :to_a, :take
|
|
8
|
+
def_delegators :to_a, :first, :last, :[]
|
|
9
|
+
|
|
10
|
+
def initialize(emails:, start_time:, end_time:, api:)
|
|
11
|
+
@api = api
|
|
12
|
+
@emails = emails
|
|
13
|
+
@start_time = start_time
|
|
14
|
+
@end_time = end_time
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def each
|
|
18
|
+
return enum_for(:each) unless block_given?
|
|
19
|
+
|
|
20
|
+
execute.each do |result|
|
|
21
|
+
yield(FreeBusy.new(**result))
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
attr_reader :api, :emails, :start_time, :end_time
|
|
28
|
+
|
|
29
|
+
PATH = "/calendars/free-busy"
|
|
30
|
+
private_constant :PATH
|
|
31
|
+
|
|
32
|
+
def execute
|
|
33
|
+
api.execute(
|
|
34
|
+
method: :post,
|
|
35
|
+
path: PATH,
|
|
36
|
+
payload: payload
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def payload
|
|
41
|
+
JSON.dump(
|
|
42
|
+
emails: emails,
|
|
43
|
+
start_time: start_time,
|
|
44
|
+
end_time: end_time
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
data/lib/nylas/message.rb
CHANGED
|
@@ -56,7 +56,7 @@ module Nylas
|
|
|
56
56
|
allowed_attributes: UPDATABLE_ATTRIBUTES
|
|
57
57
|
).check
|
|
58
58
|
|
|
59
|
-
super(payload)
|
|
59
|
+
super(**payload)
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def update_folder(folder_id)
|
|
@@ -66,7 +66,7 @@ module Nylas
|
|
|
66
66
|
def expanded
|
|
67
67
|
return self unless headers.nil?
|
|
68
68
|
|
|
69
|
-
assign(api.execute(method: :get, path: resource_path, query: { view: "expanded" }))
|
|
69
|
+
assign(**api.execute(method: :get, path: resource_path, query: { view: "expanded" }))
|
|
70
70
|
self
|
|
71
71
|
end
|
|
72
72
|
|
data/lib/nylas/model.rb
CHANGED
data/lib/nylas/thread.rb
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Nylas
|
|
4
|
+
# Query free/busy information for a calendar during a certain time period
|
|
5
|
+
# @see https://docs.nylas.com/reference#calendars-free-busy
|
|
6
|
+
class TimeSlot
|
|
7
|
+
include Model::Attributable
|
|
8
|
+
|
|
9
|
+
attribute :object, :string
|
|
10
|
+
attribute :status, :string
|
|
11
|
+
attribute :start_time, :unix_timestamp
|
|
12
|
+
attribute :end_time, :unix_timestamp
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/nylas/version.rb
CHANGED
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: 4.6.
|
|
4
|
+
version: 4.6.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nylas, Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-04-
|
|
11
|
+
date: 2021-04-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -24,20 +24,6 @@ dependencies:
|
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: 1.3.0
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: jeweler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.1'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '2.1'
|
|
41
27
|
- !ruby/object:Gem::Dependency
|
|
42
28
|
name: yard
|
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -300,6 +286,8 @@ files:
|
|
|
300
286
|
- lib/nylas/file.rb
|
|
301
287
|
- lib/nylas/filter_attributes.rb
|
|
302
288
|
- lib/nylas/folder.rb
|
|
289
|
+
- lib/nylas/free_busy.rb
|
|
290
|
+
- lib/nylas/free_busy_collection.rb
|
|
303
291
|
- lib/nylas/http_client.rb
|
|
304
292
|
- lib/nylas/im_address.rb
|
|
305
293
|
- lib/nylas/label.rb
|
|
@@ -325,6 +313,7 @@ files:
|
|
|
325
313
|
- lib/nylas/rsvp.rb
|
|
326
314
|
- lib/nylas/search_collection.rb
|
|
327
315
|
- lib/nylas/thread.rb
|
|
316
|
+
- lib/nylas/time_slot.rb
|
|
328
317
|
- lib/nylas/timespan.rb
|
|
329
318
|
- lib/nylas/types.rb
|
|
330
319
|
- lib/nylas/version.rb
|