Make websocket pushes more targeted

This commit is contained in:
Jonas Lochmann
2022-09-22 08:49:06 +02:00
parent 613776cbf9
commit 84f6f0df69
78 changed files with 224 additions and 140 deletions
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -59,4 +59,5 @@ export async function dispatchAddInstalledApps ({ deviceId, action, cache }: {
)
cache.devicesWithModifiedInstalledApps.add(deviceId)
cache.incrementTriggeredSyncLevel(1)
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2021 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -156,4 +156,6 @@ export async function dispatchAddUsedTime ({ action, cache }: {
})
}
}
cache.incrementTriggeredSyncLevel(1)
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2021 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -72,7 +72,7 @@ export async function dispatchAddUsedTimeVersion2 ({ deviceId, action, cache, ev
// verify that the category exists
if (!categoryEntryUnsafe) {
eventHandler.countEvent('add used time category to add time for not found')
cache.requireFullSync()
cache.requireSenderFullSync()
continue
}
@@ -247,9 +247,11 @@ export async function dispatchAddUsedTimeVersion2 ({ deviceId, action, cache, ev
// As it should occur not too often, a full sync should be no problem.
// To keep an eye on it, it is counted.
cache.areChangesImportant = true
cache.incrementTriggeredSyncLevel(2)
eventHandler.countEvent('add used time for a different user than the current user of the device')
}
}
cache.incrementTriggeredSyncLevel(1)
}
@@ -31,4 +31,6 @@ export async function dispatchFinishKeyRequestAction ({ action, cache, deviceId
},
transaction: cache.transaction
})
// no sync triggered
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -23,5 +23,5 @@ export async function dispatchForceSyncAction ({ cache }: {
action: ForceSyncAction
cache: Cache
}) {
cache.areChangesImportant = true
cache.incrementTriggeredSyncLevel(2)
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -99,6 +99,7 @@ export async function dispatchMarkTaskPendingAction ({ action, cache, deviceId }
})
cache.categoriesWithModifiedTasks.add(taskInfo.categoryId)
cache.incrementTriggeredSyncLevel(1) // parents are not faster reachable
await sendTaskDoneMails({
database: cache.database,
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -36,4 +36,5 @@ export async function dispatchRemoveInstalledApps ({ deviceId, action, cache }:
})
cache.devicesWithModifiedInstalledApps.add(deviceId)
cache.incrementTriggeredSyncLevel(1)
}
@@ -105,6 +105,5 @@ export async function dispatchReplyToKeyRequestAction ({ deviceId, action, cache
transaction: cache.transaction
})
// there is no way (yet) to inform the specific device only
cache.areChangesImportant = true
cache.incrementTargetedTriggeredSyncLevel(request.senderDeviceId, 2)
}
@@ -72,5 +72,5 @@ export async function dispatchSendKeyRequestAction ({ action, cache, deviceId }:
transaction: cache.transaction
})
cache.areChangesImportant = true
cache.incrementTriggeredSyncLevel(2)
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -57,4 +57,6 @@ export async function dispatchSignOutAtDevice ({ deviceId, cache }: {
})
})
}
cache.incrementTriggeredSyncLevel(1)
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -46,7 +46,7 @@ export async function dispatchTriedDisablingDeviceAdmin ({ deviceId, cache }: {
await deviceEntry.save({ transaction: cache.transaction })
cache.invalidiateDeviceList = true
cache.areChangesImportant = true
cache.incrementTriggeredSyncLevel(1)
}
if (!hadManipulationBefore) {
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -95,4 +95,5 @@ export async function dispatchUpdateAppActivities ({ deviceId, action, cache }:
}
cache.devicesWithModifiedInstalledApps.add(deviceId)
cache.incrementTriggeredSyncLevel(1)
}
@@ -177,5 +177,5 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
}
cache.invalidiateDeviceList = true
cache.areChangesImportant = true
cache.incrementTriggeredSyncLevel(1)
}
@@ -54,4 +54,6 @@ export async function dispatchUpdateInstalledApps ({ deviceId, action, cache }:
cache.devicesWithModifiedInstalledApps.add(deviceId)
}
cache.incrementTriggeredSyncLevel(1)
}
@@ -42,6 +42,7 @@ export async function dispatchUploadDevicePublicKeyAction ({ deviceId, action, c
await deviceEntry.save({ transaction: cache.transaction })
cache.invalidiateDeviceList = true
cache.incrementTriggeredSyncLevel(2)
} else if (deviceEntry.publicKey.equals(action.key)) {
eventHandler.countEvent('dispatchUploadDevicePublicKeyAction:duplicate action')
} else {