WIP: debug new endpoints

pull/941/head
ryanzhao 1 year ago
parent ef662b2152
commit 33c239eae2

@ -4,6 +4,7 @@ import Foundation
import GRDB import GRDB
import SessionUtilitiesKit import SessionUtilitiesKit
import SessionSnodeKit import SessionSnodeKit
import PromiseKit
public enum DisappearingMessagesJob: JobExecutor { public enum DisappearingMessagesJob: JobExecutor {
public static let maxFailureCount: Int = -1 public static let maxFailureCount: Int = -1
@ -106,35 +107,45 @@ public extension DisappearingMessagesJob {
// If there were no changes then none of the provided `interactionIds` are expiring messages // If there were no changes then none of the provided `interactionIds` are expiring messages
guard (changeCount ?? 0) > 0 else { return nil } guard (changeCount ?? 0) > 0 else { return nil }
let userPublicKey: String = getUserHexEncodedPublicKey(db)
interactionExpirationInfosByExpiresInSeconds.forEach { expiresInSeconds, expirationInfos in interactionExpirationInfosByExpiresInSeconds.forEach { expiresInSeconds, expirationInfos in
let expirationTimestampMs: Int64 = Int64(ceil(startedAtMs + expiresInSeconds * 1000)) let expirationTimestampMs: Int64 = Int64(ceil(startedAtMs + expiresInSeconds * 1000))
SnodeAPI.updateExpiry( SnodeAPI.updateExpiry(
publicKey: getUserHexEncodedPublicKey(db), publicKey: userPublicKey,
updatedExpiryMs: expirationTimestampMs, updatedExpiryMs: expirationTimestampMs,
serverHashes: expirationInfos.map { $0.serverHash }, serverHashes: expirationInfos.map { $0.serverHash },
shortenOnly: true shortenOnly: true
).map { results in ).map { results in
print("Ryan Test expire: \(results)")
var unchangedMessages: [String: UInt64] = [:] var unchangedMessages: [String: UInt64] = [:]
results.forEach { _, result in results.forEach { _, result in
guard let unchanged = result.unchanged else { return } guard let unchanged = result.unchanged else { return }
unchangedMessages.merge(unchanged) { (current, _) in current } unchangedMessages.merge(unchanged) { (current, _) in current }
} }
guard !unchangedMessages.isEmpty else { return } guard !unchangedMessages.isEmpty else { return }
unchangedMessages.forEach { serverHash, serverExpirationTimestampMs in unchangedMessages.forEach { serverHash, serverExpirationTimestampMs in
let expiresInSeconds: TimeInterval = (TimeInterval(serverExpirationTimestampMs) - startedAtMs) / 1000 let expiresInSeconds: TimeInterval = (TimeInterval(serverExpirationTimestampMs) - startedAtMs) / 1000
_ = try? Interaction _ = try? Interaction
.filter(Interaction.Columns.serverHash == serverHash) .filter(Interaction.Columns.serverHash == serverHash)
.updateAll(db, Interaction.Columns.expiresInSeconds.set(to: expiresInSeconds)) .updateAll(db, Interaction.Columns.expiresInSeconds.set(to: expiresInSeconds))
} }
}.retainUntilComplete() }.retainUntilComplete()
let swarm = SnodeAPI.swarmCache.wrappedValue[getUserHexEncodedPublicKey(db)] ?? [] SnodeAPI.getSwarm(for: userPublicKey)
let snode = swarm.randomElement()! .then2 { swarm -> Promise<Void> in
SnodeAPI.getExpiries(from: snode, associatedWith: getUserHexEncodedPublicKey(db), of: expirationInfos.map { $0.serverHash }).retainUntilComplete() guard let snode = swarm.randomElement() else { return Promise(error: StorageError.objectNotFound) }
return SnodeAPI.getExpiries(from: snode, associatedWith: getUserHexEncodedPublicKey(db), of: expirationInfos.map { $0.serverHash })
.map{ result in
print("Ryan Test get_expiries: \(result)")
}
}.retainUntilComplete()
} }
return updateNextRunIfNeeded(db) return updateNextRunIfNeeded(db)

@ -475,7 +475,7 @@ public final class SnodeAPI {
SNLog("Getting swarm for: \((publicKey == getUserHexEncodedPublicKey()) ? "self" : publicKey).") SNLog("Getting swarm for: \((publicKey == getUserHexEncodedPublicKey()) ? "self" : publicKey).")
let parameters: [String: Any] = [ let parameters: [String: Any] = [
"pubKey": (Features.useTestnet ? publicKey.removingIdPrefixIfNeeded() : publicKey) "pubKey": publicKey
] ]
return getRandomSnode() return getRandomSnode()
@ -510,7 +510,7 @@ public final class SnodeAPI {
// Make the request // Make the request
let parameters: JSON = [ let parameters: JSON = [
"pubKey": Features.useTestnet ? publicKey.removingIdPrefixIfNeeded() : publicKey, "pubKey": publicKey,
"messages": serverHashes, "messages": serverHashes,
"timestamp": timestamp, "timestamp": timestamp,
"pubkey_ed25519": ed25519PublicKey, "pubkey_ed25519": ed25519PublicKey,

@ -2,5 +2,5 @@
@objc(SNFeatures) @objc(SNFeatures)
public final class Features : NSObject { public final class Features : NSObject {
public static let useOnionRequests = true public static let useOnionRequests = true
public static let useTestnet = false public static let useTestnet = true
} }

Loading…
Cancel
Save