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. 14
      LeStorage/WebSocketManager.swift

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

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

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

Loading…
Cancel
Save