forked from Ivasoft/mattermost-mobile
* Adds threads in team database table and handlers DM/GM channels have no team ID. This makes it troublesome to paginate threads in a team. The issue is that whenever a DM/GM thread is fetched from pagination it will be added in all teams in that server, potentially creating gaps in between threads for those teams. This PR inserts a new table in the DB ThreadsInTeam which will hold references of threads loaded in which server. Thread lists then would have to rely on that table to show threads. Co-authored-by: Elias Nahum <nahumhbl@gmail.com> Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
41 lines
2.1 KiB
TypeScript
41 lines
2.1 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import ServerDataOperatorBase from '@database/operator/server_data_operator/handlers';
|
|
import CategoryHandler, {CategoryHandlerMix} from '@database/operator/server_data_operator/handlers/category';
|
|
import ChannelHandler, {ChannelHandlerMix} from '@database/operator/server_data_operator/handlers/channel';
|
|
import PostHandler, {PostHandlerMix} from '@database/operator/server_data_operator/handlers/post';
|
|
import PostsInChannelHandler, {PostsInChannelHandlerMix} from '@database/operator/server_data_operator/handlers/posts_in_channel';
|
|
import PostsInThreadHandler, {PostsInThreadHandlerMix} from '@database/operator/server_data_operator/handlers/posts_in_thread';
|
|
import ReactionHander, {ReactionHandlerMix} from '@database/operator/server_data_operator/handlers/reaction';
|
|
import TeamHandler, {TeamHandlerMix} from '@database/operator/server_data_operator/handlers/team';
|
|
import ThreadHandler, {ThreadHandlerMix} from '@database/operator/server_data_operator/handlers/thread';
|
|
import ThreadInTeamHandler, {ThreadInTeamHandlerMix} from '@database/operator/server_data_operator/handlers/thread_in_team';
|
|
import UserHandler, {UserHandlerMix} from '@database/operator/server_data_operator/handlers/user';
|
|
import mix from '@utils/mix';
|
|
|
|
import type {Database} from '@nozbe/watermelondb';
|
|
|
|
interface ServerDataOperator extends ServerDataOperatorBase, PostHandlerMix, PostsInChannelHandlerMix,
|
|
PostsInThreadHandlerMix, ReactionHandlerMix, UserHandlerMix, ChannelHandlerMix, CategoryHandlerMix, TeamHandlerMix, ThreadHandlerMix, ThreadInTeamHandlerMix {}
|
|
|
|
class ServerDataOperator extends mix(ServerDataOperatorBase).with(
|
|
CategoryHandler,
|
|
ChannelHandler,
|
|
PostHandler,
|
|
PostsInChannelHandler,
|
|
PostsInThreadHandler,
|
|
ReactionHander,
|
|
TeamHandler,
|
|
ThreadHandler,
|
|
ThreadInTeamHandler,
|
|
UserHandler,
|
|
) {
|
|
// eslint-disable-next-line no-useless-constructor
|
|
constructor(database: Database) {
|
|
super(database);
|
|
}
|
|
}
|
|
|
|
export default ServerDataOperator;
|