fix(regions): move webhooks because they deserve love too

This commit is contained in:
Charles Driesler
2025-02-11 00:43:15 +00:00
parent c416484974
commit 21bf57f514
5 changed files with 119 additions and 5 deletions
@@ -4,6 +4,7 @@ import { GetStreamBranchCount } from '@/modules/core/domain/branches/operations'
import { GetStreamCommitCount } from '@/modules/core/domain/commits/operations'
import { GetStreamObjectCount } from '@/modules/core/domain/objects/operations'
import { GetProject } from '@/modules/core/domain/projects/operations'
import { GetStreamWebhooks } from '@/modules/webhooks/domain/operations'
import {
CopyProjectAutomations,
CopyProjectComments,
@@ -11,6 +12,7 @@ import {
CopyProjectObjects,
CopyProjects,
CopyProjectVersions,
CopyProjectWebhooks,
CopyWorkspace,
GetAvailableRegions,
UpdateProjectRegion
@@ -25,6 +27,7 @@ export const updateProjectRegionFactory =
countProjectObjects: GetStreamObjectCount
countProjectAutomations: GetProjectAutomationCount
countProjectComments: GetStreamCommentCount
getProjectWebhooks: GetStreamWebhooks
getAvailableRegions: GetAvailableRegions
copyWorkspace: CopyWorkspace
copyProjects: CopyProjects
@@ -33,6 +36,7 @@ export const updateProjectRegionFactory =
copyProjectObjects: CopyProjectObjects
copyProjectAutomations: CopyProjectAutomations
copyProjectComments: CopyProjectComments
copyProjectWebhooks: CopyProjectWebhooks
}): UpdateProjectRegion =>
async (params) => {
const { projectId, regionKey } = params
@@ -80,8 +84,11 @@ export const updateProjectRegionFactory =
// Move comments
const copiedCommentCount = await deps.copyProjectComments({ projectIds })
// Move webhooks
const copiedWebhookCount = await deps.copyProjectWebhooks({ projectIds })
// TODO: Move file blobs
// TODO: Move webhooks
// TODO: Validate state after move captures latest state of project
const sourceProjectModelCount = await deps.countProjectModels(projectId)
@@ -93,13 +100,15 @@ export const updateProjectRegionFactory =
projectId
})
const sourceProjectCommentCount = await deps.countProjectComments(projectId)
const sourceProjectWebhooks = await deps.getProjectWebhooks({ streamId: projectId })
const tests = [
copiedModelCount[projectId] === sourceProjectModelCount,
copiedVersionCount[projectId] === sourceProjectVersionCount,
copiedObjectCount[projectId] === sourceProjectObjectCount,
copiedAutomationCount[projectId] === sourceProjectAutomationCount,
copiedCommentCount[projectId] === sourceProjectCommentCount
copiedCommentCount[projectId] === sourceProjectCommentCount,
copiedWebhookCount[projectId] === sourceProjectWebhooks.length
]
if (!tests.every((test) => !!test)) {