mattermost-mobile/app/actions/remote/preference.ts
Elias Nahum 8cd127a223
[Gekidou] Typings & PostMetadata structure (#5542)
* Typings & PostMetadata structure

* comment out unused code

* Remove duplicate interface

* Fix getPreferenceAsBool defaultValue
2021-07-15 11:49:02 -04:00

40 lines
1.1 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import DatabaseManager from '@database/manager';
import NetworkManager from '@init/network_manager';
import {forceLogoutIfNecessary} from './general';
export type MyPreferencesRequest = {
preferences?: PreferenceType[];
error?: never;
}
export const fetchMyPreferences = async (serverUrl: string, fetchOnly = false): Promise<MyPreferencesRequest> => {
let client;
try {
client = NetworkManager.getClient(serverUrl);
} catch (error) {
return {error};
}
try {
const preferences = await client.getMyPreferences();
if (!fetchOnly) {
const operator = DatabaseManager.serverDatabases[serverUrl]?.operator;
if (operator) {
operator.handlePreferences({
prepareRecordsOnly: false,
preferences,
});
}
}
return {preferences};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
return {error};
}
};