Notes.swift 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // CarbsToday.swift
  3. // LoopFollow
  4. //
  5. // Created by Jonas Björkert on 2023-10-04.
  6. // Copyright © 2023 Jon Fawcett. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. extension MainViewController {
  11. // NS Note Response Processor
  12. func processNotes(entries: [[String:AnyObject]]) {
  13. //if UserDefaultsRepository.debugLog.value { self.writeDebugLog(value: "Process: Notes") }
  14. // because it's a small array, we're going to destroy and reload every time.
  15. noteGraphData.removeAll()
  16. var lastFoundIndex = 0
  17. entries.reversed().forEach { currentEntry in
  18. guard let currentEntry = currentEntry as? [String: AnyObject] else { return }
  19. var date: String
  20. if currentEntry["timestamp"] != nil {
  21. date = currentEntry["timestamp"] as! String
  22. } else if currentEntry["created_at"] != nil {
  23. date = currentEntry["created_at"] as! String
  24. } else {
  25. return
  26. }
  27. if let parsedDate = NightscoutUtils.parseDate(date) {
  28. let dateTimeStamp = parsedDate.timeIntervalSince1970
  29. let sgv = findNearestBGbyTime(needle: dateTimeStamp, haystack: bgData, startingIndex: lastFoundIndex)
  30. lastFoundIndex = sgv.foundIndex
  31. guard let thisNote = currentEntry["notes"] as? String else { return }
  32. if dateTimeStamp < (dateTimeUtils.getNowTimeIntervalUTC() + (60 * 60)) {
  33. let dot = DataStructs.noteStruct(date: Double(dateTimeStamp), sgv: Int(sgv.sgv), note: thisNote)
  34. noteGraphData.append(dot)
  35. }
  36. } else {
  37. print("Failed to parse date")
  38. }
  39. }
  40. if UserDefaultsRepository.graphOtherTreatments.value {
  41. updateNotes()
  42. }
  43. }
  44. }