Add "recordings" table, save raw audio blobs in it

Other changes:
- Move Stored(Voicemail|Recording) interfaces into knex/types/tables
module for reduced boilerplate.
- Change updateStoredVoicemail to take Partial<StoredVoicemail>,
allowing to only update only some columns
This commit is contained in:
2021-03-11 10:59:08 -07:00
parent dfabc13e8e
commit 3452cd143a
4 changed files with 89 additions and 48 deletions

View File

@ -97,8 +97,8 @@ export interface RCMessage {
export interface Recording {
duration: number;
mimetype: string;
audio: Blob;
mimeType: string;
audio: ArrayBuffer;
}
export interface Transcription {
@ -106,21 +106,33 @@ export interface Transcription {
text: string | null;
}
export interface StoredVoicemail {
messageId: number;
extensionId: number;
processed: boolean;
received: string;
toNumber: string;
extensionNumber: string;
extensionName: string;
fromNumber: string;
fromName?: string;
duration: number;
transcriptionStatus: TranscriptionStatus;
transcription: string | null;
ticketId?: number;
contactId?: number;
contactableType?: string;
contactableId?: number;
declare module "knex/types/tables" {
interface StoredVoicemail {
messageId: number;
extensionId: number;
received: string;
toNumber: string;
extensionNumber: string;
extensionName: string;
fromNumber: string;
fromName: string;
duration: number;
transcriptionStatus: TranscriptionStatus;
transcription: string | null;
ticketId?: number;
contactId?: number;
contactableType?: string;
contactableId?: number;
}
interface StoredRecording {
messageId: number;
mimeType: string;
audio: ArrayBuffer;
}
interface Tables {
voicemails: StoredVoicemail;
recordings: StoredRecording;
}
}