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:
@@ -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,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}`)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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("/")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
|||||||
Reference in New Issue
Block a user