Review feedback

This commit is contained in:
2020-05-01 00:16:10 -07:00
parent c60685bf20
commit c6fa9fe960
5 changed files with 22 additions and 19 deletions

View File

@@ -221,6 +221,8 @@ class MainViewController: UIViewController, SwitchesViewControllerDelegate, Serv
func serverMultiplex(_ multiplex: ServerMultiplex, didEncounterError error: Error) func serverMultiplex(_ multiplex: ServerMultiplex, didEncounterError error: Error)
{ {
_updateConnectivityStatus(.error) _updateConnectivityStatus(.error)
print(error.localizedDescription)
var stderr = StandardErrorOutputStream()
print(error.localizedDescription, to: &stderr)
} }
} }

View File

@@ -10,13 +10,13 @@ import Foundation
enum DeviceState : String, Codable enum DeviceState : String, Codable
{ {
case off = "off" case off
case on = "on" case on
} }
enum DeviceType : String, Codable enum DeviceType : String, Codable
{ {
case `switch` = "switch" case `switch`
} }
protocol Device protocol Device
@@ -50,20 +50,21 @@ class AnyDevice : Device
private var device: Device private var device: Device
public var name: String public var name: String
{ get { return device.name } } { return device.name }
public var serial: String public var serial: String
{ get { return device.serial } } { return device.serial }
public var type: DeviceType public var type: DeviceType
{ get { return device.type } } { return device.type }
public var state: DeviceState { public var state: DeviceState {
get { return device.state } get { return device.state }
set { device.state = newValue } set { device.state = newValue }
} }
init(_ device: Device) { init(_ device: Device)
{
self.device = device self.device = device
} }
} }

View File

@@ -17,13 +17,15 @@ public struct HubitatDevice : Device
var id: Int = -1 var id: Int = -1
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey
{
case name = "label" case name = "label"
case id = "id" case id = "id"
case attributes = "attributes" case attributes = "attributes"
} }
enum AttributesKeys: String, CodingKey { enum AttributesKeys: String, CodingKey
{
case power case power
case dataType case dataType
case `switch` case `switch`

View File

@@ -17,7 +17,7 @@ protocol ServerMultiplexDelegate
enum ServerMultiplexError : Error enum ServerMultiplexError : Error
{ {
case UnknownDevice case unknownDevice
} }
class ServerMultiplex class ServerMultiplex
@@ -26,7 +26,7 @@ class ServerMultiplex
public private(set) var devices = Set<AnyDevice>() public private(set) var devices = Set<AnyDevice>()
private var servers: [Server] = [] private var servers: [Server] = []
public var numServers: Int { get { return servers.count } } public var numServers: Int { return servers.count }
public func addServer(_ server: Server) public func addServer(_ server: Server)
{ {
@@ -48,7 +48,7 @@ class ServerMultiplex
devices[index].state = state devices[index].state = state
} }
} else { } else {
completion(ServerMultiplexError.UnknownDevice) completion(ServerMultiplexError.unknownDevice)
} }
} }

View File

@@ -76,17 +76,15 @@ class WemoServer : Server
func fetchDevices(_ completion: @escaping (Result<[AnyDevice], Error>) -> Void) func fetchDevices(_ completion: @escaping (Result<[AnyDevice], Error>) -> Void)
{ {
let op = FetchDevicesOperation(baseURL: self.baseURL, session: _urlSession) let op = FetchDevicesOperation(baseURL: self.baseURL, session: _urlSession)
weak var weakOp = op op.completionBlock = { [unowned op] in
op.completionBlock = { if let error = op.error {
guard let strongOp = weakOp else { return }
if let error = strongOp.error {
self._logError("Error fetching devices", error: error) self._logError("Error fetching devices", error: error)
completion(.failure(error)) completion(.failure(error))
} else { } else {
self.devices = strongOp.devices self.devices = op.devices
} }
self.devices = strongOp.devices self.devices = op.devices
completion(.success(self.devices.map { AnyDevice($0) })) completion(.success(self.devices.map { AnyDevice($0) }))
} }