Skip to content

Commit e44801a

Browse files
committed
refactor and namespace custom metadata
1 parent a72aed4 commit e44801a

File tree

5 files changed

+58
-56
lines changed

5 files changed

+58
-56
lines changed

lib/imagekitio.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
require_relative "./imagekitio/file"
1212
require_relative "./imagekitio/url"
1313
require_relative "./imagekitio/utils/calculation"
14+
require_relative './imagekitio/custom_metadata_field'
1415

lib/imagekitio/client.rb

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
require_relative "./utils/calculation"
99
require_relative './constant'
1010
require_relative './configurable'
11+
require_relative './custom_metadata_field'
1112

1213
module ImageKitIo
1314
# ImageKitIo class holds each method will be used by user
1415
class Client
1516
include Utils::Calculation
1617
include Constantable
1718

18-
attr_reader :file
19+
attr_reader :file, :custom_metadata_fields
1920

2021
def initialize(private_key, public_key, url_endpoint, transformation_pos = nil, options = nil)
2122
unless(private_key.is_a?(String) && private_key.to_s.strip.length != 0)
@@ -37,7 +38,7 @@ def initialize(private_key, public_key, url_endpoint, transformation_pos = nil,
3738
@ik_req = Request.new(private_key, public_key, url_endpoint)
3839
@file = File.new(@ik_req)
3940
@url_obj = Url.new(@ik_req)
40-
41+
@custom_metadata_fields = CustomMetaDataField.new(@ik_req)
4142
end
4243

4344
def set_ik_request(ik_req)
@@ -148,22 +149,6 @@ def bulk_job_status(job_id)
148149
@file.job_status(job_id)
149150
end
150151

151-
def create_custom_metadata_fields(name, label, schema)
152-
@file.create_custom_metadata(name, label, schema)
153-
end
154-
155-
def get_custom_metadata_fields(options = {})
156-
@file.get_custom_metadata(options)
157-
end
158-
159-
def update_custom_metadata_fields(id, label: nil, schema: nil)
160-
@file.update_custom_metadata(id, label, schema)
161-
end
162-
163-
def delete_custom_metadata_fields(id)
164-
@file.delete_custom_metadata(id)
165-
end
166-
167152
def phash_distance(first, second)
168153
# Get hamming distance between two phash(image hash) to check
169154
# similarity between images
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
require_relative 'utils/formatter'
2+
3+
module ImageKitIo
4+
class CustomMetaDataField
5+
include Utils::Formatter
6+
include Constantable
7+
8+
def initialize(req_obj)
9+
@req_obj = req_obj
10+
end
11+
12+
def create(name, label, schema)
13+
if name == '' || name.nil? || label == '' || label.nil? || schema == '' || schema.nil?
14+
raise ArgumentError, 'parameters required'
15+
end
16+
unless schema.is_a?(Hash)
17+
raise ArgumentError, 'schema must be hash object'
18+
end
19+
url = "#{constants.API_BASE_URL}/customMetadataFields"
20+
payload = { 'name': name, 'label': label, 'schema': schema }.to_json
21+
@req_obj.request('post', url, @req_obj.create_headers, payload)
22+
end
23+
24+
def list(options = {})
25+
url = "#{constants.API_BASE_URL}/customMetadataFields"
26+
payload = request_formatter(options)
27+
@req_obj.request('get', url, @req_obj.create_headers, payload)
28+
end
29+
30+
def update(id, label = nil, schema = nil)
31+
if id == '' || id.nil?
32+
raise ArgumentError, 'id is required'
33+
end
34+
url = "#{constants.API_BASE_URL}/customMetadataFields/#{id}"
35+
payload = {}
36+
payload = payload.merge({ 'label': label }) unless label.nil?
37+
payload = payload.merge({ 'schema': label }) unless schema.nil?
38+
@req_obj.request('patch', url, @req_obj.create_headers, payload.to_json)
39+
end
40+
41+
def delete(id)
42+
if id == '' || id.nil?
43+
raise ArgumentError, 'id is required'
44+
end
45+
url = "#{constants.API_BASE_URL}/customMetadataFields/#{id}"
46+
@req_obj.request('delete', url, @req_obj.create_headers)
47+
end
48+
end
49+
end

lib/imagekitio/file.rb

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -213,43 +213,6 @@ def job_status(id)
213213
@req_obj.request('get', url, @req_obj.create_headers, payload)
214214
end
215215

216-
def create_custom_metadata(name, label, schema)
217-
if name == '' || name.nil? || label == '' || label.nil? || schema == '' || schema.nil?
218-
raise ArgumentError, 'parameters required'
219-
end
220-
unless schema.is_a?(Hash)
221-
raise ArgumentError, 'schema must be hash object'
222-
end
223-
url = "#{constants.API_BASE_URL}/customMetadataFields"
224-
payload = { 'name': name, 'label': label, 'schema': schema }.to_json
225-
@req_obj.request('post', url, @req_obj.create_headers, payload)
226-
end
227-
228-
def get_custom_metadata(options = {})
229-
url = "#{constants.API_BASE_URL}/customMetadataFields"
230-
payload = request_formatter(options)
231-
@req_obj.request('get', url, @req_obj.create_headers, payload)
232-
end
233-
234-
def update_custom_metadata(id, label, schema)
235-
if id == '' || id.nil?
236-
raise ArgumentError, 'id is required'
237-
end
238-
url = "#{constants.API_BASE_URL}/customMetadataFields/#{id}"
239-
payload = {}
240-
payload = payload.merge({ 'label': label }) unless label.nil?
241-
payload = payload.merge({ 'schema': label }) unless schema.nil?
242-
@req_obj.request('patch', url, @req_obj.create_headers, payload.to_json)
243-
end
244-
245-
def delete_custom_metadata(id)
246-
if id == '' || id.nil?
247-
raise ArgumentError, 'id is required'
248-
end
249-
url = "#{constants.API_BASE_URL}/customMetadataFields/#{id}"
250-
@req_obj.request('delete', url, @req_obj.create_headers)
251-
end
252-
253216
def validate_upload_options(options)
254217

255218
# Validates upload value, checks if params are valid,

lib/imagekitio/request.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ def request(method, url, headers = nil, payload = nil)
5151
end
5252

5353
rescue RestClient::ExceptionWithResponse => err
54-
err.http_code == 404 ? response[:error] = {'message': err.response.to_s} : JSON.parse(err.response)
54+
response[:error] = if err.http_code == 404
55+
{'message': err.response.to_s}
56+
else
57+
JSON.parse(err.response)
58+
end
5559
end
5660
response
5761
end

0 commit comments

Comments
 (0)