@@ -157,37 +157,54 @@ final class Logging {
157157
158158/*
159159
160- func addLogPermanentStore(scheduleRecords: [TypeLogData]) {
161- scheduleRecords.forEach { logData in
162- let hiddenID = logData.0
163- let stats = logData.1
164- let currentDate = Date()
165- let dateString = currentDate.en_string_from_date()
166-
167- guard let config = getConfig(hiddenID: hiddenID) else { return }
160+ struct ScheduleLogData {
161+ let hiddenID: String
162+ let stats: String
163+ }
164+
165+ enum LogError: Error {
166+ case insertionFailed(ids: [String])
167+ }
168+
169+ func addLogToPermanentStore(scheduleRecords: [ScheduleLogData]) throws {
170+ let dateString = Date().en_string_from_date()
171+ var failedInserts: [String] = []
172+
173+ for record in scheduleRecords {
174+ guard let config = getConfig(hiddenID: record.hiddenID) else {
175+ failedInserts.append(record.hiddenID)
176+ continue
177+ }
168178
169- let annotatedResult = formatLogResult(stats: stats, config: config)
179+ let result = formatLogResult(stats: record. stats, config: config)
170180
171- // Try updating existing record first, then create new if needed
172- let wasInserted = addLogExisting(hiddenID: hiddenID,
173- result: annotatedResult,
174- date: dateString)
175- || addLogNew(hiddenID: hiddenID,
176- result: annotatedResult,
177- date: dateString)
181+ let success = updateExistingLog(hiddenID: record.hiddenID, result: result, date: dateString)
182+ || createNewLog(hiddenID: record.hiddenID, result: result, date: dateString)
178183
179- // Optional: Handle insertion failure if needed
180- // if !wasInserted { /* log error */ }
184+ if !success {
185+ failedInserts.append(record.hiddenID)
186+ }
181187 }
182188
183- WriteLogRecordsJSON(localeProfile, logRecords)
189+ try persistLogs()
190+
191+ if !failedInserts.isEmpty {
192+ throw LogError.insertionFailed(ids: failedInserts)
193+ }
184194 }
185195
186196 private func formatLogResult(stats: String, config: Config) -> String {
187- guard config.task == SharedReference.shared.snapshot else { return stats }
197+ guard config.task == SharedReference.shared.snapshot else {
198+ return stats
199+ }
188200
189- let snapshotNumber = ( config.snapshotNum ?? 1) - 1
201+ let snapshotNumber = max(( config.snapshotNum ?? 1) - 1, 1)
190202 return "(\(snapshotNumber)) \(stats)"
191203 }
204+
205+ private func persistLogs() throws {
206+ // Renamed and potentially throwing version
207+ writeLogRecordsJSON(localeProfile, logRecords)
208+ }
192209
193210 */
0 commit comments