Class: Vert::Clients::DocumentServiceClient
- Inherits:
-
Object
- Object
- Vert::Clients::DocumentServiceClient
- Defined in:
- lib/vert/clients/document_service_client.rb
Instance Attribute Summary collapse
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
-
#timeout ⇒ Object
readonly
Returns the value of attribute timeout.
Instance Method Summary collapse
- #delete_object(object_id) ⇒ Object
- #download(object_id:) ⇒ Object
- #download_url(object_id:, disposition: "inline", expires_in: 3600) ⇒ Object
-
#initialize(base_url: nil, timeout: 30) ⇒ DocumentServiceClient
constructor
A new instance of DocumentServiceClient.
- #list_objects(resource: nil, page: 1, per_page: 20) ⇒ Object
- #object(object_id) ⇒ Object
- #upload(resource:, filename:, content:, content_type:, metadata: {}) ⇒ Object
Constructor Details
#initialize(base_url: nil, timeout: 30) ⇒ DocumentServiceClient
Returns a new instance of DocumentServiceClient.
13 14 15 16 |
# File 'lib/vert/clients/document_service_client.rb', line 13 def initialize(base_url: nil, timeout: 30) @base_url = base_url || Vert.config.document_service_url @timeout = timeout end |
Instance Attribute Details
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
11 12 13 |
# File 'lib/vert/clients/document_service_client.rb', line 11 def base_url @base_url end |
#timeout ⇒ Object (readonly)
Returns the value of attribute timeout.
11 12 13 |
# File 'lib/vert/clients/document_service_client.rb', line 11 def timeout @timeout end |
Instance Method Details
#delete_object(object_id) ⇒ Object
58 59 60 61 62 63 |
# File 'lib/vert/clients/document_service_client.rb', line 58 def delete_object(object_id) uri = URI.parse("#{base_url}/api/v1/objects/#{object_id}") request = Net::HTTP::Delete.new(uri) add_auth_headers(request) execute_request(uri, request) end |
#download(object_id:) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/vert/clients/document_service_client.rb', line 43 def download(object_id:) result = download_url(object_id: object_id) return nil unless result[:success] url = result[:data][:url] response = Net::HTTP.get_response(URI.parse(url)) response.body if response.is_a?(Net::HTTPSuccess) end |
#download_url(object_id:, disposition: "inline", expires_in: 3600) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/vert/clients/document_service_client.rb', line 35 def download_url(object_id:, disposition: "inline", expires_in: 3600) uri = URI.parse("#{base_url}/api/v1/objects/#{object_id}/download_url") uri.query = URI.encode_www_form(disposition: disposition, expires_in: expires_in) request = Net::HTTP::Get.new(uri) add_auth_headers(request) execute_request(uri, request) end |
#list_objects(resource: nil, page: 1, per_page: 20) ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/vert/clients/document_service_client.rb', line 65 def list_objects(resource: nil, page: 1, per_page: 20) uri = URI.parse("#{base_url}/api/v1/objects") params = { page: page, per_page: per_page } params[:resource] = resource if resource uri.query = URI.encode_www_form(params) request = Net::HTTP::Get.new(uri) add_auth_headers(request) execute_request(uri, request) end |
#object(object_id) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/vert/clients/document_service_client.rb', line 51 def object(object_id) uri = URI.parse("#{base_url}/api/v1/objects/#{object_id}") request = Net::HTTP::Get.new(uri) add_auth_headers(request) execute_request(uri, request) end |
#upload(resource:, filename:, content:, content_type:, metadata: {}) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/vert/clients/document_service_client.rb', line 18 def upload(resource:, filename:, content:, content_type:, metadata: {}) uri = URI.parse("#{base_url}/api/v1/objects") request = Net::HTTP::Post.new(uri) request["Content-Type"] = "application/json" add_auth_headers(request) request.body = { object: { resource: resource, original_filename: filename, content_type: content_type, content_base64: Base64.strict_encode64(content.to_s), metadata: } }.to_json execute_request(uri, request) end |