refactor: eliminate collectionID from tab saveContext

Collection ID can be inferred from request ID by removing last index from the path.
This commit is contained in:
jamesgeorge007
2024-02-24 17:37:12 +05:30
parent c30ee5becc
commit d70d5bdb16
6 changed files with 77 additions and 80 deletions

View File

@@ -267,8 +267,7 @@ const saveRequestAs = async () => {
return return
} }
const { collectionID, providerID, requestID, workspaceID } = const { providerID, requestID, workspaceID } = requestHandle.value.data
requestHandle.value.data
RESTTabs.currentActiveTab.value.document = { RESTTabs.currentActiveTab.value.document = {
request: updatedRequest, request: updatedRequest,
@@ -277,7 +276,6 @@ const saveRequestAs = async () => {
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}, },
} }
@@ -314,8 +312,7 @@ const saveRequestAs = async () => {
return return
} }
const { collectionID, providerID, requestID, workspaceID } = const { providerID, requestID, workspaceID } = requestHandle.value.data
requestHandle.value.data
RESTTabs.currentActiveTab.value.document = { RESTTabs.currentActiveTab.value.document = {
request: updatedRequest, request: updatedRequest,
@@ -324,7 +321,6 @@ const saveRequestAs = async () => {
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}, },
} }

View File

@@ -723,8 +723,7 @@ const onAddRequest = async (requestName: string) => {
const { auth, headers } = cascadingAuthHeadersHandle.value.data const { auth, headers } = cascadingAuthHeadersHandle.value.data
const { collectionID, providerID, requestID, workspaceID } = const { providerID, requestID, workspaceID } = requestHandle.value.data
requestHandle.value.data
tabs.createNewTab({ tabs.createNewTab({
request: newRequest, request: newRequest,
@@ -733,7 +732,6 @@ const onAddRequest = async (requestName: string) => {
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}, },
inheritedProperties: { inheritedProperties: {
@@ -972,15 +970,13 @@ const onRemoveRequest = async () => {
return return
} }
const { collectionID, providerID, requestID, workspaceID } = const { providerID, requestID, workspaceID } = requestHandle.value.data
requestHandle.value.data
const possibleTab = tabs.getTabRefWithSaveContext({ const possibleTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
requestID, requestID,
collectionID,
}) })
if ( if (
@@ -1074,15 +1070,13 @@ const selectRequest = async (requestIndexPath: string) => {
const { auth, headers } = cascadingAuthHeadersHandle.value.data const { auth, headers } = cascadingAuthHeadersHandle.value.data
const { collectionID, providerID, requestID, workspaceID } = const { providerID, requestID, workspaceID } = requestHandle.value.data
requestHandle.value.data
// If there is a request with this save context, switch into it // If there is a request with this save context, switch into it
const possibleTab = tabs.getTabRefWithSaveContext({ const possibleTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}) })
@@ -1097,7 +1091,6 @@ const selectRequest = async (requestIndexPath: string) => {
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}, },
inheritedProperties: { inheritedProperties: {
@@ -1185,13 +1178,12 @@ const onEditRequest = async (newRequestName: string) => {
return return
} }
const { collectionID, providerID, workspaceID } = requestHandle.value.data const { providerID, workspaceID } = requestHandle.value.data
const possibleActiveTab = tabs.getTabRefWithSaveContext({ const possibleActiveTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}) })
@@ -1630,20 +1622,17 @@ const dropRequest = async (payload: {
const { auth, headers } = cascadingAuthHeadersHandle.value.data const { auth, headers } = cascadingAuthHeadersHandle.value.data
const { collectionID, providerID, requestID, workspaceID } = const { providerID, requestID, workspaceID } = requestHandle.value.data
requestHandle.value.data
const possibleTab = tabs.getTabRefWithSaveContext({ const possibleTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID,
requestID, requestID,
}) })
// If there is a tab attached to this request, update its save context // If there is a tab attached to this request, update its save context
if (possibleTab) { if (possibleTab) {
const newCollectionID = destinationCollectionIndex
const newRequestID = `${destinationCollectionIndex}/${( const newRequestID = `${destinationCollectionIndex}/${(
getRequestsByPath(restCollectionState.value, destinationCollectionIndex) getRequestsByPath(restCollectionState.value, destinationCollectionIndex)
.length - 1 .length - 1
@@ -1653,7 +1642,6 @@ const dropRequest = async (payload: {
originLocation: "workspace-user-collection", originLocation: "workspace-user-collection",
workspaceID, workspaceID,
providerID, providerID,
collectionID: newCollectionID,
requestID: newRequestID, requestID: newRequestID,
} }
@@ -2144,11 +2132,6 @@ const pathToIndex = (path: string) => {
return pathArr return pathArr
} }
const pathToLastIndex = (path: string) => {
const pathArr = pathToIndex(path)
return parseInt(pathArr[pathArr.length - 1])
}
const resolveConfirmModal = (title: string | null) => { const resolveConfirmModal = (title: string | null) => {
if (title === `${t("confirm.remove_collection")}`) { if (title === `${t("confirm.remove_collection")}`) {
onRemoveRootCollection() onRemoveRootCollection()
@@ -2197,11 +2180,8 @@ const updateSaveContextForAffectedRequests = (
tab.document.saveContext = { tab.document.saveContext = {
...tab.document.saveContext, ...tab.document.saveContext,
collectionID: newCollectionID,
requestID: newRequestID, requestID: newRequestID,
} }
console.log(`${t("request.moved")}: ${requestID} -> ${newRequestID}`)
} }
} }
} }

View File

@@ -68,11 +68,18 @@ export function resolveSaveContextOnCollectionReorder(
return affectedPaths.has(tab.document.saveContext.folderPath) return affectedPaths.has(tab.document.saveContext.folderPath)
} }
return ( if (
tab.document.saveContext?.originLocation === tab.document.saveContext?.originLocation !== "workspace-user-collection"
"workspace-user-collection" && ) {
affectedPaths.has(tab.document.saveContext.collectionID) return false
) }
const collectionID = tab.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
return affectedPaths.has(collectionID)
}) })
for (const tab of tabs) { for (const tab of tabs) {
@@ -87,14 +94,16 @@ export function resolveSaveContextOnCollectionReorder(
tab.value.document.saveContext?.originLocation === tab.value.document.saveContext?.originLocation ===
"workspace-user-collection" "workspace-user-collection"
) { ) {
const newCollectionID = affectedPaths.get( const collectionID = tab.value.document.saveContext.requestID
tab.value.document.saveContext?.collectionID .split("/")
)! .slice(0, -1)
.join("/")
const newCollectionID = affectedPaths.get(collectionID)
const newRequestID = `${newCollectionID}/${ const newRequestID = `${newCollectionID}/${
tab.value.document.saveContext.requestID.split("/").slice(-1)[0] tab.value.document.saveContext.requestID.split("/").slice(-1)[0]
}` }`
tab.value.document.saveContext.collectionID = newCollectionID
tab.value.document.saveContext.requestID = newRequestID tab.value.document.saveContext.requestID = newRequestID
} }
} }
@@ -117,11 +126,18 @@ export function updateSaveContextForAffectedRequests(
return tab.document.saveContext.folderPath.startsWith(oldFolderPath) return tab.document.saveContext.folderPath.startsWith(oldFolderPath)
} }
return ( if (
tab.document.saveContext?.originLocation === tab.document.saveContext?.originLocation !== "workspace-user-collection"
"workspace-user-collection" && ) {
tab.document.saveContext.collectionID.startsWith(oldFolderPath) return false
) }
const collectionID = tab.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
return collectionID.startsWith(oldFolderPath)
}) })
for (const tab of tabs) { for (const tab of tabs) {
@@ -139,18 +155,18 @@ export function updateSaveContextForAffectedRequests(
tab.value.document.saveContext?.originLocation === tab.value.document.saveContext?.originLocation ===
"workspace-user-collection" "workspace-user-collection"
) { ) {
const newCollectionID = const collectionID = tab.value.document.saveContext.requestID
tab.value.document.saveContext.collectionID.replace( .split("/")
oldFolderPath, .slice(0, -1)
newFolderPath .join("/")
)
const newCollectionID = collectionID.replace(oldFolderPath, newFolderPath)
const newRequestID = `${newCollectionID}/${ const newRequestID = `${newCollectionID}/${
tab.value.document.saveContext.requestID.split("/").slice(-1)[0] tab.value.document.saveContext.requestID.split("/").slice(-1)[0]
}` }`
tab.value.document.saveContext = { tab.value.document.saveContext = {
...tab.value.document.saveContext, ...tab.value.document.saveContext,
collectionID: newCollectionID,
requestID: newRequestID, requestID: newRequestID,
} }
} }
@@ -230,11 +246,12 @@ export function updateInheritedPropertiesForAffectedRequests(
return Boolean(tab.document.saveContext.collectionID?.startsWith(path)) return Boolean(tab.document.saveContext.collectionID?.startsWith(path))
} }
return ( const collectionID = tab.document.saveContext?.requestID
tab.document.saveContext?.originLocation === .split("/")
"workspace-user-collection" && .slice(0, -1)
tab.document.saveContext.collectionID?.startsWith(path) .join("/")
)
return Boolean(collectionID?.startsWith(path))
}) })
const tabsEffectedByAuth = tabs.filter((tab) => { const tabsEffectedByAuth = tabs.filter((tab) => {
@@ -257,15 +274,13 @@ export function updateInheritedPropertiesForAffectedRequests(
return false return false
} }
const { collectionID } = tab.value.document.saveContext
return ( return (
collectionID.startsWith(path) && tab.value.document.saveContext.folderPath.startsWith(path) &&
path === path ===
folderPathCloseToSaveContext( folderPathCloseToSaveContext(
tab.value.document.inheritedProperties?.auth.parentID, tab.value.document.inheritedProperties?.auth.parentID,
path, path,
collectionID tab.value.document.saveContext.folderPath
) )
) )
}) })
@@ -330,11 +345,18 @@ function resetSaveContextForAffectedRequests(folderPath: string) {
return tab.document.saveContext.folderPath.startsWith(folderPath) return tab.document.saveContext.folderPath.startsWith(folderPath)
} }
return ( if (
tab.document.saveContext?.originLocation === tab.document.saveContext?.originLocation !== "workspace-user-collection"
"workspace-user-collection" && ) {
tab.document.saveContext.collectionID.startsWith(folderPath) return false
) }
const collectionID = tab.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
return collectionID.startsWith(folderPath)
}) })
for (const tab of tabs) { for (const tab of tabs) {

View File

@@ -46,14 +46,17 @@ export function resolveSaveContextOnRequestReorder(payload: {
) )
} }
return ( if (
tab.document.saveContext?.originLocation === tab.document.saveContext?.originLocation !== "workspace-user-collection"
"workspace-user-collection" && ) {
tab.document.saveContext.collectionID === folderPath && return false
affectedIndexes.has( }
parseInt(tab.document.saveContext.requestID.split("/").slice(-1)[0])
) const { requestID } = tab.document.saveContext
) const collectionID = requestID.split("/").slice(0, -1).join("/")
const requestIndex = parseInt(requestID.split("/").slice(-1)[0])
return collectionID === folderPath && affectedIndexes.has(requestIndex)
}) })
for (const tab of tabs) { for (const tab of tabs) {
@@ -68,11 +71,13 @@ export function resolveSaveContextOnRequestReorder(payload: {
tab.value.document.saveContext?.originLocation === tab.value.document.saveContext?.originLocation ===
"workspace-user-collection" "workspace-user-collection"
) { ) {
const requestID = tab.value.document.saveContext.requestID const { requestID } = tab.value.document.saveContext
const requestIDArray = requestID.split("/") const requestIDArray = requestID.split("/")
const requestIndex = affectedIndexes.get( const requestIndex = affectedIndexes.get(
parseInt(requestIDArray[requestIDArray.length - 1]) parseInt(requestIDArray[requestIDArray.length - 1])
)! )!
requestIDArray[requestIDArray.length - 1] = requestIndex.toString() requestIDArray[requestIDArray.length - 1] = requestIndex.toString()
tab.value.document.saveContext.requestID = requestIDArray.join("/") tab.value.document.saveContext.requestID = requestIDArray.join("/")
} }

View File

@@ -21,11 +21,6 @@ export type HoppRESTSaveContext =
*/ */
providerID: string providerID: string
/**
* ID of the collection
*/
collectionID: string
/** /**
* Path to the request in the collection tree * Path to the request in the collection tree
*/ */

View File

@@ -497,7 +497,6 @@ const HoppRESTSaveContextSchema = z.nullable(
originLocation: z.literal("workspace-user-collection"), originLocation: z.literal("workspace-user-collection"),
workspaceID: z.string(), workspaceID: z.string(),
providerID: z.string(), providerID: z.string(),
collectionID: z.string(),
requestID: z.string(), requestID: z.string(),
}) })
.strict(), .strict(),