Skip to content

Commit b21300a

Browse files
authored
Fixes total value on EventProcedure to return values without consider pages and per_page params (#266)
1 parent 094880d commit b21300a

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

app/controllers/api/v1/event_procedures_controller.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ class EventProceduresController < ApiController
88

99
def index
1010
authorized_scope = policy_scope(EventProcedure)
11-
event_procedures = EventProcedures::List.result(
11+
listed_event_procedures = EventProcedures::List.result(
1212
scope: authorized_scope,
1313
params: event_procedure_permitted_query_params
14-
).event_procedures
14+
)
15+
event_procedures = listed_event_procedures.event_procedures
16+
event_procedures_unpaginated = listed_event_procedures.event_procedures_unpaginated
1517

16-
total_amount_cents = EventProcedures::TotalAmountCents.call(event_procedures: event_procedures)
18+
total_amount_cents = EventProcedures::TotalAmountCents.call(event_procedures: event_procedures_unpaginated)
1719

1820
render json: {
1921
total: total_amount_cents.total,

app/operations/event_procedures/list.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ class List < Actor
66
input :params, type: Hash, default: -> { {} }
77

88
output :event_procedures, type: Enumerable
9+
output :event_procedures_unpaginated, type: Enumerable
910

1011
def call
11-
self.event_procedures = filtered_query.order(date: :desc).page(params[:page]).per(params[:per_page])
12+
self.event_procedures_unpaginated = filtered_query.order(date: :desc)
13+
self.event_procedures = event_procedures_unpaginated.page(params[:page]).per(params[:per_page])
1214
end
1315

1416
private

spec/operations/event_procedures/list_spec.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,5 +103,22 @@
103103

104104
it { expect(result.event_procedures).to eq [EventProcedure.last] }
105105
end
106+
107+
describe "event_procedures_unpaginated" do
108+
context "when there are event procedures outside of pagination" do
109+
let!(:event_procedures) { create_list(:event_procedure, 11) }
110+
111+
it "returns all event procedures" do
112+
result = described_class.result(
113+
scope: EventProcedure.all,
114+
params: { page: "1", per_page: "5" }
115+
)
116+
event_procedures_paginated = result.event_procedures
117+
event_procedures_unpaginated = result.event_procedures_unpaginated
118+
expect(event_procedures_unpaginated).to match_array(event_procedures)
119+
expect(event_procedures_paginated.count).to eq(5)
120+
end
121+
end
122+
end
106123
end
107124
end

spec/requests/api/v1/event_procedures_request_spec.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,18 @@
106106

107107
context "when has pagination via page and per_page" do
108108
before do
109-
create_list(:event_procedure, 8, user_id: user.id)
109+
procedure = create(:procedure, custom: true, user: user, amount_cents: 5000)
110+
create_list(:event_procedure, 8, user_id: user.id, total_amount_cents: 5000, procedure: procedure)
110111
get path, params: { page: 2, per_page: 5 }, headers: headers
111112
end
112113

113114
it "returns only 3 event_procedures" do
114115
expect(response.parsed_body["event_procedures"].length).to eq(3)
115116
end
117+
118+
it "returns total values without consider page and per_page params" do
119+
expect(response.parsed_body["total"]).to eq("R$400.00")
120+
end
116121
end
117122
end
118123

0 commit comments

Comments
 (0)