mattermost-mobile/app/actions/websocket/preferences.ts
2022-01-28 15:53:55 -03:00

61 lines
1.8 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {deletePreferences} from '@app/queries/servers/preference';
import DatabaseManager from '@database/manager';
export async function handlePreferenceChangedEvent(serverUrl: string, msg: WebSocketMessage): Promise<void> {
const database = DatabaseManager.serverDatabases[serverUrl];
if (!database) {
return;
}
try {
const preference = JSON.parse(msg.data.preference) as PreferenceType;
const operator = database?.operator;
if (operator) {
operator.handlePreferences({
prepareRecordsOnly: false,
preferences: [preference],
sync: true,
});
}
} catch (error) {
// Do nothing
}
}
export async function handlePreferencesChangedEvent(serverUrl: string, msg: WebSocketMessage): Promise<void> {
const database = DatabaseManager.serverDatabases[serverUrl];
if (!database) {
return;
}
try {
const preferences = JSON.parse(msg.data.preferences) as PreferenceType[];
const operator = database?.operator;
if (operator) {
operator.handlePreferences({
prepareRecordsOnly: false,
preferences,
sync: true,
});
}
} catch (error) {
// Do nothing
}
}
export async function handlePreferencesDeletedEvent(serverUrl: string, msg: WebSocketMessage): Promise<void> {
const database = DatabaseManager.serverDatabases[serverUrl];
if (!database) {
return;
}
try {
const preferences = JSON.parse(msg.data.preferences) as PreferenceType[];
deletePreferences(database, preferences);
} catch {
// Do nothing
}
}