Skip to content

Commit ecc1258

Browse files
committed
added file version methods
1 parent 7db588e commit ecc1258

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

lib/imagekitio/api_service/file.rb

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,51 @@ def list(**options)
7575
@req_obj.request("get", url, headers, formatted_options)
7676
end
7777

78+
def get_file_versions(file_id: nil)
79+
if file_id == '' || file_id.nil?
80+
raise ArgumentError, 'file_id is required'
81+
end
82+
url = "#{constants.BASE_URL}/#{file_id}/versions"
83+
headers = @req_obj.create_headers
84+
@req_obj.request('get', url, headers)
85+
end
86+
87+
def get_file_version_detail(file_id: nil, version_id: nil)
88+
if file_id == "" || file_id.nil?
89+
raise ArgumentError, "file_id is required"
90+
end
91+
if version_id == "" || version_id.nil?
92+
raise ArgumentError, "version_id is required"
93+
end
94+
url = "#{constants.BASE_URL}/#{file_id}/versions/#{version_id}"
95+
headers = @req_obj.create_headers
96+
@req_obj.request('get', url, headers)
97+
end
98+
99+
def delete_file_version(file_id: nil, version_id: nil)
100+
if file_id == "" || file_id.nil?
101+
raise ArgumentError, "file_id is required"
102+
end
103+
if version_id == "" || version_id.nil?
104+
raise ArgumentError, "version_id is required"
105+
end
106+
url = "#{constants.BASE_URL}/#{file_id}/versions/#{version_id}"
107+
headers = @req_obj.create_headers
108+
@req_obj.request('delete', url, headers)
109+
end
110+
111+
def restore_file_version(file_id: nil, version_id: nil)
112+
if file_id == "" || file_id.nil?
113+
raise ArgumentError, "file_id is required"
114+
end
115+
if version_id == "" || version_id.nil?
116+
raise ArgumentError, "version_id is required"
117+
end
118+
url = "#{constants.BASE_URL}/#{file_id}/versions/#{version_id}/restore"
119+
headers = @req_obj.create_headers
120+
@req_obj.request('put', url, headers)
121+
end
122+
78123
def details(file_identifier: nil)
79124
# Get detail of file by file_identifier
80125
if file_identifier == "" || file_identifier.nil?

lib/imagekitio/client.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,22 @@ def list_files(options = {})
6565
@file_service.list(**options)
6666
end
6767

68+
def file_versions(file_id: nil)
69+
@file_service.get_file_versions(file_id: file_id)
70+
end
71+
72+
def file_version_detail(file_id: nil, version_id: nil)
73+
@file_service.get_file_version_detail(file_id: file_id, version_id: version_id)
74+
end
75+
76+
def delete_file_version(file_id: nil, version_id: nil)
77+
@file_service.delete_file_version(file_id: file_id, version_id: version_id)
78+
end
79+
80+
def restore_file_version(file_id: nil, version_id: nil)
81+
@file_service.restore_file_version(file_id: file_id, version_id: version_id)
82+
end
83+
6884
def get_file_details(file_id: nil)
6985
# Get file detail by file-id or file_url
7086
@file_service.details(file_identifier: file_id)

lib/imagekitio/request.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ def request(method, url, headers = create_headers, payload = nil)
4545
if resp.code.to_i == 400
4646
raise RestClient::ExceptionWithResponse, OpenStruct.new(code: 400, body: resp.body)
4747
end
48+
if resp.code.to_i == 403
49+
raise RestClient::ExceptionWithResponse, OpenStruct.new(code: 403, body: resp.body)
50+
end
4851
else
4952
resp = RestClient::Request.new(method: method,
5053
url: url,

0 commit comments

Comments
 (0)