diff --git a/src/matrix/storage/idb/stores/GroupSessionDecryptionStore.ts b/src/matrix/storage/idb/stores/GroupSessionDecryptionStore.ts index da47639d..25c21b4b 100644 --- a/src/matrix/storage/idb/stores/GroupSessionDecryptionStore.ts +++ b/src/matrix/storage/idb/stores/GroupSessionDecryptionStore.ts @@ -15,30 +15,39 @@ limitations under the License. */ import {MIN_UNICODE, MAX_UNICODE} from "./common"; +import {Store} from "../Store" -function encodeKey(roomId, sessionId, messageIndex) { +function encodeKey(roomId: string, sessionId: string, messageIndex: number | string): string { return `${roomId}|${sessionId}|${messageIndex}`; } +interface GroupSessionDecryption { + eventId: string + timestamp: number + key: string +} + export class GroupSessionDecryptionStore { - constructor(store) { + private _store: Store + + constructor(store: Store) { this._store = store; } - get(roomId, sessionId, messageIndex) { + get(roomId: string, sessionId: string, messageIndex: number): Promise { return this._store.get(encodeKey(roomId, sessionId, messageIndex)); } - set(roomId, sessionId, messageIndex, decryption) { + set(roomId: string, sessionId: string, messageIndex: number, decryption: GroupSessionDecryption): Promise { decryption.key = encodeKey(roomId, sessionId, messageIndex); - this._store.put(decryption); + return this._store.put(decryption); } - removeAllForRoom(roomId) { + removeAllForRoom(roomId: string): Promise { const range = this._store.IDBKeyRange.bound( encodeKey(roomId, MIN_UNICODE, MIN_UNICODE), encodeKey(roomId, MAX_UNICODE, MAX_UNICODE) ); - this._store.delete(range); + return this._store.delete(range); } }