Class: ImageKitIo::ApiService::File
- Inherits:
-
Object
- Object
- ImageKitIo::ApiService::File
- Includes:
- Constantable, Utils::OptionValidator
- Defined in:
- lib/imagekitio/api_service/file.rb
Instance Method Summary collapse
- #copy(source_file_path: nil, destination_path: nil, include_file_versions: false) ⇒ Object
- #delete(file_id: nil) ⇒ Object
- #delete_file_version(file_id: nil, version_id: nil) ⇒ Object
- #details(file_identifier: nil) ⇒ Object
- #get_file_version_detail(file_id: nil, version_id: nil) ⇒ Object
- #get_file_versions(file_id: nil) ⇒ Object
- #get_metadata(file_id: nil) ⇒ Object
- #get_metadata_from_remote_url(remote_file_url: nil) ⇒ Object
-
#initialize(req_obj) ⇒ File
constructor
This File class holds file related operations like upload, list etc.
- #list(**options) ⇒ Object
- #move(source_file_path: nil, destination_path: nil) ⇒ Object
- #purge_cache(file_url: nil) ⇒ Object
- #purge_cache_status(request_id: nil) ⇒ Object
- #rename(file_path: nil, new_file_name: nil, **options) ⇒ Object
- #restore_file_version(file_id: nil, version_id: nil) ⇒ Object
- #stream_file(remote_file_url: nil, &block) ⇒ Object
- #update_details(file_id: nil, **options) ⇒ Object
-
#upload(file: nil, file_name: nil, **options) ⇒ Object
uploads files with required arguments, supports bot url and binary Options types: - ‘extensions` should be array of hash eg: option = [ { ’name’ => ‘remove-bg’, ‘options’ => { ‘add_shadow’ => ‘true’ } }, { ‘name’ => ‘google-auto-tagging’, ‘minConfidence’ => 80 } ] - ‘custom_metadata` should be hash eg: option = { “SKU”: “VS882HJ2JD”, “price”: 599.99, “brand”: “H&M”, “discount”: 30 }.
Methods included from Constantable
Methods included from Utils::OptionValidator
Methods included from Utils::Formatter
camel_to_snake, format_to_json, request_formatter, snake_to_camel
Constructor Details
#initialize(req_obj) ⇒ File
This File class holds file related operations like upload, list etc
14 15 16 |
# File 'lib/imagekitio/api_service/file.rb', line 14 def initialize(req_obj) @req_obj = req_obj end |
Instance Method Details
#copy(source_file_path: nil, destination_path: nil, include_file_versions: false) ⇒ Object
187 188 189 190 191 192 193 194 |
# File 'lib/imagekitio/api_service/file.rb', line 187 def copy(source_file_path: nil, destination_path: nil, include_file_versions: false) if source_file_path == '' || source_file_path.nil? || destination_path == '' || destination_path.nil? raise ArgumentError, 'parameters required' end url = "#{constants.BASE_URL}/copy" payload = { 'sourceFilePath': source_file_path, 'destinationPath': destination_path, 'includeFileVersions': include_file_versions }.to_json @req_obj.request('post', url, @req_obj.create_headers, payload) end |
#delete(file_id: nil) ⇒ Object
143 144 145 146 147 148 149 150 151 |
# File 'lib/imagekitio/api_service/file.rb', line 143 def delete(file_id: nil) # Delete a file_id by file_id if file_id == "" || file_id.nil? raise ArgumentError, "file_id is required" end url = "#{constants.BASE_URL}/#{file_id}" headers = @req_obj.create_headers @req_obj.request("delete", url, headers) end |
#delete_file_version(file_id: nil, version_id: nil) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/imagekitio/api_service/file.rb', line 100 def delete_file_version(file_id: nil, version_id: nil) if file_id == "" || file_id.nil? raise ArgumentError, "file_id is required" end if version_id == "" || version_id.nil? raise ArgumentError, "version_id is required" end url = "#{constants.BASE_URL}/#{file_id}/versions/#{version_id}" headers = @req_obj.create_headers @req_obj.request('delete', url, headers) end |
#details(file_identifier: nil) ⇒ Object
124 125 126 127 128 129 130 131 132 |
# File 'lib/imagekitio/api_service/file.rb', line 124 def details(file_identifier: nil) # Get detail of file by file_identifier if file_identifier == "" || file_identifier.nil? raise ArgumentError, "file_identifier is required" end url = "#{constants.BASE_URL}/#{file_identifier}/details/" headers = @req_obj.create_headers @req_obj.request("get", url, headers) end |
#get_file_version_detail(file_id: nil, version_id: nil) ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/imagekitio/api_service/file.rb', line 88 def get_file_version_detail(file_id: nil, version_id: nil) if file_id == "" || file_id.nil? raise ArgumentError, "file_id is required" end if version_id == "" || version_id.nil? raise ArgumentError, "version_id is required" end url = "#{constants.BASE_URL}/#{file_id}/versions/#{version_id}" headers = @req_obj.create_headers @req_obj.request('get', url, headers) end |
#get_file_versions(file_id: nil) ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/imagekitio/api_service/file.rb', line 79 def get_file_versions(file_id: nil) if file_id == '' || file_id.nil? raise ArgumentError, 'file_id is required' end url = "#{constants.BASE_URL}/#{file_id}/versions" headers = @req_obj.create_headers @req_obj.request('get', url, headers) end |
#get_metadata(file_id: nil) ⇒ Object
134 135 136 137 138 139 140 141 |
# File 'lib/imagekitio/api_service/file.rb', line 134 def (file_id: nil) # Get metadata of a file by file_id if file_id == "" || file_id.nil? raise ArgumentError, "file_id is required" end url = "#{constants.BASE_URL}/#{file_id}/metadata" @req_obj.request("get", url, @req_obj.create_headers) end |
#get_metadata_from_remote_url(remote_file_url: nil) ⇒ Object
172 173 174 175 176 177 178 |
# File 'lib/imagekitio/api_service/file.rb', line 172 def (remote_file_url: nil) if remote_file_url == "" || remote_file_url.nil? raise ArgumentError, "remote_file_url is required" end url = "#{constants.REMOTE_METADATA_FULL_URL}?url=#{remote_file_url}" @req_obj.request("get", url, @req_obj.create_headers) end |
#list(**options) ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/imagekitio/api_service/file.rb', line 69 def list(**) # returns list of files on ImageKitIo Server # :options dictionary of options = request_formatter( || {}) raise KeyError(constants.LIST_FILES_INPUT_MISSING) unless .is_a?(Hash) url = constants.BASE_URL headers = @req_obj.create_headers.update({params: }) @req_obj.request("get", url, headers, ) end |
#move(source_file_path: nil, destination_path: nil) ⇒ Object
196 197 198 199 200 201 202 203 |
# File 'lib/imagekitio/api_service/file.rb', line 196 def move(source_file_path: nil, destination_path: nil) if source_file_path == '' || source_file_path.nil? || destination_path == '' || destination_path.nil? raise ArgumentError, 'parameters required' end url = "#{constants.BASE_URL}/move" payload = { 'sourceFilePath': source_file_path, 'destinationPath': destination_path } @req_obj.request('post', url, @req_obj.create_headers, payload) end |
#purge_cache(file_url: nil) ⇒ Object
153 154 155 156 157 158 159 160 161 |
# File 'lib/imagekitio/api_service/file.rb', line 153 def purge_cache(file_url: nil) # purges cache from server by file_url if file_url == "" || file_url.nil? raise ArgumentError, "file_url is required" end url = "#{constants.BASE_URL}/purge" payload = {'url': file_url} @req_obj.request("post", url, @req_obj.create_headers, payload) end |
#purge_cache_status(request_id: nil) ⇒ Object
163 164 165 166 167 168 169 170 |
# File 'lib/imagekitio/api_service/file.rb', line 163 def purge_cache_status(request_id: nil) # This function is to get cache_status if request_id == "" || request_id.nil? raise ArgumentError, "remote_file_url is required" end url = "#{constants.BASE_URL}/purge/#{request_id}" @req_obj.request("get", url, @req_obj.create_headers) end |
#rename(file_path: nil, new_file_name: nil, **options) ⇒ Object
205 206 207 208 209 210 211 212 |
# File 'lib/imagekitio/api_service/file.rb', line 205 def rename(file_path: nil, new_file_name: nil, **) if file_path == '' || file_path.nil? || new_file_name == '' || new_file_name.nil? raise ArgumentError, 'parameters required' end url = "#{constants.BASE_URL}/rename" payload = { 'filePath': file_path, 'newFileName': new_file_name }.merge(request_formatter()).to_json @req_obj.request('put', url, @req_obj.create_headers, payload) end |
#restore_file_version(file_id: nil, version_id: nil) ⇒ Object
112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/imagekitio/api_service/file.rb', line 112 def restore_file_version(file_id: nil, version_id: nil) if file_id == "" || file_id.nil? raise ArgumentError, "file_id is required" end if version_id == "" || version_id.nil? raise ArgumentError, "version_id is required" end url = "#{constants.BASE_URL}/#{file_id}/versions/#{version_id}/restore" headers = @req_obj.create_headers @req_obj.request('put', url, headers) end |
#stream_file(remote_file_url: nil, &block) ⇒ Object
180 181 182 183 184 185 |
# File 'lib/imagekitio/api_service/file.rb', line 180 def stream_file(remote_file_url: nil, &block) if remote_file_url == '' || remote_file_url.nil? raise ArgumentError, 'remote_file_url is required' end @req_obj.request_stream('get', remote_file_url, headers: @req_obj.create_headers, &block) end |
#update_details(file_id: nil, **options) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/imagekitio/api_service/file.rb', line 56 def update_details(file_id: nil, **) unless .fetch(:tags, []).is_a?(Array) raise ArgumentError, constants.UPDATE_DATA_TAGS_INVALID end unless .fetch(:custom_coordinates, "").is_a?(String) raise ArgumentError, constants.UPDATE_DATA_COORDS_INVALID end url = "#{constants.BASE_URL}/#{file_id}/details/" headers = @req_obj.create_headers payload = request_formatter( || {}) @req_obj.request("patch", url, headers, payload.to_json) end |
#upload(file: nil, file_name: nil, **options) ⇒ Object
uploads files with required arguments, supports bot url and binary Options types:
- `extensions` should be array of hash
eg: option['extension'] = [
{ 'name' => 'remove-bg', 'options' => { 'add_shadow' => 'true' } },
{ 'name' => 'google-auto-tagging', 'minConfidence' => 80 }
]
- `custom_metadata` should be hash
eg: option['custom_metadata'] = {
"SKU": "VS882HJ2JD",
"price": 599.99,
"brand": "H&M",
"discount": 30
}
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/imagekitio/api_service/file.rb', line 32 def upload(file: nil, file_name: nil, **) raise ArgumentError, constants.MISSING_UPLOAD_FILE_PARAMETER unless file raise ArgumentError, constants.MISSING_UPLOAD_FILE_PARAMETER unless file_name content_type = .delete(:content_type) || '' = format_to_json(, :extensions, Array) = format_to_json(, :custom_metadata, Hash) = format_to_json(, :transformation, Hash) = ( || {}) if .is_a?(FalseClass) raise ArgumentError, "Invalid Upload option" else headers = @req_obj.create_headers payload = { multipart: true, file: file.is_a?(String) ? file : ::UploadIO.new(file, content_type, file_name), fileName: file_name } payload.merge!() url = "#{constants.BASE_URL}#{constants.UPLOAD}" @req_obj.request("post", url, headers, payload) end end |