77//
88
99import Foundation
10-
1110#if canImport(FoundationNetworking)
1211import FoundationNetworking
1312#endif
14- /*
13+ import HTTP
14+
1515/// Lock Information Web Request
16- public struct LockInformationNetServiceRequest: Equatable {
16+ public struct LockInformationNetServiceRequest : Equatable , Hashable {
1717
1818 /// Lock server
1919 public let server : URL
@@ -22,32 +22,38 @@ public struct LockInformationNetServiceRequest: Equatable {
2222public extension LockInformationNetServiceRequest {
2323
2424 func urlRequest( ) -> URLRequest {
25-
2625 // http://localhost:8080/info
2726 let url = server. appendingPathComponent ( " info " )
2827 return URLRequest ( url: url)
2928 }
3029}
3130
31+ /*
3232public extension LockNetService.Client {
3333
3434 /// Read the lock's information characteristic.
35- func readInformation(for server: LockNetService,
36- timeout: TimeInterval = LockNetService.defaultTimeout) throws -> LockNetService.LockInformation {
37-
38- log?("Read information for \(server.url.absoluteString)")
39-
40- let request = LockInformationNetServiceRequest(server: server.url).urlRequest()
41-
42- let (httpResponse, data) = try urlSession.synchronousDataTask(with: request)
35+ func readInformation(
36+ for server: LockNetService,
37+ timeout: TimeInterval = LockNetService.defaultTimeout
38+ ) async throws -> LockNetService.LockInformation {
4339
40+ }
41+ }
42+
43+ public extension HTTPClient {
44+
45+ /// Read the lock's information characteristic.
46+ func readInformation(
47+ for server: URL
48+ ) async throws -> LockNetService.LockInformation {
49+ //log?("Read information for \(server.url.absoluteString)")
50+ let request = LockInformationNetServiceRequest(server: server).urlRequest()
51+ let (httpResponse, data) = try await self.data(for: request)
4452 guard httpResponse.statusCode == 200
4553 else { throw LockNetService.Error.statusCode(httpResponse.statusCode) }
46-
4754 guard let jsonData = data,
4855 let response = try? jsonDecoder.decode(LockNetService.LockInformation.self, from: jsonData)
4956 else { throw LockNetService.Error.invalidResponse }
50-
5157 return response
5258 }
5359}
0 commit comments