refactor: remove side effects from computed properties

This commit is contained in:
jamesgeorge007
2024-02-15 21:47:40 +05:30
parent b821f452cf
commit 00285df348
3 changed files with 121 additions and 136 deletions

View File

@@ -239,14 +239,14 @@ const saveRequestAs = async () => {
)
if (E.isLeft(collHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collHandle = collHandleResult.right
if (collHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -278,14 +278,14 @@ const saveRequestAs = async () => {
)
if (E.isLeft(requestHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_COLLECTION_HANDLE | INVALID_REQUEST_ID | REQUEST_NOT_FOUND
return
}
const requestHandle = requestHandleResult.right
if (requestHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_REQUEST_HANDLE
// WORKSPACE_INVALIDATED
return
}

View File

@@ -353,14 +353,14 @@ const onRemoveRootCollection = async () => {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -433,14 +433,14 @@ const onAddRequest = async (requestName: string) => {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -515,14 +515,14 @@ const onAddChildCollection = async (newChildCollectionName: string) => {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -565,14 +565,14 @@ const onEditRootCollection = async (newCollectionName: string) => {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -610,14 +610,14 @@ const onEditChildCollection = async (newChildCollectionName: string) => {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -651,14 +651,14 @@ const onRemoveChildCollection = async () => {
)
if (E.isLeft(parentCollectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const parentCollectionHandle = parentCollectionHandleResult.right
if (parentCollectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -742,14 +742,14 @@ const onRemoveRequest = async () => {
)
if (E.isLeft(requestHandleResult)) {
// INVALID_COLLECTION_HANDLE
// INVALID_COLLECTION_HANDLE | INVALID_REQUEST_ID | REQUEST_NOT_FOUND
return
}
const requestHandle = requestHandleResult.right
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED | INVALID_REQUEST_HANDLE
// COLLECTION_INVALIDATED
return
}
@@ -819,14 +819,14 @@ const selectRequest = async (requestIndexPath: string) => {
)
if (E.isLeft(requestHandleResult)) {
// INVALID_COLLECTION_HANDLE
// INVALID_COLLECTION_HANDLE | INVALID_REQUEST_ID | REQUEST_NOT_FOUND
return
}
const requestHandle = requestHandleResult.right
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED | INVALID_REQUEST_HANDLE
// COLLECTION_INVALIDATED
return
}
@@ -883,14 +883,14 @@ const duplicateRequest = async (requestIndexPath: string) => {
)
if (E.isLeft(requestHandleResult)) {
// INVALID_COLLECTION_HANDLE
// INVALID_COLLECTION_HANDLE | INVALID_REQUEST_ID | REQUEST_NOT_FOUND
return
}
const requestHandle = requestHandleResult.right
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED | INVALID_REQUEST_HANDLE
// COLLECTION_INVALIDATED
return
}
@@ -931,14 +931,14 @@ const onEditRequest = async (newRequestName: string) => {
)
if (E.isLeft(requestHandleResult)) {
// INVALID_COLLECTION_HANDLE
// INVALID_COLLECTION_HANDLE | INVALID_REQUEST_ID | REQUEST_NOT_FOUND
return
}
const requestHandle = requestHandleResult.right
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED | INVALID_REQUEST_HANDLE
// COLLECTION_INVALIDATED
return
}
@@ -994,14 +994,14 @@ const editCollectionProperties = async (collectionIndexPath: string) => {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}
@@ -1059,14 +1059,14 @@ const setCollectionProperties = async (updatedCollectionProps: {
)
if (E.isLeft(collectionHandleResult)) {
// INVALID_WORKSPACE_HANDLE
// INVALID_WORKSPACE_HANDLE | INVALID_COLLECTION_ID | INVALID_PATH
return
}
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
// WORKSPACE_INVALIDATED
return
}

View File

@@ -104,6 +104,29 @@ export class PersonalWorkspaceProviderService
return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
}
const newCollectionName = newCollection.name as string
const newCollectionID =
this.restCollectionState.value.state.length.toString()
const newRootCollection = makeCollection({
name: newCollectionName,
folders: [],
requests: [],
headers: [],
auth: {
authType: "inherit",
authActive: false,
},
})
addRESTCollection(newRootCollection)
platform.analytics?.logEvent({
type: "HOPP_CREATE_COLLECTION",
platform: "rest",
workspaceType: "personal",
isRootCollection: true,
})
return Promise.resolve(
E.right(
computed(() => {
@@ -118,29 +141,6 @@ export class PersonalWorkspaceProviderService
}
}
const newCollectionName = newCollection.name as string
const newCollectionID =
this.restCollectionState.value.state.length.toString()
const newRootCollection = makeCollection({
name: newCollectionName,
folders: [],
requests: [],
headers: [],
auth: {
authType: "inherit",
authActive: false,
},
})
addRESTCollection(newRootCollection)
platform.analytics?.logEvent({
type: "HOPP_CREATE_COLLECTION",
platform: "rest",
workspaceType: "personal",
isRootCollection: true,
})
return {
type: "ok",
data: {
@@ -167,6 +167,19 @@ export class PersonalWorkspaceProviderService
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
const { collectionID, providerID, workspaceID } =
parentCollectionHandle.value.data
const newCollectionName = newChildCollection.name as string
addRESTFolder(newCollectionName, collectionID)
platform.analytics?.logEvent({
type: "HOPP_CREATE_COLLECTION",
workspaceType: "personal",
isRootCollection: false,
platform: "rest",
})
return Promise.resolve(
E.right(
computed(() => {
@@ -181,19 +194,6 @@ export class PersonalWorkspaceProviderService
}
}
const { collectionID, providerID, workspaceID } =
parentCollectionHandle.value.data
const newCollectionName = newChildCollection.name as string
addRESTFolder(newCollectionName, collectionID)
platform.analytics?.logEvent({
type: "HOPP_CREATE_COLLECTION",
workspaceType: "personal",
isRootCollection: false,
platform: "rest",
})
return {
type: "ok",
data: {
@@ -405,6 +405,34 @@ export class PersonalWorkspaceProviderService
return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
}
if (!collectionID) {
return Promise.resolve(E.left("INVALID_COLLECTION_ID" as const))
}
const collection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state,
collectionID.split("/").map((x) => parseInt(x))
)
if (!collection) {
const parentCollectionIndexPath = collectionID
.split("/")
.slice(0, -1)
.join("/")
const requestIndex = this.pathToLastIndex(collectionID)
const parentCollection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state,
parentCollectionIndexPath.split("/").map((x) => parseInt(x))
)
if (!parentCollection || !parentCollection.requests[requestIndex]) {
return Promise.resolve(E.left("INVALID_PATH"))
}
}
const { providerID, workspaceID } = workspaceHandle.value.data
return Promise.resolve(
E.right(
computed(() => {
@@ -419,47 +447,13 @@ export class PersonalWorkspaceProviderService
}
}
if (!collectionID) {
return {
type: "invalid" as const,
reason: "INVALID_COLLECTION_HANDLE" as const,
}
}
const collection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state,
collectionID.split("/").map((x) => parseInt(x))
)
if (!collection) {
const parentCollectionIndexPath = collectionID
.split("/")
.slice(0, -1)
.join("/")
const requestIndex = this.pathToLastIndex(collectionID)
const parentCollection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state,
parentCollectionIndexPath.split("/").map((x) => parseInt(x))
)
if (!parentCollection || !parentCollection.requests[requestIndex]) {
return {
type: "invalid" as const,
reason: "INVALID_PATH" as const,
}
}
}
const { providerID, workspaceID } = workspaceHandle.value.data
return {
type: "ok",
data: {
providerID,
workspaceID,
collectionID,
name: collection?.name as string,
name: collection.name,
},
}
})
@@ -479,6 +473,34 @@ export class PersonalWorkspaceProviderService
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
if (!requestID) {
return Promise.resolve(E.left("INVALID_REQUEST_ID" as const))
}
const { providerID, workspaceID } = workspaceHandle.value.data
const collectionID = requestID.split("/").slice(0, -1).join("/")
const requestIndexPath = requestID.split("/").slice(-1)[0]
if (!requestIndexPath) {
return Promise.resolve(E.left("INVALID_REQUEST_ID" as const))
}
const requestIndex = parseInt(requestIndexPath)
// Navigate to the collection containing the request
const collection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state,
collectionID.split("/").map((x) => parseInt(x))
)
// Grab the request with it's index
const request = collection?.requests[requestIndex] as HoppRESTRequest
if (!request) {
return Promise.resolve(E.left("REQUEST_NOT_FOUND" as const))
}
return Promise.resolve(
E.right(
computed(() => {
@@ -493,43 +515,6 @@ export class PersonalWorkspaceProviderService
}
}
if (!requestID) {
return {
type: "invalid" as const,
reason: "INVALID_REQUEST_HANDLE" as const,
}
}
const { providerID, workspaceID } = workspaceHandle.value.data
const collectionID = requestID.split("/").slice(0, -1).join("/")
const requestIndexPath = requestID.split("/").slice(-1)[0]
if (!requestIndexPath) {
return {
type: "invalid" as const,
reason: "INVALID_REQUEST_HANDLE" as const,
}
}
const requestIndex = parseInt(requestIndexPath)
// Navigate to the collection containing the request
const collection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state,
collectionID.split("/").map((x) => parseInt(x))
)
// Grab the request with it's index
const request = collection?.requests[requestIndex] as HoppRESTRequest
if (!request) {
return {
type: "invalid" as const,
reason: "REQUEST_PATH_NOT_FOUND" as const,
}
}
return {
type: "ok",
data: {