nylas 6.0.0.beta.2 → 6.0.0.beta.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 +14 -0
- data/lib/nylas/resources/auth.rb +16 -29
- data/lib/nylas/resources/calendars.rb +1 -1
- data/lib/nylas/resources/contacts.rb +89 -0
- data/lib/nylas/resources/drafts.rb +11 -0
- data/lib/nylas/resources/events.rb +15 -0
- data/lib/nylas/resources/grants.rb +0 -12
- data/lib/nylas/resources/webhooks.rb +3 -0
- data/lib/nylas/utils/file_utils.rb +6 -1
- data/lib/nylas/version.rb +1 -1
- data/lib/nylas.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5153fbe30a05d237c4e17da6ff51005ded6667ae710a50e349535079bfd5db91
|
4
|
+
data.tar.gz: 21e167b02e08cbf456ca45ffd94372fe6db8bf3fc7a1b5637ecf8bd5cde361bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 232c65750e5e6027cf4414519be4e91a497c48b394d779ac2500af8bf82f3bf5317ecb1ec94261f80eb0cd46b373e88727c2aed65b036950f9d239a4276d313c
|
7
|
+
data.tar.gz: ccb50fddee574741f2baf36d4f44b46e246b219e0cb9d764d1ee2f1307cf8bf1a45aaec3a3bbe363f471b98ecc646fd60b79643ab730262308e9914a199b4719
|
data/lib/nylas/client.rb
CHANGED
@@ -62,6 +62,13 @@ module Nylas
|
|
62
62
|
Connectors.new(self)
|
63
63
|
end
|
64
64
|
|
65
|
+
# The contact resources for your Nylas application.
|
66
|
+
#
|
67
|
+
# @return [Nylas::Contacts] Contact resources for your Nylas application.
|
68
|
+
def contacts
|
69
|
+
Contacts.new(self)
|
70
|
+
end
|
71
|
+
|
65
72
|
# The draft resources for your Nylas application.
|
66
73
|
#
|
67
74
|
# @return [Nylas::Drafts] Draft resources for your Nylas application.
|
@@ -83,6 +90,13 @@ module Nylas
|
|
83
90
|
Folders.new(self)
|
84
91
|
end
|
85
92
|
|
93
|
+
# The grants resources for your Nylas application.
|
94
|
+
#
|
95
|
+
# @return [Nylas::Grants] Grant resources for your Nylas application
|
96
|
+
def grants
|
97
|
+
Grants.new(self)
|
98
|
+
end
|
99
|
+
|
86
100
|
# The message resources for your Nylas application.
|
87
101
|
#
|
88
102
|
# @return [Nylas::Messages] Message resources for your Nylas application
|
data/lib/nylas/resources/auth.rb
CHANGED
@@ -16,15 +16,6 @@ module Nylas
|
|
16
16
|
include ApiOperations::Post
|
17
17
|
include ApiOperations::Get
|
18
18
|
|
19
|
-
# Initializes Auth.
|
20
|
-
def initialize(sdk_instance)
|
21
|
-
super(sdk_instance)
|
22
|
-
|
23
|
-
@grants = Grants.new(sdk_instance)
|
24
|
-
end
|
25
|
-
|
26
|
-
attr_reader :grants
|
27
|
-
|
28
19
|
# Builds the URL for authenticating users to your application with OAuth 2.0.
|
29
20
|
#
|
30
21
|
# @param config [Hash] Configuration for building the URL.
|
@@ -43,6 +34,17 @@ module Nylas
|
|
43
34
|
execute_token_request(request)
|
44
35
|
end
|
45
36
|
|
37
|
+
# Create a Grant via Custom Authentication.
|
38
|
+
#
|
39
|
+
# @param request_body [Hash] The values to create the Grant with.
|
40
|
+
# @return [Array(Hash, String)] Created grant and API Request ID.
|
41
|
+
def custom_authentication(request_body)
|
42
|
+
post(
|
43
|
+
path: "#{api_uri}/v3/connect/custom",
|
44
|
+
request_body: request_body
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
46
48
|
# Refreshes an access token.
|
47
49
|
#
|
48
50
|
# @param request [Hash] Code exchange request.
|
@@ -156,32 +158,17 @@ module Nylas
|
|
156
158
|
"access_type" => config[:access_type] || "online",
|
157
159
|
"response_type" => "code"
|
158
160
|
}
|
159
|
-
set_params(config)
|
160
|
-
|
161
|
-
URI.encode_www_form(params)
|
162
|
-
end
|
163
|
-
|
164
|
-
# Set the parameters for the query
|
165
|
-
def set_params(config)
|
166
161
|
params["provider"] = config[:provider] if config[:provider]
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
# Set login related configurations
|
172
|
-
def set_config_params(config)
|
162
|
+
params["prompt"] = config[:prompt] if config[:prompt]
|
163
|
+
params["metadata"] = config[:metadata] if config[:metadata]
|
164
|
+
params["state"] = config[:state] if config[:state]
|
165
|
+
params["scope"] = config[:scope].join(" ") if config[:scope]
|
173
166
|
if config[:login_hint]
|
174
167
|
params["login_hint"] = config[:login_hint]
|
175
168
|
params["include_grant_scopes"] = config[:include_grant_scopes].to_s if config[:include_grant_scopes]
|
176
169
|
end
|
177
|
-
params["scope"] = config[:scope].join(" ") if config[:scope]
|
178
|
-
end
|
179
170
|
|
180
|
-
|
181
|
-
def set_more_config(config)
|
182
|
-
params["prompt"] = config[:prompt] if config[:prompt]
|
183
|
-
params["metadata"] = config[:metadata] if config[:metadata]
|
184
|
-
params["state"] = config[:state] if config[:state]
|
171
|
+
URI.encode_www_form(params)
|
185
172
|
end
|
186
173
|
|
187
174
|
# Hashes the secret for PKCE authentication.
|
@@ -93,7 +93,7 @@ module Nylas
|
|
93
93
|
# @return [Array(Array(Hash), String)] The free/busy response.
|
94
94
|
def get_free_busy(identifier:, request_body:)
|
95
95
|
post(
|
96
|
-
path: "#{api_uri}/v3/grants/#{identifier}/calendars/
|
96
|
+
path: "#{api_uri}/v3/grants/#{identifier}/calendars/free-busy",
|
97
97
|
request_body: request_body
|
98
98
|
)
|
99
99
|
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "resource"
|
4
|
+
require_relative "../handler/api_operations"
|
5
|
+
|
6
|
+
module Nylas
|
7
|
+
# Nylas Contact API
|
8
|
+
class Contacts < Resource
|
9
|
+
include ApiOperations::Get
|
10
|
+
include ApiOperations::Post
|
11
|
+
include ApiOperations::Put
|
12
|
+
include ApiOperations::Delete
|
13
|
+
|
14
|
+
# Return all contacts.
|
15
|
+
#
|
16
|
+
# @param identifier [String] Grant ID or email account to query.
|
17
|
+
# @param query_params [Hash, nil] Query params to pass to the request.
|
18
|
+
# @return [Array(Array(Hash), String)] The list of contacts and API Request ID.
|
19
|
+
def list(identifier:, query_params: nil)
|
20
|
+
get(
|
21
|
+
path: "#{api_uri}/v3/grants/#{identifier}/contacts",
|
22
|
+
query_params: query_params
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Return a contact.
|
27
|
+
#
|
28
|
+
# @param identifier [String] Grant ID or email account to query.
|
29
|
+
# @param contact_id [String] The id of the contact to return.
|
30
|
+
# @param query_params [Hash, nil] Query params to pass to the request.
|
31
|
+
# @return [Array(Hash, String)] The contact and API request ID.
|
32
|
+
def find(identifier:, contact_id:, query_params: nil)
|
33
|
+
get(
|
34
|
+
path: "#{api_uri}/v3/grants/#{identifier}/contacts/#{contact_id}",
|
35
|
+
query_params: query_params
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Create a contact.
|
40
|
+
#
|
41
|
+
# @param identifier [String] Grant ID or email account in which to create the object.
|
42
|
+
# @param request_body [Hash] The values to create the contact with.
|
43
|
+
# @return [Array(Hash, String)] The created contact and API Request ID.
|
44
|
+
def create(identifier:, request_body:)
|
45
|
+
post(
|
46
|
+
path: "#{api_uri}/v3/grants/#{identifier}/contacts",
|
47
|
+
request_body: request_body
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Update a contact.
|
52
|
+
#
|
53
|
+
# @param identifier [String] Grant ID or email account in which to update an object.
|
54
|
+
# @param contact_id [String] The id of the contact to update.
|
55
|
+
# @param request_body [Hash] The values to update the contact with
|
56
|
+
# @return [Array(Hash, String)] The updated contact and API Request ID.
|
57
|
+
def update(identifier:, contact_id:, request_body:)
|
58
|
+
put(
|
59
|
+
path: "#{api_uri}/v3/grants/#{identifier}/contacts/#{contact_id}",
|
60
|
+
request_body: request_body
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Delete a contact.
|
65
|
+
#
|
66
|
+
# @param identifier [String] Grant ID or email account from which to delete an object.
|
67
|
+
# @param contact_id [String] The id of the contact to delete.
|
68
|
+
# @return [Array(TrueClass, String)] True and the API Request ID for the delete operation.
|
69
|
+
def destroy(identifier:, contact_id:)
|
70
|
+
_, request_id = delete(
|
71
|
+
path: "#{api_uri}/v3/grants/#{identifier}/contacts/#{contact_id}"
|
72
|
+
)
|
73
|
+
|
74
|
+
[true, request_id]
|
75
|
+
end
|
76
|
+
|
77
|
+
# Return all contact groups.
|
78
|
+
#
|
79
|
+
# @param identifier [String] Grant ID or email account to query.
|
80
|
+
# @param query_params [Hash, nil] Query params to pass to the request.
|
81
|
+
# @return [Array(Array(Hash), String)] The list of contact groups and API Request ID.
|
82
|
+
def contact_groups(identifier:, query_params: nil)
|
83
|
+
get(
|
84
|
+
path: "#{api_uri}/v3/grants/#{identifier}/contacts/groups",
|
85
|
+
query_params: query_params
|
86
|
+
)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -87,5 +87,16 @@ module Nylas
|
|
87
87
|
|
88
88
|
[true, request_id]
|
89
89
|
end
|
90
|
+
|
91
|
+
# Send an draft.
|
92
|
+
#
|
93
|
+
# @param identifier [String] Grant ID or email account from which to send the draft.
|
94
|
+
# @param draft_id [String] The id of the draft to send.
|
95
|
+
# @return [Array(Hash, String)] The sent message draft and the API Request ID.
|
96
|
+
def send(identifier:, draft_id:)
|
97
|
+
post(
|
98
|
+
path: "#{api_uri}/v3/grants/#{identifier}/drafts/#{draft_id}"
|
99
|
+
)
|
100
|
+
end
|
90
101
|
end
|
91
102
|
end
|
@@ -79,5 +79,20 @@ module Nylas
|
|
79
79
|
|
80
80
|
[true, request_id]
|
81
81
|
end
|
82
|
+
|
83
|
+
# Send RSVP. Allows users to respond to events they have been added to as an attendee.
|
84
|
+
#
|
85
|
+
# @param identifier [String] Grant ID or email account from which to send RSVP with.
|
86
|
+
# @param event_id [String] The id of the event to respond to.
|
87
|
+
# @param request_body [Hash] The status values to send the RSVP with.
|
88
|
+
# @param query_params [Hash] The query parameters to include in the request
|
89
|
+
# @return [Hash] Response object with the API Request ID.
|
90
|
+
def send_rsvp(identifier:, event_id:, request_body:, query_params:)
|
91
|
+
post(
|
92
|
+
path: "#{api_uri}/v3/grants/#{identifier}/events/#{event_id}/send-rsvp",
|
93
|
+
query_params: query_params,
|
94
|
+
request_body: request_body
|
95
|
+
)
|
96
|
+
end
|
82
97
|
end
|
83
98
|
end
|
@@ -7,7 +7,6 @@ module Nylas
|
|
7
7
|
# Grants
|
8
8
|
class Grants < Resource
|
9
9
|
include ApiOperations::Get
|
10
|
-
include ApiOperations::Post
|
11
10
|
include ApiOperations::Put
|
12
11
|
include ApiOperations::Delete
|
13
12
|
|
@@ -32,17 +31,6 @@ module Nylas
|
|
32
31
|
)
|
33
32
|
end
|
34
33
|
|
35
|
-
# Create a Grant via Custom Authentication.
|
36
|
-
#
|
37
|
-
# @param request_body [Hash] The values to create the Grant with.
|
38
|
-
# @return [Array(Hash, String)] Created grant and API Request ID.
|
39
|
-
def create(request_body)
|
40
|
-
post(
|
41
|
-
path: "#{api_uri}/v3/#{resource_name}/custom",
|
42
|
-
request_body: request_body
|
43
|
-
)
|
44
|
-
end
|
45
|
-
|
46
34
|
# Update a grant.
|
47
35
|
#
|
48
36
|
# @param grant_id [String] The id of the grant to update.
|
@@ -19,6 +19,9 @@ module Nylas
|
|
19
19
|
GRANT_EXPIRED = "grant.expired"
|
20
20
|
MESSAGE_SEND_SUCCESS = "message.send_success"
|
21
21
|
MESSAGE_SEND_FAILED = "message.send_failed"
|
22
|
+
MESSAGE_OPENED = "message.opened"
|
23
|
+
MESSAGE_LINK_CLICKED = "message.link_clicked"
|
24
|
+
THREAD_REPLIED = "thread.replied"
|
22
25
|
end
|
23
26
|
|
24
27
|
# Nylas Webhooks API
|
@@ -11,9 +11,14 @@ module Nylas
|
|
11
11
|
# @!visibility private
|
12
12
|
def self.build_form_request(request_body)
|
13
13
|
attachments = request_body.delete(:attachments) || request_body.delete("attachments") || []
|
14
|
-
|
14
|
+
|
15
|
+
# RestClient will not send a multipart request if there are no attachments
|
16
|
+
# so we need to return the message payload to be used as a json payload
|
17
|
+
return [request_body, []] if attachments.empty?
|
15
18
|
|
16
19
|
# Prepare the data to return
|
20
|
+
message_payload = request_body.to_json
|
21
|
+
|
17
22
|
form_data = {}
|
18
23
|
opened_files = []
|
19
24
|
|
data/lib/nylas/version.rb
CHANGED
data/lib/nylas.rb
CHANGED
@@ -32,6 +32,7 @@ require_relative "nylas/resources/attachments"
|
|
32
32
|
require_relative "nylas/resources/auth"
|
33
33
|
require_relative "nylas/resources/calendars"
|
34
34
|
require_relative "nylas/resources/connectors"
|
35
|
+
require_relative "nylas/resources/contacts"
|
35
36
|
require_relative "nylas/resources/credentials"
|
36
37
|
require_relative "nylas/resources/drafts"
|
37
38
|
require_relative "nylas/resources/events"
|
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: 6.0.0.beta.
|
4
|
+
version: 6.0.0.beta.3
|
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: 2024-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mime-types
|
@@ -239,6 +239,7 @@ files:
|
|
239
239
|
- lib/nylas/resources/auth.rb
|
240
240
|
- lib/nylas/resources/calendars.rb
|
241
241
|
- lib/nylas/resources/connectors.rb
|
242
|
+
- lib/nylas/resources/contacts.rb
|
242
243
|
- lib/nylas/resources/credentials.rb
|
243
244
|
- lib/nylas/resources/drafts.rb
|
244
245
|
- lib/nylas/resources/events.rb
|