mattermost-mobile/app/actions/websocket/preferences.ts
Elias Nahum 162bc6cc3f
[Gekidou] various fixes (#6022)
* remove empty roles before fetching

* Fix prepare delete teams, channels and posts so they don't throw

* Fix reaction operator and moved some handlers to their correct file

* include delete categories when teams or channels are deleted

* Remove unused array in fetchRoles

* fix param comment for reactions handler

* don't sync preferences when getting the WS event
2022-03-03 12:11:47 -03:00

59 lines
1.7 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import DatabaseManager from '@database/manager';
import {deletePreferences} from '@queries/servers/preference';
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],
});
}
} 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,
});
}
} 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
}
}