From 216b7058df0b96c9187197828dbeaa956d383b54 Mon Sep 17 00:00:00 2001 From: Avinash Lingaloo Date: Fri, 8 Jul 2022 14:26:12 +0400 Subject: [PATCH] Gekidou Minor Fixes (#6461) * removed useless throw in comment * fix ts for useNavButtonPressed * update server db 'relationship config file' adding missing relationship between ThreadsInTeam and Thread table. we will have to update the pngs and the others as well but we can do that once we get a license to the DB Schema app * Update post.ts --- .../server_data_operator/handlers/category.ts | 6 ++---- .../server_data_operator/handlers/channel.ts | 5 ----- .../operator/server_data_operator/handlers/group.ts | 1 - .../operator/server_data_operator/handlers/post.ts | 13 +++++++++---- .../server_data_operator/handlers/reaction.ts | 1 - .../operator/server_data_operator/handlers/team.ts | 5 ----- .../server_data_operator/handlers/thread.ts | 1 - .../operator/server_data_operator/handlers/user.ts | 2 -- app/hooks/navigation_button_pressed.tsx | 3 ++- docs/database/server/server.md | 2 +- 10 files changed, 14 insertions(+), 25 deletions(-) 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