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 2e30f87fd..fb1e94858 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 021010d47..cb741a084 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 1b767eff4..3738ecd71 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 85f31b5c3..d32da053e 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 cc5144b7a..a4f8aebd4 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 171897492..86d1d6070 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 9ed729dce..d4bb3bfc7 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 61a90eae2..51ddff7ba 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 e85ebd219..6de61dbde 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 57653e057..0d5c03c04 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