diff --git a/app/database/operator/server_data_operator/handlers/category.ts b/app/database/operator/server_data_operator/handlers/category.ts index 2e30f87fd0..fb1e94858c 100644 --- a/app/database/operator/server_data_operator/handlers/category.ts +++ b/app/database/operator/server_data_operator/handlers/category.ts @@ -34,7 +34,6 @@ const CategoryHandler = (superclass: any) => class extends superclass { * @param {HandleCategoryArgs} categoriesArgs * @param {Category[]} categoriesArgs.categories * @param {boolean} categoriesArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleCategories = async ({categories, prepareRecordsOnly = true}: HandleCategoryArgs): Promise => { @@ -51,7 +50,7 @@ const CategoryHandler = (superclass: any) => class extends superclass { const exists = await db.get(CATEGORY).query( Q.where('id', Q.oneOf(ids)), ).fetch(); - const categoryMap = new Map(exists.map((c) => [c.id, c])); + const categoryMap = new Map(exists.map((c) => [c.id, c])); const createOrUpdateRawValues = uniqueRaws.reduce((res: Category[], c) => { const e = categoryMap.get(c.id); if (!e) { @@ -85,9 +84,8 @@ const CategoryHandler = (superclass: any) => class extends superclass { /** * handleCategoryChannels: Handler responsible for the Create/Update operations occurring on the CategoryChannel table from the 'Server' schema * @param {HandleCategoryChannelArgs} categoriesArgs - * @param {CategoryChannel[]} categoriesArgs.categorychannels + * @param {CategoryChannel[]} categoriesArgs.categoryChannels * @param {boolean} categoriesArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleCategoryChannels = async ({categoryChannels, prepareRecordsOnly = true}: HandleCategoryChannelArgs): Promise => { diff --git a/app/database/operator/server_data_operator/handlers/channel.ts b/app/database/operator/server_data_operator/handlers/channel.ts index 021010d474..cb741a084d 100644 --- a/app/database/operator/server_data_operator/handlers/channel.ts +++ b/app/database/operator/server_data_operator/handlers/channel.ts @@ -48,7 +48,6 @@ const ChannelHandler = (superclass: any) => class extends superclass { * @param {HandleChannelArgs} channelsArgs * @param {RawChannel[]} channelsArgs.channels * @param {boolean} channelsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleChannel = async ({channels, prepareRecordsOnly = true}: HandleChannelArgs): Promise => { @@ -98,7 +97,6 @@ const ChannelHandler = (superclass: any) => class extends superclass { * @param {HandleMyChannelSettingsArgs} settingsArgs * @param {RawMyChannelSettings[]} settingsArgs.settings * @param {boolean} settingsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleMyChannelSettings = async ({settings, prepareRecordsOnly = true}: HandleMyChannelSettingsArgs): Promise => { @@ -156,7 +154,6 @@ const ChannelHandler = (superclass: any) => class extends superclass { * @param {HandleChannelInfoArgs} channelInfosArgs * @param {RawChannelInfo[]} channelInfosArgs.channelInfos * @param {boolean} channelInfosArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleChannelInfo = async ({channelInfos, prepareRecordsOnly = true}: HandleChannelInfoArgs): Promise => { @@ -216,7 +213,6 @@ const ChannelHandler = (superclass: any) => class extends superclass { * @param {HandleMyChannelArgs} myChannelsArgs * @param {RawMyChannel[]} myChannelsArgs.myChannels * @param {boolean} myChannelsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleMyChannel = async ({channels, myChannels, isCRTEnabled, prepareRecordsOnly = true}: HandleMyChannelArgs): Promise => { @@ -304,7 +300,6 @@ const ChannelHandler = (superclass: any) => class extends superclass { * @param {HandleChannelMembershipArgs} channelMembershipsArgs * @param {ChannelMembership[]} channelMembershipsArgs.channelMemberships * @param {boolean} channelMembershipsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleChannelMembership = async ({channelMemberships, prepareRecordsOnly = true}: HandleChannelMembershipArgs): Promise => { diff --git a/app/database/operator/server_data_operator/handlers/group.ts b/app/database/operator/server_data_operator/handlers/group.ts index 1b767eff49..3738ecd71e 100644 --- a/app/database/operator/server_data_operator/handlers/group.ts +++ b/app/database/operator/server_data_operator/handlers/group.ts @@ -25,7 +25,6 @@ const GroupHandler = (superclass: any) => class extends superclass implements Gr * @param {HandleGroupArgs} groupsArgs * @param {Group[]} groupsArgs.groups * @param {boolean} groupsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleGroups = async ({groups, prepareRecordsOnly = true}: HandleGroupArgs): Promise => { diff --git a/app/database/operator/server_data_operator/handlers/post.ts b/app/database/operator/server_data_operator/handlers/post.ts index 85f31b5c38..d32da053ef 100644 --- a/app/database/operator/server_data_operator/handlers/post.ts +++ b/app/database/operator/server_data_operator/handlers/post.ts @@ -31,6 +31,8 @@ const { POST, } = MM_TABLES.SERVER; +type PostActionType = keyof typeof ActionType.POSTS; + export interface PostHandlerMix { handleDraft: ({drafts, prepareRecordsOnly}: HandleDraftArgs) => Promise; handleFiles: ({files, prepareRecordsOnly}: HandleFilesArgs) => Promise; @@ -45,7 +47,6 @@ const PostHandler = (superclass: any) => class extends superclass { * @param {HandleDraftArgs} draftsArgs * @param {RawDraft[]} draftsArgs.drafts * @param {boolean} draftsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleDraft = async ({drafts, prepareRecordsOnly = true}: HandleDraftArgs): Promise => { @@ -266,10 +267,12 @@ const PostHandler = (superclass: any) => class extends superclass { /** * handlePostsInThread: Handler responsible for the Create/Update operations occurring on the PostsInThread table from the 'Server' schema - * @param {PostsInThread[]} rootPosts + * @param {Record} postsMap + * @param {PostActionType} actionType + * @param {boolean} prepareRecordsOnly * @returns {Promise} */ - handlePostsInThread = async (postsMap: Record, actionType: never, prepareRecordsOnly = false): Promise => { + handlePostsInThread = async (postsMap: Record, actionType: PostActionType, prepareRecordsOnly = false): Promise => { if (!postsMap || !Object.keys(postsMap).length) { logWarning( 'An empty or undefined "postsMap" object has been passed to the handlePostsInThread method', @@ -292,9 +295,11 @@ const PostHandler = (superclass: any) => class extends superclass { /** * handlePostsInChannel: Handler responsible for the Create/Update operations occurring on the PostsInChannel table from the 'Server' schema * @param {Post[]} posts + * @param {PostActionType} actionType + * @param {boolean} prepareRecordsOnly * @returns {Promise} */ - handlePostsInChannel = async (posts: Post[], actionType: never, prepareRecordsOnly = false): Promise => { + handlePostsInChannel = async (posts: Post[], actionType: PostActionType, prepareRecordsOnly = false): Promise => { // At this point, the parameter 'posts' is already a chain of posts. Now, we have to figure out how to plug it // into existing chains in the PostsInChannel table diff --git a/app/database/operator/server_data_operator/handlers/reaction.ts b/app/database/operator/server_data_operator/handlers/reaction.ts index cc5144b7a5..a4f8aebd48 100644 --- a/app/database/operator/server_data_operator/handlers/reaction.ts +++ b/app/database/operator/server_data_operator/handlers/reaction.ts @@ -23,7 +23,6 @@ const ReactionHandler = (superclass: any) => class extends superclass { * @param {ReactionsPerPost[]} handleReactions.postsReactions * @param {boolean} handleReactions.prepareRecordsOnly * @param {boolean} handleReactions.skipSync - * @throws DataOperatorException * @returns {Promise>} */ handleReactions = async ({postsReactions, prepareRecordsOnly, skipSync}: HandleReactionsArgs): Promise => { diff --git a/app/database/operator/server_data_operator/handlers/team.ts b/app/database/operator/server_data_operator/handlers/team.ts index 171897492f..86d1d6070d 100644 --- a/app/database/operator/server_data_operator/handlers/team.ts +++ b/app/database/operator/server_data_operator/handlers/team.ts @@ -50,7 +50,6 @@ const TeamHandler = (superclass: any) => class extends superclass { * @param {HandleTeamMembershipArgs} teamMembershipsArgs * @param {TeamMembership[]} teamMembershipsArgs.teamMemberships * @param {boolean} teamMembershipsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleTeamMemberships = async ({teamMemberships, prepareRecordsOnly = true}: HandleTeamMembershipArgs): Promise => { @@ -106,7 +105,6 @@ const TeamHandler = (superclass: any) => class extends superclass { * @param {HandleTeamArgs} teamsArgs * @param {Team[]} teamsArgs.teams * @param {boolean} teamsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleTeam = async ({teams, prepareRecordsOnly = true}: HandleTeamArgs): Promise => { @@ -156,7 +154,6 @@ const TeamHandler = (superclass: any) => class extends superclass { * @param {HandleTeamChannelHistoryArgs} teamChannelHistoriesArgs * @param {TeamChannelHistory[]} teamChannelHistoriesArgs.teamChannelHistories * @param {boolean} teamChannelHistoriesArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleTeamChannelHistory = async ({teamChannelHistories, prepareRecordsOnly = true}: HandleTeamChannelHistoryArgs): Promise => { @@ -183,7 +180,6 @@ const TeamHandler = (superclass: any) => class extends superclass { * @param {HandleTeamSearchHistoryArgs} teamSearchHistoriesArgs * @param {TeamSearchHistory[]} teamSearchHistoriesArgs.teamSearchHistories * @param {boolean} teamSearchHistoriesArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleTeamSearchHistory = async ({teamSearchHistories, prepareRecordsOnly = true}: HandleTeamSearchHistoryArgs): Promise => { @@ -211,7 +207,6 @@ const TeamHandler = (superclass: any) => class extends superclass { * @param {HandleMyTeamArgs} myTeamsArgs * @param {MyTeam[]} myTeamsArgs.myTeams * @param {boolean} myTeamsArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleMyTeam = async ({myTeams, prepareRecordsOnly = true}: HandleMyTeamArgs): Promise => { diff --git a/app/database/operator/server_data_operator/handlers/thread.ts b/app/database/operator/server_data_operator/handlers/thread.ts index 9ed729dce2..d4bb3bfc78 100644 --- a/app/database/operator/server_data_operator/handlers/thread.ts +++ b/app/database/operator/server_data_operator/handlers/thread.ts @@ -137,7 +137,6 @@ const ThreadHandler = (superclass: any) => class extends superclass { * @param {ParticipantsPerThread[]} handleThreadParticipants.threadsParticipants * @param {boolean} handleThreadParticipants.prepareRecordsOnly * @param {boolean} handleThreadParticipants.skipSync - * @throws DataOperatorException * @returns {Promise>} */ handleThreadParticipants = async ({threadsParticipants, prepareRecordsOnly, skipSync = false}: HandleThreadParticipantsArgs): Promise => { diff --git a/app/database/operator/server_data_operator/handlers/user.ts b/app/database/operator/server_data_operator/handlers/user.ts index 61a90eae2c..51ddff7ba5 100644 --- a/app/database/operator/server_data_operator/handlers/user.ts +++ b/app/database/operator/server_data_operator/handlers/user.ts @@ -30,7 +30,6 @@ const UserHandler = (superclass: any) => class extends superclass { * @param {HandlePreferencesArgs} preferencesArgs * @param {PreferenceType[]} preferencesArgs.preferences * @param {boolean} preferencesArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handlePreferences = async ({preferences, prepareRecordsOnly = true, sync = false}: HandlePreferencesArgs): Promise => { @@ -101,7 +100,6 @@ const UserHandler = (superclass: any) => class extends superclass { * @param {HandleUsersArgs} usersArgs * @param {UserProfile[]} usersArgs.users * @param {boolean} usersArgs.prepareRecordsOnly - * @throws DataOperatorException * @returns {Promise} */ handleUsers = async ({users, prepareRecordsOnly = true}: HandleUsersArgs): Promise => { diff --git a/app/hooks/navigation_button_pressed.tsx b/app/hooks/navigation_button_pressed.tsx index e85ebd2195..6de61dbde9 100644 --- a/app/hooks/navigation_button_pressed.tsx +++ b/app/hooks/navigation_button_pressed.tsx @@ -4,7 +4,8 @@ import {DependencyList, EffectCallback, useEffect} from 'react'; import {Navigation} from 'react-native-navigation'; -const useNavButtonPressed = (navButtonId: string, componentId: string, callback: EffectCallback | any, deps?: DependencyList) => { +type Callback = EffectCallback | (() => Promise); +const useNavButtonPressed = (navButtonId: string, componentId: string, callback: Callback, deps?: DependencyList) => { useEffect(() => { const unsubscribe = Navigation.events().registerComponentListener({ navigationButtonPressed: ({buttonId}: { buttonId: string }) => { diff --git a/docs/database/server/server.md b/docs/database/server/server.md index 57653e057a..0d5c03c042 100644 --- a/docs/database/server/server.md +++ b/docs/database/server/server.md @@ -271,7 +271,7 @@ ThreadsInTeam id PK string # auto-generated loaded_in_global_threads boolean team_id string INDEX FK >- Team.id -thread_id string INDEX +thread_id string INDEX FK >- Thread.id ThreadParticipant # who is participating in this conversation