class Plivo::Resources::ComplianceDocumentsInterface

Public Class Methods

new(client, resource_list_json = nil) click to toggle source
Calls superclass method Plivo::Base::ResourceInterface::new
# File lib/plivo/resources/regulatory_compliance.rb, line 245
def initialize(client, resource_list_json = nil)
  @_name = 'ComplianceDocument'
  @_resource_type = ComplianceDocument
  @_identifier_string = 'compliance_document'
  super
end

Public Instance Methods

create(end_user_id: nil , document_type_id: nil, alias_: nil, file: nil, **options) click to toggle source

Create a ComplianceDocument @param [String] end_user_id @param [String] document_type_id @param [String] alias_ @param [String] file @param [Hash] options @return [ComplianceDocument] ComplianceDocument

# File lib/plivo/resources/regulatory_compliance.rb, line 307
def create(end_user_id: nil , document_type_id: nil, alias_: nil, file: nil, **options)
  valid_param?(:end_user_id, end_user_id, [String, Symbol], true)
  valid_param?(:document_type_id, document_type_id, [String, Symbol], true)
  valid_param?(:alias, :alias_, [String, Symbol], true)

  params = {
    end_user_id: end_user_id,
    document_type_id: document_type_id,
    alias: alias_
  }

  if !options.nil?
    valid_param?(:options, options, Hash, false) 
    options.each do |key, value|
      if valid_param?(key, value, [String, Symbol], false)
        params[key] = value
      end
    end
  end

  upload(file, params) if !file.nil?

  perform_create(params, use_multipart_conn: true)
end
delete(compliance_document_id) click to toggle source

Delete a ComplianceDocument @param [String] compliance_document_id

# File lib/plivo/resources/regulatory_compliance.rb, line 352
def delete(compliance_document_id)
  valid_param?(:compliance_document_id, compliance_document_id, [String, Symbol], true)
  ComplianceDocument.new(@_client, resource_id: compliance_document_id).delete
end
get(compliance_document_id) click to toggle source

Get a ComplianceDocument @param [String] compliance_document_id @return [ComplianceDocument] ComplianceDocument

# File lib/plivo/resources/regulatory_compliance.rb, line 255
def get(compliance_document_id)
  valid_param?(:compliance_document_id, compliance_document_id, [String, Symbol], true)
  perform_get(compliance_document_id)
end
list(options = nil) click to toggle source

List all ComplianceDocuments @option options [Hash] :options @option options [Int] :offset @option options [Int] :limit @return [Hash]

# File lib/plivo/resources/regulatory_compliance.rb, line 265
def list(options = nil)
  return perform_list if options.nil?
  valid_param?(:options, options, Hash, false)

  params = {}

  params_expected = %i[ end_user_id document_type_id ]
  params_expected.each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], false)
      params[param] = options[param]
    end
  end

  if options.key?(:alias) && valid_param?(:alias, options[:alias],[String, Symbol], false)
    params[:alias] = options[:alias]
  end

  %i[offset limit].each do |param|
    if options.key?(param) && valid_param?(param, options[param],
                                           [Integer], true)
      params[param] = options[param]
    end
  end

  raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0

  if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
    raise_invalid_request('The maximum number of results that can be '\
    "fetched is 20. limit can't be more than 20 or less than 1")
  end

  perform_list(params)
end
update(compliance_document_id, options = nil) click to toggle source

Update a ComplianceDocument @param [String] compliance_document_id @param [Hash] options return [ComplianceDocument] ComplianceDocument

# File lib/plivo/resources/regulatory_compliance.rb, line 336
def update(compliance_document_id, options = nil)
  valid_param?(:compliance_document_id, compliance_document_id, [String, Symbol], true)
  valid_param?(:options, options, Hash, true) if !options.nil?
  params = {}

  options.each do |key, value|
    params[key] = value
  end

  upload(params[:file], params) if params.key?(:file)

  ComplianceDocument.new(@_client, resource_id: compliance_document_id).update(params)
end

Private Instance Methods

upload(filepath, params) click to toggle source
# File lib/plivo/resources/regulatory_compliance.rb, line 359
def upload(filepath, params)
  file_extension = filepath.split('.')[-1]
  
  content_type = case file_extension
                    when 'jpeg' then 'image/jpeg'
                    when 'jpg' then 'image/jpeg'
                    when 'png' then 'image/png'
                    when 'pdf' then 'application/pdf'
                    else raise_invalid_request("#{file_extension} is not supported for upload")
                  end
  
  params[:file] = Faraday::UploadIO.new(filepath, content_type)
end