Class: Yookassa::Resources::Base Abstract
- Inherits:
-
Object
- Object
- Yookassa::Resources::Base
- Defined in:
- lib/yookassa/resources/base.rb
Overview
Subclass and declare resource_path / entity_class
Base resource class with HTTP request handling and Faraday connection setup.
Subclasses declare resource_path and entity_class to inherit default
create, find, and list behaviour. Resources that need custom logic
(e.g. Payment) override those methods directly.
Instance Attribute Summary collapse
-
#client ⇒ Client
readonly
The API client this resource belongs to.
Class Method Summary collapse
-
.entity_class(klass = nil) ⇒ Class?
Declares or retrieves the entity class for wrapping API responses.
-
.resource_path(path = nil) ⇒ String?
Declares or retrieves the API path for this resource.
Instance Method Summary collapse
-
#create(params, idempotency_key: nil) ⇒ Entities::Base
Creates a new resource via POST.
-
#find(resource_id) ⇒ Entities::Base
Retrieves a single resource by ID via GET.
-
#initialize(client) ⇒ Base
constructor
A new instance of Base.
-
#list(**filters) ⇒ Entities::Collection
Lists resources matching the given filters via GET.
Constructor Details
#initialize(client) ⇒ Base
20 21 22 |
# File 'lib/yookassa/resources/base.rb', line 20 def initialize(client) @client = client end |
Instance Attribute Details
#client ⇒ Client (readonly)
17 18 19 |
# File 'lib/yookassa/resources/base.rb', line 17 def client @client end |
Class Method Details
.entity_class(klass = nil) ⇒ Class?
Declares or retrieves the entity class for wrapping API responses.
40 41 42 43 44 45 46 |
# File 'lib/yookassa/resources/base.rb', line 40 def self.entity_class(klass = nil) if klass @entity_class = klass else @entity_class end end |
.resource_path(path = nil) ⇒ String?
Declares or retrieves the API path for this resource.
28 29 30 31 32 33 34 |
# File 'lib/yookassa/resources/base.rb', line 28 def self.resource_path(path = nil) if path @resource_path = path else @resource_path end end |
Instance Method Details
#create(params, idempotency_key: nil) ⇒ Entities::Base
Creates a new resource via POST.
54 55 56 57 |
# File 'lib/yookassa/resources/base.rb', line 54 def create(params, idempotency_key: nil) data = request(:post, resource_path, body: params, idempotency_key: idempotency_key) entity_class.new(data) end |
#find(resource_id) ⇒ Entities::Base
Retrieves a single resource by ID via GET.
64 65 66 67 |
# File 'lib/yookassa/resources/base.rb', line 64 def find(resource_id) data = request(:get, "#{resource_path}/#{resource_id}") entity_class.new(data) end |
#list(**filters) ⇒ Entities::Collection
Lists resources matching the given filters via GET.
73 74 75 |
# File 'lib/yookassa/resources/base.rb', line 73 def list(**filters) build_collection(resource_path, entity_class: entity_class, query: filters) end |