Class: Payabli::Vendor::Client
- Inherits:
-
Object
- Object
- Payabli::Vendor::Client
- Defined in:
- lib/payabli/vendor/client.rb
Instance Method Summary collapse
-
#add_vendor(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponseVendors
Creates a vendor in an entrypoint.
-
#delete_vendor(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponseVendors
Delete a vendor.
-
#edit_vendor(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponseVendors
Updates a vendor’s information.
-
#enrich_vendor(request_options: {}, **params) ⇒ Payabli::Vendor::Types::VendorEnrichResponse
Triggers AI-powered vendor enrichment for an existing vendor.
-
#get_vendor(request_options: {}, **params) ⇒ Payabli::Types::VendorQueryRecord
Retrieves a vendor’s details, including enrichment status and payment acceptance info when available.
- #initialize(client:) ⇒ void constructor
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/payabli/vendor/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#add_vendor(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponseVendors
Creates a vendor in an entrypoint.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/payabli/vendor/client.rb', line 25 def add_vendor(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "Vendor/single/#{URI.encode_uri_component(params[:entry].to_s)}", body: Payabli::Types::VendorData.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Types::PayabliApiResponseVendors.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#delete_vendor(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponseVendors
Delete a vendor.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/payabli/vendor/client.rb', line 60 def delete_vendor(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "DELETE", path: "Vendor/#{URI.encode_uri_component(params[:id_vendor].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Types::PayabliApiResponseVendors.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#edit_vendor(request_options: {}, **params) ⇒ Payabli::Types::PayabliApiResponseVendors
Updates a vendor’s information. Send only the fields you need to update.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/payabli/vendor/client.rb', line 94 def edit_vendor(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "PUT", path: "Vendor/#{URI.encode_uri_component(params[:id_vendor].to_s)}", body: Payabli::Types::VendorData.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Types::PayabliApiResponseVendors.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#enrich_vendor(request_options: {}, **params) ⇒ Payabli::Vendor::Types::VendorEnrichResponse
Triggers AI-powered vendor enrichment for an existing vendor. Runs one or more enrichment stages (invoice scan, web search) based on the ‘scope` parameter. Can automatically apply extracted payment acceptance info and vendor contact information to the vendor record, or return raw results for manual review. Contact Payabli to enable this feature.
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/payabli/vendor/client.rb', line 166 def enrich_vendor(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "Vendor/enrich/#{URI.encode_uri_component(params[:entry].to_s)}", body: Payabli::Vendor::Types::VendorEnrichRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Vendor::Types::VendorEnrichResponse.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get_vendor(request_options: {}, **params) ⇒ Payabli::Types::VendorQueryRecord
Retrieves a vendor’s details, including enrichment status and payment acceptance info when available.
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/payabli/vendor/client.rb', line 129 def get_vendor(request_options: {}, **params) params = Payabli::Internal::Types::Utils.normalize_keys(params) request = Payabli::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "Vendor/#{URI.encode_uri_component(params[:id_vendor].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Payabli::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Payabli::Types::VendorQueryRecord.load(response.body) else error_class = Payabli::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |