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

View File

@@ -723,8 +723,7 @@ const onAddRequest = async (requestName: string) => {
const { auth, headers } = cascadingAuthHeadersHandle.value.data
const { collectionID, providerID, requestID, workspaceID } =
requestHandle.value.data
const { providerID, requestID, workspaceID } = requestHandle.value.data
tabs.createNewTab({
request: newRequest,
@@ -733,7 +732,6 @@ const onAddRequest = async (requestName: string) => {
originLocation: "workspace-user-collection",
workspaceID,
providerID,
collectionID,
requestID,
},
inheritedProperties: {
@@ -972,15 +970,13 @@ const onRemoveRequest = async () => {
return
}
const { collectionID, providerID, requestID, workspaceID } =
requestHandle.value.data
const { providerID, requestID, workspaceID } = requestHandle.value.data
const possibleTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection",
workspaceID,
providerID,
requestID,
collectionID,
})
if (
@@ -1074,15 +1070,13 @@ const selectRequest = async (requestIndexPath: string) => {
const { auth, headers } = cascadingAuthHeadersHandle.value.data
const { collectionID, providerID, requestID, workspaceID } =
requestHandle.value.data
const { providerID, requestID, workspaceID } = requestHandle.value.data
// If there is a request with this save context, switch into it
const possibleTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection",
workspaceID,
providerID,
collectionID,
requestID,
})
@@ -1097,7 +1091,6 @@ const selectRequest = async (requestIndexPath: string) => {
originLocation: "workspace-user-collection",
workspaceID,
providerID,
collectionID,
requestID,
},
inheritedProperties: {
@@ -1185,13 +1178,12 @@ const onEditRequest = async (newRequestName: string) => {
return
}
const { collectionID, providerID, workspaceID } = requestHandle.value.data
const { providerID, workspaceID } = requestHandle.value.data
const possibleActiveTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection",
workspaceID,
providerID,
collectionID,
requestID,
})
@@ -1630,20 +1622,17 @@ const dropRequest = async (payload: {
const { auth, headers } = cascadingAuthHeadersHandle.value.data
const { collectionID, providerID, requestID, workspaceID } =
requestHandle.value.data
const { providerID, requestID, workspaceID } = requestHandle.value.data
const possibleTab = tabs.getTabRefWithSaveContext({
originLocation: "workspace-user-collection",
workspaceID,
providerID,
collectionID,
requestID,
})
// If there is a tab attached to this request, update its save context
if (possibleTab) {
const newCollectionID = destinationCollectionIndex
const newRequestID = `${destinationCollectionIndex}/${(
getRequestsByPath(restCollectionState.value, destinationCollectionIndex)
.length - 1
@@ -1653,7 +1642,6 @@ const dropRequest = async (payload: {
originLocation: "workspace-user-collection",
workspaceID,
providerID,
collectionID: newCollectionID,
requestID: newRequestID,
}
@@ -2144,11 +2132,6 @@ const pathToIndex = (path: string) => {
return pathArr
}
const pathToLastIndex = (path: string) => {
const pathArr = pathToIndex(path)
return parseInt(pathArr[pathArr.length - 1])
}
const resolveConfirmModal = (title: string | null) => {
if (title === `${t("confirm.remove_collection")}`) {
onRemoveRootCollection()
@@ -2197,11 +2180,8 @@ const updateSaveContextForAffectedRequests = (
tab.document.saveContext = {
...tab.document.saveContext,
collectionID: newCollectionID,
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 (
tab.document.saveContext?.originLocation ===
"workspace-user-collection" &&
affectedPaths.has(tab.document.saveContext.collectionID)
)
if (
tab.document.saveContext?.originLocation !== "workspace-user-collection"
) {
return false
}
const collectionID = tab.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
return affectedPaths.has(collectionID)
})
for (const tab of tabs) {
@@ -87,14 +94,16 @@ export function resolveSaveContextOnCollectionReorder(
tab.value.document.saveContext?.originLocation ===
"workspace-user-collection"
) {
const newCollectionID = affectedPaths.get(
tab.value.document.saveContext?.collectionID
)!
const collectionID = tab.value.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
const newCollectionID = affectedPaths.get(collectionID)
const newRequestID = `${newCollectionID}/${
tab.value.document.saveContext.requestID.split("/").slice(-1)[0]
}`
tab.value.document.saveContext.collectionID = newCollectionID
tab.value.document.saveContext.requestID = newRequestID
}
}
@@ -117,11 +126,18 @@ export function updateSaveContextForAffectedRequests(
return tab.document.saveContext.folderPath.startsWith(oldFolderPath)
}
return (
tab.document.saveContext?.originLocation ===
"workspace-user-collection" &&
tab.document.saveContext.collectionID.startsWith(oldFolderPath)
)
if (
tab.document.saveContext?.originLocation !== "workspace-user-collection"
) {
return false
}
const collectionID = tab.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
return collectionID.startsWith(oldFolderPath)
})
for (const tab of tabs) {
@@ -139,18 +155,18 @@ export function updateSaveContextForAffectedRequests(
tab.value.document.saveContext?.originLocation ===
"workspace-user-collection"
) {
const newCollectionID =
tab.value.document.saveContext.collectionID.replace(
oldFolderPath,
newFolderPath
)
const collectionID = tab.value.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
const newCollectionID = collectionID.replace(oldFolderPath, newFolderPath)
const newRequestID = `${newCollectionID}/${
tab.value.document.saveContext.requestID.split("/").slice(-1)[0]
}`
tab.value.document.saveContext = {
...tab.value.document.saveContext,
collectionID: newCollectionID,
requestID: newRequestID,
}
}
@@ -230,11 +246,12 @@ export function updateInheritedPropertiesForAffectedRequests(
return Boolean(tab.document.saveContext.collectionID?.startsWith(path))
}
return (
tab.document.saveContext?.originLocation ===
"workspace-user-collection" &&
tab.document.saveContext.collectionID?.startsWith(path)
)
const collectionID = tab.document.saveContext?.requestID
.split("/")
.slice(0, -1)
.join("/")
return Boolean(collectionID?.startsWith(path))
})
const tabsEffectedByAuth = tabs.filter((tab) => {
@@ -257,15 +274,13 @@ export function updateInheritedPropertiesForAffectedRequests(
return false
}
const { collectionID } = tab.value.document.saveContext
return (
collectionID.startsWith(path) &&
tab.value.document.saveContext.folderPath.startsWith(path) &&
path ===
folderPathCloseToSaveContext(
tab.value.document.inheritedProperties?.auth.parentID,
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?.originLocation ===
"workspace-user-collection" &&
tab.document.saveContext.collectionID.startsWith(folderPath)
)
if (
tab.document.saveContext?.originLocation !== "workspace-user-collection"
) {
return false
}
const collectionID = tab.document.saveContext.requestID
.split("/")
.slice(0, -1)
.join("/")
return collectionID.startsWith(folderPath)
})
for (const tab of tabs) {

View File

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

View File

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

View File

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