diff --git a/app/models/user.rb b/app/models/user.rb index 7df92ba..6fc0754 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -33,7 +33,7 @@ class User < ApplicationRecord end def history - MoodCalendarService.generate_calendar(moods) + MoodCalendarService.generate_calendar(self) end def current_mode diff --git a/app/services/mood_calendar_service.rb b/app/services/mood_calendar_service.rb index 70fd143..8625067 100644 --- a/app/services/mood_calendar_service.rb +++ b/app/services/mood_calendar_service.rb @@ -1,6 +1,6 @@ class MoodCalendarService - def self.generate_calendar(moods, start_date: nil, end_date: Date.current) - data = moods.includes(:mode) + def self.generate_calendar(user, start_date: nil, end_date: Date.current) + data = user.moods.includes(:mode) .order(:recorded_at) .map { |mood| { mode: mood.mode, recorded_at: mood.recorded_at } } diff --git a/spec/services/mood_calendar_service_spec.rb b/spec/services/mood_calendar_service_spec.rb index c93e0f5..8315268 100644 --- a/spec/services/mood_calendar_service_spec.rb +++ b/spec/services/mood_calendar_service_spec.rb @@ -14,7 +14,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-18 16:45:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-02-28") ) @@ -53,7 +53,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode2, recorded_at: Time.zone.parse("2025-04-20 11:30:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-04-30") ) @@ -85,7 +85,7 @@ RSpec.describe MoodCalendarService do context 'sans aucun recorded_at' do it 'retourne un calendrier à partir de la date courante' do - result = MoodCalendarService.generate_calendar(Mood.where(user: user)) + result = MoodCalendarService.generate_calendar(user) expect(result).not_to be_empty expect(result.first[:month]).to eq(Date.current.beginning_of_month) @@ -97,7 +97,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-02-28") ) @@ -112,7 +112,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-03-31") ) @@ -134,7 +134,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-02-28") ) @@ -148,7 +148,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-02-28") ) @@ -163,7 +163,7 @@ RSpec.describe MoodCalendarService do it "utilise le premier mood comme start_date et aujourd'hui comme end_date" do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) - result = MoodCalendarService.generate_calendar(Mood.where(user: user)) + result = MoodCalendarService.generate_calendar(user) expect(result).not_to be_empty expect(result.first[:month]).to eq(Date.parse("2025-02-01")) @@ -175,7 +175,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, start_date: Date.parse("2025-03-01"), end_date: Date.parse("2025-03-31") ) @@ -190,7 +190,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-09-30") ) @@ -205,7 +205,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode2, recorded_at: Time.zone.parse("2025-04-20 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, start_date: Date.parse("2025-03-01"), end_date: Date.parse("2025-03-31") ) @@ -221,7 +221,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, start_date: Date.parse("2025-02-01"), end_date: Date.parse("2025-04-30") ) @@ -238,7 +238,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, start_date: Time.zone.parse("2025-02-01 00:00:00"), end_date: Time.zone.parse("2025-02-28 23:59:59") ) @@ -253,7 +253,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode, recorded_at: Time.zone.parse("2025-02-15 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, start_date: Date.parse("2025-04-01"), end_date: Date.parse("2025-04-30") ) @@ -272,7 +272,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user, mode: mode2, recorded_at: Time.zone.parse("2025-03-20 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-03-31") ) @@ -297,7 +297,7 @@ RSpec.describe MoodCalendarService do create(:mood, user: user2, mode: mode2, recorded_at: Time.zone.parse("2025-02-16 10:00:00")) result = MoodCalendarService.generate_calendar( - Mood.where(user: user), + user, end_date: Date.parse("2025-02-28") )