This commit is contained in:
Christophe Robillard 2026-03-21 20:28:56 +01:00
parent 1aacc1370f
commit 9918584a91
3 changed files with 19 additions and 19 deletions

View file

@ -33,7 +33,7 @@ class User < ApplicationRecord
end
def history
MoodCalendarService.generate_calendar(moods)
MoodCalendarService.generate_calendar(self)
end
def current_mode

View file

@ -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 } }

View file

@ -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")
)