Class: WavixApi::V2::Messages::Attachments::Find

Inherits:
Object
  • Object
show all
Includes:
BaseMethods
Defined in:
lib/wavix_api/v2/messages/attachments/find.rb

Constant Summary

Constants included from BaseMethods

BaseMethods::AVAILABLE_TRANSCRIPTION_LANGUAGES, BaseMethods::BASE_DATE_FORMAT, BaseMethods::DEFAULT_HEADERS, BaseMethods::IP_REGEXP, BaseMethods::LIST_OF_DIGITS_REGEXP, BaseMethods::ONLY_DIGITS_REGEXP, BaseMethods::ONLY_ID_SCHEMA, BaseMethods::ONLY_UUID_SCHEMA, BaseMethods::PAGINATION_SCHEMA

Instance Attribute Summary

Attributes included from BaseMethods

#client, #id, #params

Class Method Summary collapse

Instance Method Summary collapse

Methods included from BaseMethods

#delete, #download, #file_extention, #format_file, #get, #patch, #post, #put, #raise_error, #stringify_dates!, #validate!, #validate_dates!

Constructor Details

#initialize(params = {}) ⇒ Find



22
23
24
25
# File 'lib/wavix_api/v2/messages/attachments/find.rb', line 22

def initialize(params = {})
  super(params)
  @id = nil
end

Class Method Details

.call(params = {}, save_path: nil) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/wavix_api/v2/messages/attachments/find.rb', line 28

def call(params = {}, save_path: nil)
  instance = new(params)
  instance.validate!
  id = instance.params[:id]
  format = instance.params[:format]

  instance.download(
    path(instance.params[:sms_id], id, format),
    headers:
      {
        'Content-Disposition' => "attachment; filename='#{id}.#{format}}'",
        'Content-Type' => 'application/octet-stream',
        'Content-Transfer-Encoding' => 'binary'
      },
    save_path: save_path
  )
end

.path(sms_id, id, format) ⇒ Object



46
47
48
49
# File 'lib/wavix_api/v2/messages/attachments/find.rb', line 46

def path(sms_id, id, format)
  ['v2/messages/attachments', sms_id, "#{id}.#{format}"]
    .join('/')
end

Instance Method Details

#call(save_path: nil) ⇒ Object



52
53
54
# File 'lib/wavix_api/v2/messages/attachments/find.rb', line 52

def call(save_path: nil)
  self.class.call(params, save_path: save_path)
end