Class: Pago::V2026_04::Services::Products
- Defined in:
- lib/pago/v2026_04/services/products.rb,
sig/pago/v2026_04/generated.rbs
Instance Attribute Summary
Attributes inherited from Service
Instance Method Summary collapse
-
#create(body: {}) ⇒ Models::Product
Create a product.
-
#get(id) ⇒ Models::Product
Get a product by ID.
-
#list(id: nil, organization_id: nil, query: nil, is_archived: nil, is_recurring: nil, benefit_id: nil, visibility: nil, page: 1, limit: 10, sorting: ["-created_at"], metadata: nil) ⇒ Models::ListResourceProduct
List products.
-
#list_each(id: nil, organization_id: nil, query: nil, is_archived: nil, is_recurring: nil, benefit_id: nil, visibility: nil, limit: 10, sorting: ["-created_at"], metadata: nil) {|item| ... } ⇒ Pago::Paginator
Enumerate every item of
list, fetching pages on demand. -
#update(id, body: {}) ⇒ Models::Product
Update a product.
-
#update_benefits(id, body: {}) ⇒ Models::Product
Update benefits granted by a product.
Methods inherited from Service
Constructor Details
This class inherits a constructor from Pago::Service
Instance Method Details
#create(body: {}) ⇒ Models::Product
Create a product.
Scopes: products:write
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/pago/v2026_04/services/products.rb', line 56 def create(body: {}) data = client.request( http_method: "POST", path: "/v1/products/", path_params: {}, query: {}, body: body, response_type: :json, errors: { 422 => Errors::HTTPValidationError } ) Models::Product.from_json(data) end |
#get(id) ⇒ Models::Product
Get a product by ID.
Scopes: products:read products:write
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/pago/v2026_04/services/products.rb', line 78 def get(id) data = client.request( http_method: "GET", path: "/v1/products/{id}", path_params: { "id" => id }, query: {}, response_type: :json, errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError } ) Models::Product.from_json(data) end |
#list(id: nil, organization_id: nil, query: nil, is_archived: nil, is_recurring: nil, benefit_id: nil, visibility: nil, page: 1, limit: 10, sorting: ["-created_at"], metadata: nil) ⇒ Models::ListResourceProduct
List products.
Scopes: products:read products:write
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/pago/v2026_04/services/products.rb', line 25 def list(id: nil, organization_id: nil, query: nil, is_archived: nil, is_recurring: nil, benefit_id: nil, visibility: nil, page: 1, limit: 10, sorting: ["-created_at"], metadata: nil) data = client.request( http_method: "GET", path: "/v1/products/", path_params: {}, query: { "id" => id, "organization_id" => organization_id, "query" => query, "is_archived" => is_archived, "is_recurring" => is_recurring, "benefit_id" => benefit_id, "visibility" => visibility, "page" => page, "limit" => limit, "sorting" => sorting, "metadata" => }, response_type: :json, errors: { 422 => Errors::HTTPValidationError } ) Models::ListResourceProduct.from_json(data) end |
#list_each(id: nil, organization_id: nil, query: nil, is_archived: nil, is_recurring: nil, benefit_id: nil, visibility: nil, limit: 10, sorting: ["-created_at"], metadata: nil) {|item| ... } ⇒ Pago::Paginator
Enumerate every item of list, fetching pages on demand.
41 42 43 44 45 46 |
# File 'lib/pago/v2026_04/services/products.rb', line 41 def list_each(id: nil, organization_id: nil, query: nil, is_archived: nil, is_recurring: nil, benefit_id: nil, visibility: nil, limit: 10, sorting: ["-created_at"], metadata: nil, &block) paginator = ::Pago::Paginator.new do |page_number| list(id: id, organization_id: organization_id, query: query, is_archived: is_archived, is_recurring: is_recurring, benefit_id: benefit_id, visibility: visibility, page: page_number, limit: limit, sorting: sorting, metadata: ) end block ? paginator.each(&block) : paginator end |
#update(id, body: {}) ⇒ Models::Product
Update a product.
Scopes: products:write
101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/pago/v2026_04/services/products.rb', line 101 def update(id, body: {}) data = client.request( http_method: "PATCH", path: "/v1/products/{id}", path_params: { "id" => id }, query: {}, body: body, response_type: :json, errors: { 403 => Errors::NotPermitted, 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError } ) Models::Product.from_json(data) end |
#update_benefits(id, body: {}) ⇒ Models::Product
Update benefits granted by a product.
Scopes: products:write
125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/pago/v2026_04/services/products.rb', line 125 def update_benefits(id, body: {}) data = client.request( http_method: "POST", path: "/v1/products/{id}/benefits", path_params: { "id" => id }, query: {}, body: body, response_type: :json, errors: { 403 => Errors::NotPermitted, 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError } ) Models::Product.from_json(data) end |