Skip to content

Commit ddbe113

Browse files
authored
Merge pull request #38 from eunjooChoi/mood-record-core-data-update
감정 기록 화면에서 저장할 때 update가 아닌 새로 저장되고 있던 로직 수정
2 parents 9e2e525 + 10689cf commit ddbe113

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

PlantingMind/PlantingMind/MoodRecord/MoodRecordView.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ struct MoodRecordView: View {
7979
Spacer()
8080
HStack {
8181
Spacer()
82-
Text("\(viewModel.reason.count) / 100")
82+
Text("text_limit".localized(with: [viewModel.reason.count]))
8383
.foregroundStyle(Color.Custom.line)
8484
.padding(.bottom, 10)
8585
.padding(.trailing, 28)

PlantingMind/PlantingMind/MoodRecord/MoodRecordViewModel.swift

+15-4
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,23 @@ class MoodRecordViewModel: ObservableObject {
2929
guard let date = self.date else { return }
3030
let timestamp = date.timeStampString()
3131

32-
let record = MoodRecord(context: context)
33-
record.timestamp = timestamp
34-
record.mood = self.mood.rawValue
35-
record.reason = self.reason
32+
let fetchRequest = NSFetchRequest<MoodRecord>(entityName: "MoodRecord")
33+
let predicate = NSPredicate(format: "timestamp == %@", timestamp)
34+
fetchRequest.predicate = predicate
3635

3736
do {
37+
let result = try context.fetch(fetchRequest)
38+
39+
if result.count == 1 {
40+
let record = result[0]
41+
record.mood = self.mood.rawValue
42+
record.reason = self.reason
43+
} else {
44+
let record = MoodRecord(context: context)
45+
record.timestamp = timestamp
46+
record.mood = self.mood.rawValue
47+
record.reason = self.reason
48+
}
3849
try context.save()
3950
} catch {
4051
print("Failed to save the mood record", error.localizedDescription)

PlantingMind/PlantingMindTests/MoodRecordViewModelTests.swift

+2
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ final class MoodRecordViewModelTests: XCTestCase {
6363
calendarModel: calendarModel,
6464
moodRecord: moodRecord)
6565

66+
viewModel.save()
67+
6668
let expectedMood = Mood.normal
6769
let expectedReason = "Change Reason"
6870

0 commit comments

Comments
 (0)