Class: CarrierWave::TrueVault::Client
- Inherits:
-
Object
- Object
- CarrierWave::TrueVault::Client
- Includes:
- HTTParty
- Defined in:
- lib/carrierwave/truevault/client.rb
Instance Method Summary collapse
-
#create_blob(vault_id, file, options = {:headers => {"Content-Type"=>"application/octet-stream"}}) ⇒ Object
BLOB (binary file) API Methods.
-
#create_document(vault_id, document_data, options = {}) ⇒ Object
vault_id should be a valid vault ID document_id should be a valid document ID document_data should be a Ruby Hash.
- #default_options_to_merge_with ⇒ Object
- #delete_blob(vault_id, blob_id, options = {}) ⇒ Object
- #delete_document(vault_id, document_id, options = {}) ⇒ Object
- #get_blob(vault_id, blob_id, options = {}) ⇒ Object
- #get_document(vault_id, document_id, options = {}) ⇒ Object
- #hash_to_base64_json(hash = {}) ⇒ Object
-
#initialize(api_key, api_version = 'v1') ⇒ Client
constructor
api_key should be a valid TrueVault API key account_id should be a valid TrueVault account ID api_version should be a valid API version (ex ‘v1’).
- #replace_blob(vault_id, blob_id, file, options = {:headers => {"Content-Type"=>"application/octet-stream"}}) ⇒ Object
- #update_document(vault_id, document_id, document_data, options = {}) ⇒ Object
Constructor Details
#initialize(api_key, api_version = 'v1') ⇒ Client
api_key should be a valid TrueVault API key account_id should be a valid TrueVault account ID api_version should be a valid API version (ex ‘v1’)
56 57 58 59 60 61 62 |
# File 'lib/carrierwave/truevault/client.rb', line 56 def initialize(api_key, api_version = 'v1') @api_key = api_key @api_ver = api_version instance_variables.each do |variable| raise ArgumentError, "#{variable} should not be nil or blank" if instance_variable_get(variable.to_sym).to_s == "" end end |
Instance Method Details
#create_blob(vault_id, file, options = {:headers => {"Content-Type"=>"application/octet-stream"}}) ⇒ Object
BLOB (binary file) API Methods
97 98 99 100 101 |
# File 'lib/carrierwave/truevault/client.rb', line 97 def create_blob(vault_id, file, = {:headers => {"Content-Type"=>"application/octet-stream"}}) .merge!() [:body] = file.read self.class.post("/#{@api_ver}/vaults/#{vault_id}/blobs", ) end |
#create_document(vault_id, document_data, options = {}) ⇒ Object
vault_id should be a valid vault ID document_id should be a valid document ID document_data should be a Ruby Hash. Method will convert it to JSON and base64 encode as required
71 72 73 74 75 |
# File 'lib/carrierwave/truevault/client.rb', line 71 def create_document(vault_id, document_data, = {}) .merge!() [:body] = {:document => hash_to_base64_json(document_data)} self.class.post("/#{@api_ver}/vaults/#{vault_id}/documents", ) end |
#default_options_to_merge_with ⇒ Object
45 46 47 |
# File 'lib/carrierwave/truevault/client.rb', line 45 def {:basic_auth => {:username => @api_key, :password => nil}} end |
#delete_blob(vault_id, blob_id, options = {}) ⇒ Object
109 110 111 112 |
# File 'lib/carrierwave/truevault/client.rb', line 109 def delete_blob(vault_id, blob_id, = {}) .merge!() self.class.delete("/#{@api_ver}/vaults/#{vault_id}/blobs/#{blob_id}", ) end |
#delete_document(vault_id, document_id, options = {}) ⇒ Object
82 83 84 85 |
# File 'lib/carrierwave/truevault/client.rb', line 82 def delete_document(vault_id, document_id, = {}) .merge!() self.class.delete("/#{@api_ver}/vaults/#{vault_id}/documents/#{document_id}", ) end |
#get_blob(vault_id, blob_id, options = {}) ⇒ Object
114 115 116 117 |
# File 'lib/carrierwave/truevault/client.rb', line 114 def get_blob(vault_id, blob_id, = {}) .merge!() self.class.get("/#{@api_ver}/vaults/#{vault_id}/blobs/#{blob_id}", ) end |
#get_document(vault_id, document_id, options = {}) ⇒ Object
77 78 79 80 |
# File 'lib/carrierwave/truevault/client.rb', line 77 def get_document(vault_id, document_id, = {}) .merge!() self.class.get("/#{@api_ver}/vaults/#{vault_id}/documents/#{document_id}", ) end |
#hash_to_base64_json(hash = {}) ⇒ Object
49 50 51 |
# File 'lib/carrierwave/truevault/client.rb', line 49 def hash_to_base64_json(hash = {}) Base64.encode64(hash.to_json) end |
#replace_blob(vault_id, blob_id, file, options = {:headers => {"Content-Type"=>"application/octet-stream"}}) ⇒ Object
103 104 105 106 107 |
# File 'lib/carrierwave/truevault/client.rb', line 103 def replace_blob(vault_id, blob_id, file, = {:headers => {"Content-Type"=>"application/octet-stream"}}) .merge!() [:body] = file.read self.class.put("/#{@api_ver}/vaults/#{vault_id}/blobs/#{blob_id}", ) end |
#update_document(vault_id, document_id, document_data, options = {}) ⇒ Object
87 88 89 90 91 |
# File 'lib/carrierwave/truevault/client.rb', line 87 def update_document(vault_id, document_id, document_data, = {}) .merge!() [:body] = {:document => hash_to_base64_json(document_data)} self.class.put("/#{@api_ver}/vaults/#{vault_id}/documents/#{document_id}", ) end |