Skip to content

Commit e26f74d

Browse files
committed
add pagination to all user measurements
1 parent cad1be6 commit e26f74d

File tree

4 files changed

+43
-38
lines changed

4 files changed

+43
-38
lines changed

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ gem 'jwt'
2222
# serializer
2323
gem 'active_model_serializers'
2424

25+
# Pagination gem
26+
gem 'will_paginate'
27+
2528
# Use Active Storage variant
2629
# gem 'image_processing', '~> 1.2'
2730

Gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ GEM
199199
websocket-driver (0.7.3)
200200
websocket-extensions (>= 0.1.0)
201201
websocket-extensions (0.1.5)
202+
will_paginate (3.3.0)
202203
zeitwerk (2.4.0)
203204

204205
PLATFORMS
@@ -223,6 +224,7 @@ DEPENDENCIES
223224
spring
224225
spring-watcher-listen (~> 2.0.0)
225226
tzinfo-data
227+
will_paginate
226228

227229
RUBY VERSION
228230
ruby 2.7.0p0

app/controllers/v1/measurements_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class MeasurementsController < ApplicationController
55

66
# GET /measures/:measure_id/measurements
77
def index
8-
json_response(@measure.measurements)
8+
json_response(@measure.measurements.paginate(page: params[:page], per_page: 20))
99
end
1010

1111
# GET /measures/:measure_id/measurements/:id
Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
module V1
2-
class MeasuresController < ApplicationController
3-
before_action :set_measure, only: %i[show update destroy]
4-
5-
def index
6-
@measure = current_user.measures
7-
json_response(@measure)
8-
end
9-
10-
def create
11-
@measure = current_user.measures.create!(measure_params)
12-
json_response(@measure, :created)
13-
end
14-
15-
def show
16-
json_response(@measure)
17-
end
18-
19-
def update
20-
@measure.update(measure_params)
21-
head :no_content
2+
class MeasuresController < ApplicationController
3+
before_action :set_measure, only: %i[show update destroy]
4+
5+
def index
6+
@measure = current_user.measures
7+
json_response(@measure)
8+
end
9+
10+
def create
11+
@measure = current_user.measures.create!(measure_params)
12+
json_response(@measure, :created)
13+
end
14+
15+
def show
16+
json_response(@measure)
17+
end
18+
19+
def update
20+
@measure.update(measure_params)
21+
head :no_content
22+
end
23+
24+
def destroy
25+
@measure.destroy
26+
head :no_content
27+
end
28+
29+
private
30+
31+
def measure_params
32+
# whitelist params
33+
params.permit(:body_part_name)
34+
end
35+
36+
def set_measure
37+
@measure = Measure.find(params[:id])
38+
end
2239
end
23-
24-
def destroy
25-
@measure.destroy
26-
head :no_content
27-
end
28-
29-
private
30-
31-
def measure_params
32-
# whitelist params
33-
params.permit(:body_part_name)
34-
end
35-
36-
def set_measure
37-
@measure = Measure.find(params[:id])
38-
end
39-
end
4040
end

0 commit comments

Comments
 (0)