Page MenuHomePhorge

D7182.1765111311.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D7182.1765111311.diff

diff --git a/web/database/utils/constants.js b/web/database/utils/constants.js
--- a/web/database/utils/constants.js
+++ b/web/database/utils/constants.js
@@ -2,3 +2,5 @@
export const SQLITE_CONTENT = 'sqliteFileContent';
export const SQLITE_ENCRYPTION_KEY = 'encryptionKey';
+
+export const CURRENT_USER_ID_KEY = 'current_user_id';
diff --git a/web/database/worker/db-worker.js b/web/database/worker/db-worker.js
--- a/web/database/worker/db-worker.js
+++ b/web/database/worker/db-worker.js
@@ -24,7 +24,12 @@
removeAllDrafts,
updateDraft,
} from '../queries/draft-queries.js';
-import { SQLITE_CONTENT, SQLITE_ENCRYPTION_KEY } from '../utils/constants.js';
+import { getMetadata, setMetadata } from '../queries/metadata-queries.js';
+import {
+ CURRENT_USER_ID_KEY,
+ SQLITE_CONTENT,
+ SQLITE_ENCRYPTION_KEY,
+} from '../utils/constants.js';
import { generateDatabaseCryptoKey } from '../utils/worker-crypto-utils.js';
const localforageConfig: PartialConfig = {
@@ -124,6 +129,21 @@
type: workerResponseMessageTypes.CLIENT_STORE,
store: getClientStore(),
};
+ } else if (message.type === workerRequestMessageTypes.SET_CURRENT_USER_ID) {
+ if (!sqliteDb) {
+ throw new Error('Database not initialized');
+ }
+ setMetadata(sqliteDb, CURRENT_USER_ID_KEY, message.userID);
+ return;
+ } else if (message.type === workerRequestMessageTypes.GET_CURRENT_USER_ID) {
+ if (!sqliteDb) {
+ throw new Error('Database not initialized');
+ }
+ const userID = getMetadata(sqliteDb, CURRENT_USER_ID_KEY);
+ return {
+ type: workerResponseMessageTypes.GET_CURRENT_USER_ID,
+ userID,
+ };
}
throw new Error('Request type not supported');
diff --git a/web/types/worker-types.js b/web/types/worker-types.js
--- a/web/types/worker-types.js
+++ b/web/types/worker-types.js
@@ -12,6 +12,8 @@
GENERATE_DATABASE_ENCRYPTION_KEY: 2,
PROCESS_STORE_OPERATIONS: 3,
GET_CLIENT_STORE: 4,
+ SET_CURRENT_USER_ID: 5,
+ GET_CURRENT_USER_ID: 6,
});
export type PingWorkerRequestMessage = {
@@ -38,12 +40,23 @@
+type: 4,
};
+export type SetCurrentUserIDRequestMessage = {
+ +type: 5,
+ +userID: string,
+};
+
+export type GetCurrentUserIDRequestMessage = {
+ +type: 6,
+};
+
export type WorkerRequestMessage =
| PingWorkerRequestMessage
| InitWorkerRequestMessage
| GenerateDatabaseEncryptionKeyRequestMessage
| ProcessStoreOperationsRequestMessage
- | GetClientStoreRequestMessage;
+ | GetClientStoreRequestMessage
+ | SetCurrentUserIDRequestMessage
+ | GetCurrentUserIDRequestMessage;
export type WorkerRequestProxyMessage = {
+id: number,
@@ -54,6 +67,7 @@
export const workerResponseMessageTypes = Object.freeze({
PONG: 0,
CLIENT_STORE: 1,
+ GET_CURRENT_USER_ID: 2,
});
export type PongWorkerResponseMessage = {
@@ -66,9 +80,15 @@
+store: ClientDBStore,
};
+export type GetCurrentUserIDResponseMessage = {
+ +type: 2,
+ +userID: ?string,
+};
+
export type WorkerResponseMessage =
| PongWorkerResponseMessage
- | ClientStoreResponseMessage;
+ | ClientStoreResponseMessage
+ | GetCurrentUserIDResponseMessage;
export type WorkerResponseProxyMessage = {
+id?: number,

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 12:41 PM (17 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5844200
Default Alt Text
D7182.1765111311.diff (3 KB)

Event Timeline