Class: Activity::ResourceList::ResourceRetriever
- Inherits:
-
Object
- Object
- Activity::ResourceList::ResourceRetriever
- Defined in:
- app/services/activity/resource_list.rb
Overview
Service object: resource retriever.
Direct Known Subclasses
CreditMemoRetriever, InvoiceRetriever, OpportunityRetriever, OrderRetriever, PurchaseOrderRetriever, QuoteRetriever, RmaRetriever, RoomConfigurationRetriever, SupportCaseRetriever
Instance Attribute Summary collapse
-
#page ⇒ Object
readonly
Returns the value of attribute page.
-
#party ⇒ Object
readonly
Returns the value of attribute party.
-
#per_page ⇒ Object
readonly
Returns the value of attribute per_page.
-
#query ⇒ Object
readonly
Returns the value of attribute query.
Class Method Summary collapse
Instance Method Summary collapse
- #filter_results(_record_class, records) ⇒ Object
-
#initialize(party:, query: nil, page: nil, per_page: nil) ⇒ ResourceRetriever
constructor
A new instance of ResourceRetriever.
- #resources ⇒ Object
- #total_count ⇒ Object
Constructor Details
#initialize(party:, query: nil, page: nil, per_page: nil) ⇒ ResourceRetriever
Returns a new instance of ResourceRetriever.
64 65 66 67 68 69 70 71 72 |
# File 'app/services/activity/resource_list.rb', line 64 def initialize(party:, query: nil, page: nil, per_page: nil) @party = party @query = query @page = page.to_i @page = 1 if @page < 1 @per_page = (per_page || 20).to_i @per_page = 20 if @per_page < 1 @total_count = nil end |
Instance Attribute Details
#page ⇒ Object (readonly)
Returns the value of attribute page.
62 63 64 |
# File 'app/services/activity/resource_list.rb', line 62 def page @page end |
#party ⇒ Object (readonly)
Returns the value of attribute party.
62 63 64 |
# File 'app/services/activity/resource_list.rb', line 62 def party @party end |
#per_page ⇒ Object (readonly)
Returns the value of attribute per_page.
62 63 64 |
# File 'app/services/activity/resource_list.rb', line 62 def per_page @per_page end |
#query ⇒ Object (readonly)
Returns the value of attribute query.
62 63 64 |
# File 'app/services/activity/resource_list.rb', line 62 def query @query end |
Class Method Details
.build(resource_type, party:, query: nil, page: nil, per_page: nil) ⇒ Object
74 75 76 77 |
# File 'app/services/activity/resource_list.rb', line 74 def self.build(resource_type, party:, query: nil, page: nil, per_page: nil) retriever_class = "Activity::ResourceList::#{resource_type.to_s.classify}Retriever".constantize retriever_class.new(party: party, query: query, page: page, per_page: per_page) end |
Instance Method Details
#filter_results(_record_class, records) ⇒ Object
87 88 89 90 91 92 93 |
# File 'app/services/activity/resource_list.rb', line 87 def filter_results(_record_class, records) # Store the total count before applying pagination @total_count = records.count records.order(created_at: :desc) .limit(per_page) .offset((page - 1) * per_page) end |
#resources ⇒ Object
79 80 81 |
# File 'app/services/activity/resource_list.rb', line 79 def resources raise 'Not Implemented' end |
#total_count ⇒ Object
83 84 85 |
# File 'app/services/activity/resource_list.rb', line 83 def total_count @total_count || 0 end |