Class: Activity::ResourceList::ResourceRetriever
- Inherits:
-
Object
- Object
- Activity::ResourceList::ResourceRetriever
- Defined in:
- app/services/activity/resource_list.rb
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.
62 63 64 65 66 67 68 69 70 |
# File 'app/services/activity/resource_list.rb', line 62 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.
60 61 62 |
# File 'app/services/activity/resource_list.rb', line 60 def page @page end |
#party ⇒ Object (readonly)
Returns the value of attribute party.
60 61 62 |
# File 'app/services/activity/resource_list.rb', line 60 def party @party end |
#per_page ⇒ Object (readonly)
Returns the value of attribute per_page.
60 61 62 |
# File 'app/services/activity/resource_list.rb', line 60 def per_page @per_page end |
#query ⇒ Object (readonly)
Returns the value of attribute query.
60 61 62 |
# File 'app/services/activity/resource_list.rb', line 60 def query @query end |
Class Method Details
.build(resource_type, party:, query: nil, page: nil, per_page: nil) ⇒ Object
72 73 74 75 |
# File 'app/services/activity/resource_list.rb', line 72 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
85 86 87 88 89 90 91 |
# File 'app/services/activity/resource_list.rb', line 85 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
77 78 79 |
# File 'app/services/activity/resource_list.rb', line 77 def resources raise 'Not Implemented' end |
#total_count ⇒ Object
81 82 83 |
# File 'app/services/activity/resource_list.rb', line 81 def total_count @total_count || 0 end |