Sha256: 116506eb1c5f7ce753cf6fe22de728f12b6683511ee714e4ddbbc73a88537f0a

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

require 'restful_model'

module Nylas
  class Draft < Message

    parameter :thread_id
    parameter :version
    parameter :reply_to_message_id
    parameter :file_ids

    def attach(file)
      file.save! unless file.id
      @file_ids ||= []
      @file_ids.push(file.id)
    end

    def as_json(options = {})
      # FIXME @karim: this is a bit of a hack --- Draft inherits Message
      # was okay until we overrode Message#as_json to allow updating folders/labels.
      # This broke draft sending, which relies on RestfulModel::as_json to work.
      grandparent = self.class.superclass.superclass
      meth = grandparent.instance_method(:as_json)
      meth.bind(self).call
    end

    def send!
      url = @_api.url_for_path("/send")
      if @id
        data = {:draft_id => @id, :version => @version}
      else
        data = as_json()
      end

      ::RestClient.post(url, data.to_json, :content_type => :json) do |response, request, result|
        response = Nylas.interpret_response(result, response, {:expected_class => Object})
        self.inflate(response)
      end

      self
    end

    def destroy
      ::RestClient::Request.execute(method: :delete, url: self.url, payload: ({ :version => self.version }).to_json) do |response, request, result|
        response = Nylas.interpret_response(result, response, options={:raw_response=>true})
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nylas-3.0.0 lib/draft.rb