nylas 6.2.0 → 6.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66046a0bdf3cda4d6c782bba25fba8459223c97930d3bf0d15f46e000f04546a
4
- data.tar.gz: cf1e2a07df881e98a6087255c654078ceefcc2dca4b47a0cc79506edbbca63c1
3
+ metadata.gz: d91ae3ccc20cfd009bfd1d7faf5e2d67488b1eee292823b0e0ec35cf56f56b58
4
+ data.tar.gz: 22f379f3e2d40936efbab14391e21ec92a26551917286e6451ed99047e258bb7
5
5
  SHA512:
6
- metadata.gz: fd94c45db1d031e7e431f7c6f09f2b6f0f8263787fd4a94c1c5978b14a8e57032febfdc5476705eb55f26c33ef3781554dcf3df9c2e4ea21b57764447cc4d7ed
7
- data.tar.gz: a2aa5c353495efbdf033131569c12f5166297c760ee10ef50911bb55a4aec98f4823c5779660ba57904eb65b06751021d51a579046938e2a445b382cfa188a19
6
+ metadata.gz: aa88cd03b9163346a7b944203ab6882c337d74a7c034987f378eedd80d2b97d3b22c066d651ec6ffa220895d999df6b343c66e30a6914a10fe47ddd46d8584c0
7
+ data.tar.gz: 6dc249dbc302dcbe07f93fa582c16fd93d4f3c0e33dc2bdf40dfcbcf5c29aca4b1e254f254b58658dd13cada5b5dcaf2ed5ced0a24b2a9b4e9983707da582463
data/lib/nylas/client.rb CHANGED
@@ -8,6 +8,7 @@ require_relative "resources/auth"
8
8
  require_relative "resources/webhooks"
9
9
  require_relative "resources/applications"
10
10
  require_relative "resources/folders"
11
+ require_relative "resources/scheduler"
11
12
 
12
13
  module Nylas
13
14
  # Methods to retrieve data from the Nylas API as Ruby objects.
@@ -117,5 +118,11 @@ module Nylas
117
118
  def webhooks
118
119
  Webhooks.new(self)
119
120
  end
121
+
122
+ # The Scheduler resources for your Nylas application.
123
+ # @return [Nylas::Scheduler] Scheduler resources for your Nylas application.
124
+ def scheduler
125
+ Scheduler.new(self)
126
+ end
120
127
  end
121
128
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "resource"
4
+ require_relative "../handler/api_operations"
5
+
6
+ module Nylas
7
+ # Nylas Messages API
8
+ class Availability < Resource
9
+ include ApiOperations::Get
10
+
11
+ # Return availabilities for a configuration.
12
+ # @param query_params [Hash, nil] Query params to pass to the request.
13
+ # @return [Array(Array(Hash), String, String)] The list of configurations, API Request ID,
14
+ # and next cursor.
15
+ def list(query_params: nil)
16
+ get_list(
17
+ path: "#{api_uri}/v3/scheduling/availability",
18
+ query_params: query_params
19
+ )
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "resource"
4
+ require_relative "../handler/api_operations"
5
+
6
+ module Nylas
7
+ # Nylas Messages API
8
+ class Bookings < Resource
9
+ include ApiOperations::Get
10
+ include ApiOperations::Post
11
+ include ApiOperations::Put
12
+ include ApiOperations::Delete
13
+ include ApiOperations::Patch
14
+
15
+ # Return a booking.
16
+ # @param booking_id [String] The id of the booking to return.
17
+ # @param query_params [Hash, nil] Query params to pass to the request.
18
+ # @return [Array(Hash, String)] The booking and API request ID.
19
+ def find(booking_id:, query_params:)
20
+ get(
21
+ path: "#{api_uri}/v3/scheduling/bookings/#{booking_id}",
22
+ query_params: query_params
23
+ )
24
+ end
25
+
26
+ # Create a booking.
27
+ # @param request_body [Hash] The values to create the booking with.
28
+ # @param query_params [Hash, nil] Query params to pass to the request.
29
+ # @return [Array(Hash, String)] The created booking and API Request ID.
30
+ def create(request_body:, query_params:)
31
+ post(
32
+ path: "#{api_uri}/v3/scheduling/bookings",
33
+ request_body: request_body,
34
+ query_params: query_params
35
+ )
36
+ end
37
+
38
+ # Create a booking.
39
+ # @param request_body [Hash] The values to update the booking with.
40
+ # @param booking_id [String] The id of the booking to update.
41
+ # @param query_params [Hash, nil] Query params to pass to the request.
42
+ # @return [Array(Hash, String)] The created booking and API Request ID.
43
+ def update(request_body:, booking_id:, query_params:)
44
+ patch(
45
+ path: "#{api_uri}/v3/scheduling/bookings/#{booking_id}",
46
+ request_body: request_body,
47
+ query_params: query_params
48
+ )
49
+ end
50
+
51
+ # Confirm a booking.
52
+ # @param booking_id [String] The id of the booking to confirm.
53
+ # @param request_body [Hash] The values to update the booking with
54
+ # @param query_params [Hash, nil] Query params to pass to the request.
55
+ # @return [Array(Hash, String)] The updated booking and API Request ID.
56
+ def confirm_booking(booking_id:, request_body:, query_params:)
57
+ put(
58
+ path: "#{api_uri}/v3/scheduling/bookings/#{booking_id}",
59
+ request_body: request_body,
60
+ query_params: query_params
61
+ )
62
+ end
63
+
64
+ # Delete a booking.
65
+ # @param booking_id [String] The id of the booking to delete.
66
+ # @param query_params [Hash, nil] Query params to pass to the request.
67
+ # @return [Array(TrueClass, String)] True and the API Request ID for the delete operation.
68
+ def destroy(booking_id:, query_params:)
69
+ _, request_id = delete(
70
+ path: "#{api_uri}/v3/scheduling/bookings/#{booking_id}",
71
+ query_params: query_params
72
+ )
73
+
74
+ [true, request_id]
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "resource"
4
+ require_relative "../handler/api_operations"
5
+
6
+ module Nylas
7
+ # Nylas Scheduler Configurations API
8
+ class Configurations < Resource
9
+ include ApiOperations::Get
10
+ include ApiOperations::Post
11
+ include ApiOperations::Put
12
+ include ApiOperations::Delete
13
+
14
+ # Return all Scheduler Configurations.
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, String)] The list of configurations, API Request ID,
19
+ # and next cursor.
20
+ def list(identifier:, query_params: nil)
21
+ get_list(
22
+ path: "#{api_uri}/v3/grants/#{identifier}/scheduling/configurations",
23
+ query_params: query_params
24
+ )
25
+ end
26
+
27
+ # Return a Configuration.
28
+ #
29
+ # @param identifier [String] Grant ID or email account to query.
30
+ # @param configuration_id [String] The id of the configuration to return.
31
+ # @return [Array(Hash, String)] The configuration and API request ID.
32
+ def find(identifier:, configuration_id:)
33
+ get(
34
+ path: "#{api_uri}/v3/grants/#{identifier}/scheduling/configurations/#{configuration_id}"
35
+ )
36
+ end
37
+
38
+ # Create a configuration.
39
+ #
40
+ # @param identifier [String] Grant ID or email account in which to create the object.
41
+ # @param request_body [Hash] The values to create the configuration with.
42
+ # @return [Array(Hash, String)] The created configuration and API Request ID.
43
+ def create(identifier:, request_body:)
44
+ post(
45
+ path: "#{api_uri}/v3/grants/#{identifier}/scheduling/configurations",
46
+ request_body: request_body
47
+ )
48
+ end
49
+
50
+ # Update a configuration.
51
+ #
52
+ # @param identifier [String] Grant ID or email account in which to update an object.
53
+ # @param configuration_id [String] The id of the configuration to update.
54
+ # @param request_body [Hash] The values to update the configuration with
55
+ # @return [Array(Hash, String)] The updated configuration and API Request ID.
56
+ def update(identifier:, configuration_id:, request_body:)
57
+ put(
58
+ path: "#{api_uri}/v3/grants/#{identifier}/scheduling/configurations/#{configuration_id}",
59
+ request_body: request_body
60
+ )
61
+ end
62
+
63
+ # Delete a configuration.
64
+ #
65
+ # @param identifier [String] Grant ID or email account from which to delete an object.
66
+ # @param configuration_id [String] The id of the configuration to delete.
67
+ # @return [Array(TrueClass, String)] True and the API Request ID for the delete operation.
68
+ def destroy(identifier:, configuration_id:)
69
+ _, request_id = delete(
70
+ path: "#{api_uri}/v3/grants/#{identifier}/scheduling/configurations/#{configuration_id}"
71
+ )
72
+
73
+ [true, request_id]
74
+ end
75
+ end
76
+ end
@@ -27,10 +27,12 @@ module Nylas
27
27
  #
28
28
  # @param identifier [String] Grant ID or email account to query.
29
29
  # @param folder_id [String] The id of the folder to return.
30
+ # @param query_params [Hash, nil] Query params to pass to the request.
30
31
  # @return [Array(Hash, String)] The folder and API request ID.
31
- def find(identifier:, folder_id:)
32
+ def find(identifier:, folder_id:, query_params: nil)
32
33
  get(
33
- path: "#{api_uri}/v3/grants/#{identifier}/folders/#{folder_id}"
34
+ path: "#{api_uri}/v3/grants/#{identifier}/folders/#{folder_id}",
35
+ query_params: query_params
34
36
  )
35
37
  end
36
38
 
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./configurations"
4
+ require_relative "./sessions"
5
+ require_relative "./bookings"
6
+ require_relative "./availability"
7
+
8
+ module Nylas
9
+ # Nylas Scheduler API
10
+ # This class provides access to the Scheduler resources, including
11
+ # configurations, bookings, sessions, and availability.
12
+ #
13
+ # @attr_reader [Nylas::Configurations] configurations The Scheduler configurations resource for your
14
+ # Nylas application.
15
+ # @attr_reader [Nylas::Bookings] bookings The Scheduler bookings resource for your
16
+ # Nylas application.
17
+ # @attr_reader [Nylas::Sessions] sessions The Scheduler sessions resource for your
18
+ # Nylas application.
19
+ # @attr_reader [Nylas::Availability] availability The Scheduler availability resource for your
20
+ # Nylas application.
21
+ class Scheduler
22
+ attr_reader :configurations, :sessions, :bookings, :availability
23
+
24
+ # Initializes the Scheduler class.
25
+ #
26
+ # @param api_client [APIClient] The Nylas API client instance for making requests.
27
+ def initialize(api_client)
28
+ @api_client = api_client
29
+ @configurations = Configurations.new(@api_client)
30
+ @bookings = Bookings.new(@api_client)
31
+ @sessions = Sessions.new(@api_client)
32
+ @availability = Availability.new(@api_client)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "resource"
4
+ require_relative "../handler/api_operations"
5
+
6
+ module Nylas
7
+ # Nylas Messages API
8
+ class Sessions < Resource
9
+ include ApiOperations::Post
10
+ include ApiOperations::Delete
11
+
12
+ # Create a session for a configuration.
13
+ # @param request_body [Hash] The values to create a configuration sessions.
14
+ # @return [Array(Hash, String)] The created configuration and API Request ID.
15
+ def create(request_body:)
16
+ post(
17
+ path: "#{api_uri}/v3/scheduling/sessions",
18
+ request_body: request_body
19
+ )
20
+ end
21
+
22
+ # Delete a session for a configuration.
23
+ # @param session_id [String] The id of the session to delete.
24
+ # @return [Array(TrueClass, String)] True and the API Request ID for the delete operation.
25
+ def destroy(session_id:)
26
+ _, request_id = delete(
27
+ path: "#{api_uri}/v3/scheduling/sessions/#{session_id}"
28
+ )
29
+
30
+ [true, request_id]
31
+ end
32
+ end
33
+ end
@@ -26,10 +26,12 @@ module Nylas
26
26
  #
27
27
  # @param identifier [String] Grant ID or email account to query.
28
28
  # @param thread_id [String] The id of the thread to return.
29
+ # @param query_params [Hash, nil] Query params to pass to the request.
29
30
  # @return [Array(Hash, String)] The thread and API request ID.
30
- def find(identifier:, thread_id:)
31
+ def find(identifier:, thread_id:, query_params: nil)
31
32
  get(
32
- path: "#{api_uri}/v3/grants/#{identifier}/threads/#{thread_id}"
33
+ path: "#{api_uri}/v3/grants/#{identifier}/threads/#{thread_id}",
34
+ query_params: query_params
33
35
  )
34
36
  end
35
37
 
@@ -91,9 +91,10 @@ module Nylas
91
91
 
92
92
  # Build the request to attach a file to a message/draft object.
93
93
  # @param file_path [String] The path to the file to attach.
94
+ # @param filename [String] The name of the attached file. Optional, derived from file_path by default.
94
95
  # @return [Hash] The request that will attach the file to the message/draft
95
- def self.attach_file_request_builder(file_path)
96
- filename = File.basename(file_path)
96
+ def self.attach_file_request_builder(file_path, filename = nil)
97
+ filename ||= File.basename(file_path)
97
98
  content_type = MIME::Types.type_for(file_path)
98
99
  content_type = if !content_type.nil? && !content_type.empty?
99
100
  content_type.first.to_s
data/lib/nylas/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nylas
4
- VERSION = "6.2.0"
4
+ VERSION = "6.2.1"
5
5
  end
data/lib/nylas.rb CHANGED
@@ -43,5 +43,6 @@ require_relative "nylas/resources/smart_compose"
43
43
  require_relative "nylas/resources/threads"
44
44
  require_relative "nylas/resources/redirect_uris"
45
45
  require_relative "nylas/resources/webhooks"
46
+ require_relative "nylas/resources/scheduler"
46
47
 
47
48
  require_relative "nylas/utils/file_utils"
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.2.0
4
+ version: 6.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nylas, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-24 00:00:00.000000000 Z
11
+ date: 2024-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -251,7 +251,10 @@ files:
251
251
  - lib/nylas/resources/applications.rb
252
252
  - lib/nylas/resources/attachments.rb
253
253
  - lib/nylas/resources/auth.rb
254
+ - lib/nylas/resources/availability.rb
255
+ - lib/nylas/resources/bookings.rb
254
256
  - lib/nylas/resources/calendars.rb
257
+ - lib/nylas/resources/configurations.rb
255
258
  - lib/nylas/resources/connectors.rb
256
259
  - lib/nylas/resources/contacts.rb
257
260
  - lib/nylas/resources/credentials.rb
@@ -262,10 +265,11 @@ files:
262
265
  - lib/nylas/resources/messages.rb
263
266
  - lib/nylas/resources/redirect_uris.rb
264
267
  - lib/nylas/resources/resource.rb
268
+ - lib/nylas/resources/scheduler.rb
269
+ - lib/nylas/resources/sessions.rb
265
270
  - lib/nylas/resources/smart_compose.rb
266
271
  - lib/nylas/resources/threads.rb
267
272
  - lib/nylas/resources/webhooks.rb
268
- - lib/nylas/test.rb
269
273
  - lib/nylas/utils/file_utils.rb
270
274
  - lib/nylas/version.rb
271
275
  homepage:
@@ -293,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
297
  - !ruby/object:Gem::Version
294
298
  version: '0'
295
299
  requirements: []
296
- rubygems_version: 3.4.10
300
+ rubygems_version: 3.5.22
297
301
  signing_key:
298
302
  specification_version: 4
299
303
  summary: Gem for interacting with the Nylas API
data/lib/nylas/test.rb DELETED
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'nylas'
4
-
5
- nylas = Nylas::Client.new(
6
- api_key: "nyk_v0_tRgvnXpqESPGVaaf5QTDzoSYet94natpftScKTT8auH6Www49RJUQ1WJ5VAWplqu"
7
- )
8
-
9
- # file = Nylas::FileUtils.attach_file_request_builder("/Users/mostafa.r@nylas.com/Downloads/05i7gc9wvgv51.jpg")
10
- file = Nylas::FileUtils.attach_file_request_builder("/Users/mostafa.r@nylas.com/Downloads/zara_reciept.pdf")
11
-
12
- request_body = {
13
- subject: "Ruby SDK attachment test - 8.30.24 x1",
14
- to: [{email: "mostafa.r@nylas.com"}],
15
- attachments: [file],
16
- }
17
-
18
- puts "Before request"
19
- puts request_body
20
-
21
- begin
22
- email, _ = nylas.messages.send(identifier: "mostafa.r@nylas.com", request_body: request_body)
23
- puts "Email sent successfully: #{email}"
24
- rescue StandardError => e
25
- puts "An error occurred: #{e.message}"
26
- end
27
-
28
- puts "After request"
29
- puts request_body
30
-
31
- # begin
32
- # email, _ = nylas.messages.send(identifier: "mostafa.r@nylas.com", request_body: request_body)
33
- # puts "Email sent successfully: #{email}"
34
- # rescue StandardError => e1
35
- # puts "An error occurred: #{e1.message}"
36
- # end