class Nylas::Drafts

Nylas Drafts API

Public Instance Methods

create(identifier:, request_body:) click to toggle source

Create an draft.

@param identifier [String] Grant ID or email account in which to create the draft. @param 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 pass in base64 encoded strings if the total attachment size is less than 3mb.
You can also use {FileUtils::attach_file_request_builder} to build each object attach.

@return [Array(Hash, String)] The created draft and API Request ID.

# File lib/nylas/resources/drafts.rb, line 46
def create(identifier:, request_body:)
  payload, opened_files = FileUtils.handle_message_payload(request_body)

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

  opened_files.each(&:close)

  response
end
destroy(identifier:, draft_id:) click to toggle source

Delete an draft.

@param identifier [String] Grant ID or email account from which to delete an object. @param draft_id [String] The id of the draft to delete. @return [Array(TrueClass, String)] True and the API Request ID for the delete operation.

# File lib/nylas/resources/drafts.rb, line 86
def destroy(identifier:, draft_id:)
  _, request_id = delete(
    path: "#{api_uri}/v3/grants/#{identifier}/drafts/#{draft_id}"
  )

  [true, request_id]
end
find(identifier:, draft_id:) click to toggle source

Return an draft.

@param identifier [String] Grant ID or email account to query. @param draft_id [String] The id of the draft to return. @return [Array(Hash, String)] The draft and API request ID.

# File lib/nylas/resources/drafts.rb, line 32
def find(identifier:, draft_id:)
  get(
    path: "#{api_uri}/v3/grants/#{identifier}/drafts/#{draft_id}"
  )
end
list(identifier:, query_params: nil) click to toggle source

Return all drafts.

@param identifier [String] Grant ID or email account to query. @param query_params [Hash, nil] Query params to pass to the request. @return [Array(Array(Hash), String, String)] The list of drafts, API Request ID, and next cursor.

# File lib/nylas/resources/drafts.rb, line 20
def list(identifier:, query_params: nil)
  get_list(
    path: "#{api_uri}/v3/grants/#{identifier}/drafts",
    query_params: query_params
  )
end
send(identifier:, draft_id:) click to toggle source

Send an draft.

@param identifier [String] Grant ID or email account from which to send the draft. @param draft_id [String] The id of the draft to send. @return [Array(Hash, String)] The sent message draft and the API Request ID.

# File lib/nylas/resources/drafts.rb, line 99
def send(identifier:, draft_id:)
  post(
    path: "#{api_uri}/v3/grants/#{identifier}/drafts/#{draft_id}"
  )
end
update(identifier:, draft_id:, request_body:) click to toggle source

Update an draft.

@param identifier [String] Grant ID or email account in which to update the draft. @param draft_id [String] The id of the draft to update. @param 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 pass in base64 encoded strings if the total attachment size is less than 3mb.
You can also use {FileUtils::attach_file_request_builder} to build each object attach.

@return [Array(Hash, String)] The updated draft and API Request ID.

# File lib/nylas/resources/drafts.rb, line 68
def update(identifier:, draft_id:, request_body:)
  payload, opened_files = FileUtils.handle_message_payload(request_body)

  response = put(
    path: "#{api_uri}/v3/grants/#{identifier}/drafts/#{draft_id}",
    request_body: payload
  )

  opened_files.each(&:close)

  response
end