NightScout.swift 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //
  2. // NightScout.swift
  3. // LoopFollow
  4. //
  5. // Created by Jon Fawcett on 6/5/20.
  6. // Copyright © 2020 Jon Fawcett. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. class NightscoutService {
  11. static let singleton = NightscoutService()
  12. //NS BG Struct
  13. struct bgData: Codable {
  14. var sgv: Int
  15. var date: TimeInterval
  16. var direction: String?
  17. var hoursMinutes: String?
  18. }
  19. let DIRECTIONS = ["-", "↑↑", "↑", "↗", "→", "↘︎", "↓", "↓↓", "-", "-"]
  20. var url: String
  21. init(){
  22. url = UserDefaultsRepository.url.value
  23. }
  24. // Main NS Data Pull
  25. func loadBGData(hours: Int = UserDefaultsRepository.hoursToLoad.value) {
  26. let count = String(hours * 60/5)
  27. let token = UserDefaultsRepository.token.value
  28. var urlBGDataPath: String = url + "/api/v1/entries/sgv.json?"
  29. if token == "" {
  30. urlBGDataPath = urlBGDataPath + "count=" + String(count)
  31. }
  32. else
  33. {
  34. urlBGDataPath = urlBGDataPath + "token=" + token + "&count=" + String(count)
  35. }
  36. guard let urlBGData = URL(string: urlBGDataPath) else {
  37. return
  38. }
  39. var request = URLRequest(url: urlBGData)
  40. request.cachePolicy = URLRequest.CachePolicy.reloadIgnoringLocalCacheData
  41. let getBGTask = URLSession.shared.dataTask(with: request) { data, response, error in
  42. guard error == nil else {
  43. return
  44. }
  45. guard let data = data else {
  46. return
  47. }
  48. let decoder = JSONDecoder()
  49. let entriesResponse = try? decoder.decode([bgData].self, from: data)
  50. if let entriesResponse = entriesResponse {
  51. for i in 0..<entriesResponse.count {
  52. }
  53. }
  54. }
  55. getBGTask.resume()
  56. }
  57. }