Method: FileUploadObject#initialize

Defined in:
lib/notion_ruby_mapping/objects/file_upload_object.rb

#initialize(fname:, external_url: nil) ⇒ FileUploadObject

Returns a new instance of FileUploadObject.

Parameters:

  • fname (String)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/notion_ruby_mapping/objects/file_upload_object.rb', line 6

def initialize(fname:, external_url: nil)
  @fname = fname
  if external_url
    payload = {mode: "external_url", external_url: external_url, filename: fname}
    create payload
  else
    raise StandardError, "FileUploadObject requires a valid file name: #{fname}" unless File.exist?(fname)

    @file_size = File.size fname
    @number_of_parts = (@file_size - 1) / MAX_SIZE + 1
    payload = if @number_of_parts == 1
                {}
              else
                {number_of_parts: @number_of_parts, mode: "multi_part",
                 filename: File.basename(@fname)}
              end
    create payload
    if @number_of_parts == 1
      single_file_upload
    else
      @temp_files = FileUploadObject.split_to_small_files(@fname, MAX_SIZE)
      @temp_files.each_with_index do |temp_file, i|
        single_file_upload temp_file.path, i + 1
        temp_file.close
        temp_file.unlink
      end
      NotionRubyMapping::NotionCache.instance.complete_a_file_upload_request @id
    end
  end
end