Class: Nylas::Messages

Inherits:
Resource show all
Includes:
ApiOperations::Delete, ApiOperations::Get, ApiOperations::Post, ApiOperations::Put
Defined in:
lib/nylas/resources/messages.rb

Overview

Nylas Messages API

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sdk_instance) ⇒ Messages

Initializes the messages resource.

Parameters:

  • sdk_instance (Nylas::API)

    The API instance to which the resource is bound.



20
21
22
23
# File 'lib/nylas/resources/messages.rb', line 20

def initialize(sdk_instance)
  super(sdk_instance)
  @smart_compose = SmartCompose.new(sdk_instance)
end

Instance Attribute Details

#smart_composeObject (readonly)

Returns the value of attribute smart_compose.



16
17
18
# File 'lib/nylas/resources/messages.rb', line 16

def smart_compose
  @smart_compose
end

Instance Method Details

#destroy(identifier:, message_id:) ⇒ Array(TrueClass, String)

Delete a message.

Parameters:

  • identifier (String)

    Grant ID or email account from which to delete an object.

  • message_id (String)

    The id of the message to delete.

Returns:

  • (Array(TrueClass, String))

    True and the API Request ID for the delete operation.



66
67
68
69
70
71
72
# File 'lib/nylas/resources/messages.rb', line 66

def destroy(identifier:, message_id:)
  _, request_id = delete(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/#{message_id}"
  )

  [true, request_id]
end

#find(identifier:, message_id:) ⇒ Array(Hash, String)

Return a message.

Parameters:

  • identifier (String)

    Grant ID or email account to query.

  • message_id (String)

    The id of the message to return.

Returns:

  • (Array(Hash, String))

    The message and API request ID.



42
43
44
45
46
# File 'lib/nylas/resources/messages.rb', line 42

def find(identifier:, message_id:)
  get(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/#{message_id}"
  )
end

#find_scheduled_messages(identifier:, schedule_id:) ⇒ Array(Hash, String)

Retrieve your scheduled messages.

Parameters:

  • identifier (String)

    Grant ID or email account from which to list the scheduled messages from.

  • schedule_id (String)

    The id of the scheduled message to stop.

Returns:

  • (Array(Hash, String))

    The scheduled message and the API Request ID.



118
119
120
121
122
# File 'lib/nylas/resources/messages.rb', line 118

def find_scheduled_messages(identifier:, schedule_id:)
  get(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/schedules/#{schedule_id}"
  )
end

#list(identifier:, query_params: nil) ⇒ Array(Array(Hash), String, String)

Return all messages.

Parameters:

  • identifier (String)

    Grant ID or email account to query.

  • query_params (Hash, nil) (defaults to: nil)

    Query params to pass to the request.

Returns:

  • (Array(Array(Hash), String, String))

    The list of messages, API Request ID, and next cursor.



30
31
32
33
34
35
# File 'lib/nylas/resources/messages.rb', line 30

def list(identifier:, query_params: nil)
  get_list(
    path: "#{api_uri}/v3/grants/#{identifier}/messages",
    query_params: query_params
  )
end

#list_scheduled_messages(identifier:) ⇒ Array(Array(Hash), String)

Retrieve your scheduled messages.

Parameters:

  • identifier (String)

    Grant ID or email account from which to find the scheduled message from.

Returns:

  • (Array(Array(Hash), String))

    The list of scheduled messages and the API Request ID.



107
108
109
110
111
# File 'lib/nylas/resources/messages.rb', line 107

def list_scheduled_messages(identifier:)
  get(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/schedules"
  )
end

#send(identifier:, request_body:) ⇒ Array(Hash, String)

Send a message.

Parameters:

  • identifier (String)

    Grant ID or email account from which to delete an object.

  • request_body (Hash)

    The values to create the message with. If you’re attaching files, you must pass an array of [File] objects, or you can use FileUtils::attach_file_request_builder to build each object attach.

Returns:

  • (Array(Hash, String))

    The sent message and the API Request ID.



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/nylas/resources/messages.rb', line 81

def send(identifier:, request_body:)
  payload = request_body
  opened_files = []

  # Use form data only if the attachment size is greater than 3mb
  attachments = request_body[:attachments] || request_body["attachments"] || []
  attachment_size = attachments&.sum { |attachment| attachment[:size] || 0 } || 0

  if attachment_size >= FileUtils::FORM_DATA_ATTACHMENT_SIZE
    payload, opened_files = FileUtils.build_form_request(request_body)
  end

  response = post(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/send",
    request_body: payload
  )

  opened_files.each(&:close)

  response
end

#stop_scheduled_messages(identifier:, schedule_id:) ⇒ Array(Hash, String)

Stop a scheduled message.

Parameters:

  • identifier (String)

    Grant ID or email account from which to list the scheduled messages from.

  • schedule_id (String)

    The id of the scheduled message to stop..

Returns:

  • (Array(Hash, String))

    The scheduled message and the API Request ID.



129
130
131
132
133
# File 'lib/nylas/resources/messages.rb', line 129

def stop_scheduled_messages(identifier:, schedule_id:)
  delete(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/schedules/#{schedule_id}"
  )
end

#update(identifier:, message_id:, request_body:) ⇒ Array(Hash, String)

Update a message.

Parameters:

  • identifier (String)

    Grant ID or email account in which to update an object.

  • message_id (String)

    The id of the message to update.

  • request_body (Hash)

    The values to update the message with

Returns:

  • (Array(Hash, String))

    The updated message and API Request ID.



54
55
56
57
58
59
# File 'lib/nylas/resources/messages.rb', line 54

def update(identifier:, message_id:, request_body:)
  put(
    path: "#{api_uri}/v3/grants/#{identifier}/messages/#{message_id}",
    request_body: request_body
  )
end