blob: d97b4fb7a79ebeffa77d2653b08279f3674c840b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
class ChartsController < ApplicationController
def index
exercise = Exercise.find_by(id: params[:exercise])
respond_to do |format|
format.js { @training_history = user.history_for(exercise) }
format.json { render json: rolled_up_sets(exercise || Exercise.primary).chart_json }
end
end
private
def rolled_up_sets(exercise, since = (params[:since] || 1.month).to_i.seconds.ago)
user.exercise_sets
.joins(:exercise)
.where(exercise: exercise)
.where('workouts.occurred_at > ?', since.beginning_of_day)
.where.not(target_weight: nil)
.group('exercises.name')
.joins(:workout)
.group('workouts.occurred_at')
.maximum(:target_weight)
end
def user
User.find_by(username: params[:username]) || current_user
end
end
|