Adds deviceId to sync POST request

sync2
Laurent 11 months ago
parent 4542e42985
commit 01dbb8b1b6
  1. 10
      LeStorage/Services.swift
  2. 3
      LeStorage/StoreCenter.swift
  3. 16
      LeStorage/WebSocketManager.swift

@ -293,7 +293,8 @@ public class Services {
operation: apiCall.method.rawValue,
modelName: modelName,
data: object,
storeId: object.getStoreId())
storeId: object.getStoreId(),
deviceId: StoreCenter.main.deviceId())
request.httpBody = try JSON.encoder.encode(payload)
} else {
@ -393,7 +394,8 @@ public class Services {
let payload = SyncPayload(
operation: method.rawValue,
modelName: String(describing: T.self),
data: instance)
data: instance,
deviceId: StoreCenter.main.deviceId())
let syncRequest = try self._baseSyncRequest(method: .post, payload: payload)
return try await self._runRequest(syncRequest)
@ -409,7 +411,8 @@ public class Services {
let payload = SyncPayload(
operation: method.rawValue,
modelName: String(describing: T.self),
data: instance)
data: instance,
deviceId: StoreCenter.main.deviceId())
let syncRequest = try self._baseSyncRequest(method: .post, payload: payload)
return try await self._runRequest(syncRequest)
@ -648,6 +651,7 @@ struct SyncPayload<T: Encodable>: Encodable {
var modelName: String
var data: T
var storeId: String?
var deviceId: String?
}
struct ErrorMessage {

@ -64,8 +64,9 @@ public class StoreCenter {
NetworkMonitor.shared.onConnectionEstablished = {
self._resumeApiCalls()
self._configureWebSocket()
// self._configureWebSocket()
}
Logger.log("device Id = \(self.deviceId())")
}
public func configureURLs(secureScheme: Bool, domain: String) {

@ -54,12 +54,14 @@ class WebSocketManager: ObservableObject {
case .failure(let error):
print("Error in receiving message: \(error)")
self._handleWebSocketError(error)
// self._setupWebSocket()
case .success(let message):
switch message {
case .string(let text):
print("Received text: \(text)")
case .string(let deviceId):
print("device id = \(StoreCenter.main.deviceId()), origin id: \(deviceId)")
guard StoreCenter.main.deviceId() != deviceId else {
break
}
Task {
do {
try await StoreCenter.main.synchronizeLastUpdates()
@ -68,9 +70,6 @@ class WebSocketManager: ObservableObject {
}
}
// DispatchQueue.main.async {
// self.messages.append(text)
// }
case .data(let data):
print("Received binary message: \(data)")
break
@ -108,7 +107,8 @@ class WebSocketManager: ObservableObject {
private func _ping() {
self._webSocketTask?.sendPing { error in
// Logger.log("ping sent. Error?: \(error?.localizedDescription ?? "none") ")
if let error: NSError = error as NSError?,
error.domain == NSPOSIXErrorDomain && error.code == 57 {
self._setupWebSocket()

Loading…
Cancel
Save