DeviceStatus.swift 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // DeviceStatus.swift
  3. // RileyLink
  4. //
  5. // Created by Pete Schwamb on 7/26/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public struct DeviceStatus {
  10. let device: String
  11. let timestamp: Date
  12. let pumpStatus: PumpStatus?
  13. let uploaderStatus: UploaderStatus?
  14. let loopStatus: LoopStatus?
  15. let radioAdapter: RadioAdapter?
  16. let overrideStatus: OverrideStatus?
  17. public init(device: String, timestamp: Date, pumpStatus: PumpStatus? = nil, uploaderStatus: UploaderStatus? = nil, loopStatus: LoopStatus? = nil, radioAdapter: RadioAdapter? = nil, overrideStatus: OverrideStatus? = nil) {
  18. self.device = device
  19. self.timestamp = timestamp
  20. self.pumpStatus = pumpStatus
  21. self.uploaderStatus = uploaderStatus
  22. self.loopStatus = loopStatus
  23. self.radioAdapter = radioAdapter
  24. self.overrideStatus = overrideStatus
  25. }
  26. public var dictionaryRepresentation: [String: Any] {
  27. var rval = [String: Any]()
  28. rval["device"] = device
  29. rval["created_at"] = TimeFormat.timestampStrFromDate(timestamp)
  30. if let pump = pumpStatus {
  31. rval["pump"] = pump.dictionaryRepresentation
  32. }
  33. if let uploader = uploaderStatus {
  34. rval["uploader"] = uploader.dictionaryRepresentation
  35. }
  36. if let loop = loopStatus {
  37. rval["loop"] = loop.dictionaryRepresentation
  38. }
  39. if let radioAdapter = radioAdapter {
  40. rval["radioAdapter"] = radioAdapter.dictionaryRepresentation
  41. }
  42. if let override = overrideStatus {
  43. rval["override"] = override.dictionaryRepresentation
  44. }
  45. return rval
  46. }
  47. }