refactor: leverage helpers

This commit is contained in:
jamesgeorge007
2024-02-27 16:04:04 +05:30
parent 116f2fd279
commit f87a4c81d8
2 changed files with 129 additions and 104 deletions

View File

@@ -0,0 +1,48 @@
import { Ref } from "vue"
import { HandleRef } from "./handle"
import { Workspace, WorkspaceCollection, WorkspaceRequest } from "./workspace"
export const isValidWorkspaceHandle = (
workspace: HandleRef<Workspace>,
providerID: string,
workspaceID: string
): workspace is Ref<{
data: Workspace
type: "ok"
}> => {
return (
workspace.value.type === "ok" &&
workspace.value.data.providerID === providerID &&
workspace.value.data.workspaceID === workspaceID
)
}
export const isValidCollectionHandle = (
collection: HandleRef<WorkspaceCollection>,
providerID: string,
workspaceID: string
): collection is Ref<{
data: WorkspaceCollection
type: "ok"
}> => {
return (
collection.value.type === "ok" &&
collection.value.data.providerID === providerID &&
collection.value.data.workspaceID === workspaceID
)
}
export const isValidRequestHandle = (
request: HandleRef<WorkspaceRequest>,
providerID: string,
workspaceID: string
): request is Ref<{
data: WorkspaceRequest
type: "ok"
}> => {
return (
request.value.type === "ok" &&
request.value.data.providerID === providerID &&
request.value.data.workspaceID === workspaceID
)
}

View File

@@ -1,6 +1,5 @@
import {
HoppCollection,
HoppGQLAuth,
HoppRESTAuth,
HoppRESTHeaders,
makeCollection,
@@ -59,11 +58,15 @@ import {
import { HoppRESTRequest } from "@hoppscotch/data"
import { merge } from "lodash-es"
import path from "path"
import { HoppGQLHeader } from "~/helpers/graphql"
import { initializeDownloadFile } from "~/helpers/import-export/export"
import { HoppInheritedProperty } from "~/helpers/types/HoppInheritedProperties"
import IconUser from "~icons/lucide/user"
import { NewWorkspaceService } from ".."
import {
isValidCollectionHandle,
isValidRequestHandle,
isValidWorkspaceHandle,
} from "../helpers"
export class PersonalWorkspaceProviderService
extends Service
@@ -111,11 +114,7 @@ export class PersonalWorkspaceProviderService
workspaceHandle: HandleRef<Workspace>,
newCollection: Partial<HoppCollection>
): Promise<E.Either<unknown, HandleRef<WorkspaceCollection>>> {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
) {
if (!isValidWorkspaceHandle(workspaceHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
}
@@ -146,9 +145,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
!isValidWorkspaceHandle(
workspaceHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -175,9 +176,11 @@ export class PersonalWorkspaceProviderService
newChildCollection: Partial<HoppCollection>
): Promise<E.Either<unknown, HandleRef<WorkspaceCollection>>> {
if (
parentCollectionHandle.value.type !== "ok" ||
parentCollectionHandle.value.data.providerID !== this.providerID ||
parentCollectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(
parentCollectionHandle,
this.providerID,
"personal"
)
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -199,9 +202,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
parentCollectionHandle.value.type !== "ok" ||
parentCollectionHandle.value.data.providerID !== this.providerID ||
parentCollectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(
parentCollectionHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -228,9 +233,7 @@ export class PersonalWorkspaceProviderService
updatedCollection: Partial<HoppCollection>
): Promise<E.Either<unknown, void>> {
if (
collectionHandle.value.type !== "ok" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(collectionHandle, this.providerID, "personal")
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -259,9 +262,7 @@ export class PersonalWorkspaceProviderService
collectionHandle: HandleRef<WorkspaceCollection>
): Promise<E.Either<unknown, void>> {
if (
collectionHandle.value.type !== "ok" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(collectionHandle, this.providerID, "personal")
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -304,9 +305,11 @@ export class PersonalWorkspaceProviderService
newRequest: HoppRESTRequest
): Promise<E.Either<unknown, HandleRef<WorkspaceRequest>>> {
if (
parentCollectionHandle.value.type !== "ok" ||
parentCollectionHandle.value.data.providerID !== this.providerID ||
parentCollectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(
parentCollectionHandle,
this.providerID,
"personal"
)
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -329,9 +332,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
parentCollectionHandle.value.type !== "ok" ||
parentCollectionHandle.value.data.providerID !== this.providerID ||
parentCollectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(
parentCollectionHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -357,11 +362,7 @@ export class PersonalWorkspaceProviderService
public removeRESTRequest(
requestHandle: HandleRef<WorkspaceRequest>
): Promise<E.Either<unknown, void>> {
if (
requestHandle.value.type !== "ok" ||
requestHandle.value.data.providerID !== this.providerID ||
requestHandle.value.data.workspaceID !== "personal"
) {
if (!isValidRequestHandle(requestHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_REQUEST_HANDLE" as const))
}
@@ -382,11 +383,7 @@ export class PersonalWorkspaceProviderService
requestHandle: HandleRef<WorkspaceRequest>,
updatedRequest: Partial<HoppRESTRequest>
): Promise<E.Either<unknown, void>> {
if (
requestHandle.value.type !== "ok" ||
requestHandle.value.data.providerID !== this.providerID ||
requestHandle.value.data.workspaceID !== "personal"
) {
if (!isValidRequestHandle(requestHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_REQUEST_HANDLE" as const))
}
@@ -412,11 +409,7 @@ export class PersonalWorkspaceProviderService
workspaceHandle: HandleRef<Workspace>,
collections: HoppCollection[]
): Promise<E.Either<unknown, HandleRef<WorkspaceCollection>>> {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
) {
if (!isValidWorkspaceHandle(workspaceHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
}
@@ -430,9 +423,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
!isValidWorkspaceHandle(
workspaceHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -458,11 +453,7 @@ export class PersonalWorkspaceProviderService
workspaceHandle: HandleRef<WorkspaceCollection>,
collections: HoppCollection[]
): Promise<E.Either<unknown, void>> {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
) {
if (!isValidWorkspaceHandle(workspaceHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -476,9 +467,7 @@ export class PersonalWorkspaceProviderService
collection: HoppCollection
): Promise<E.Either<unknown, void>> {
if (
collectionHandle.value.type !== "ok" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(collectionHandle, this.providerID, "personal")
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -493,9 +482,7 @@ export class PersonalWorkspaceProviderService
destinationCollectionID: string | null
): Promise<E.Either<unknown, void>> {
if (
collectionHandle.value.type !== "ok" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(collectionHandle, this.providerID, "personal")
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -512,9 +499,7 @@ export class PersonalWorkspaceProviderService
destinationCollectionID: string | null
): Promise<E.Either<unknown, void>> {
if (
collectionHandle.value.type !== "ok" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(collectionHandle, this.providerID, "personal")
) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -532,11 +517,7 @@ export class PersonalWorkspaceProviderService
destinationCollectionID: string,
destinationRequestID: string | null
): Promise<E.Either<unknown, void>> {
if (
requestHandle.value.type !== "ok" ||
requestHandle.value.data.providerID !== this.providerID ||
requestHandle.value.data.workspaceID !== "personal"
) {
if (!isValidRequestHandle(requestHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_REQUEST_HANDLE" as const))
}
@@ -555,11 +536,7 @@ export class PersonalWorkspaceProviderService
requestHandle: HandleRef<WorkspaceRequest>,
destinationCollectionID: string
): Promise<E.Either<unknown, void>> {
if (
requestHandle.value.type !== "ok" ||
requestHandle.value.data.providerID !== this.providerID ||
requestHandle.value.data.workspaceID !== "personal"
) {
if (!isValidRequestHandle(requestHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_REQUEST_HANDLE" as const))
}
@@ -582,11 +559,7 @@ export class PersonalWorkspaceProviderService
workspaceHandle: HandleRef<Workspace>,
collectionID: string
): Promise<E.Either<unknown, HandleRef<WorkspaceCollection>>> {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
) {
if (!isValidWorkspaceHandle(workspaceHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
}
@@ -622,9 +595,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
!isValidWorkspaceHandle(
workspaceHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -650,11 +625,7 @@ export class PersonalWorkspaceProviderService
workspaceHandle: HandleRef<Workspace>,
requestID: string
): Promise<E.Either<unknown, HandleRef<WorkspaceRequest>>> {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
) {
if (!isValidWorkspaceHandle(workspaceHandle, this.providerID, "personal")) {
return Promise.resolve(E.left("INVALID_COLLECTION_HANDLE" as const))
}
@@ -690,9 +661,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
workspaceHandle.value.type !== "ok" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
!isValidWorkspaceHandle(
workspaceHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -722,9 +695,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
collectionHandle.value.type === "invalid" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(
collectionHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -803,9 +778,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
workspaceHandle.value.type === "invalid" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
!isValidWorkspaceHandle(
workspaceHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -846,9 +823,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
collectionHandle.value.type === "invalid" ||
collectionHandle.value.data.providerID !== this.providerID ||
collectionHandle.value.data.workspaceID !== "personal"
!isValidCollectionHandle(
collectionHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,
@@ -891,12 +870,8 @@ export class PersonalWorkspaceProviderService
return { type: "ok", data: { auth, headers } }
}
const parentFolderAuth = parentFolder.auth as
| HoppRESTAuth
| HoppGQLAuth
const parentFolderHeaders = parentFolder.headers as
| HoppRESTHeaders
| HoppGQLHeader[]
const parentFolderAuth: HoppRESTAuth = parentFolder.auth
const parentFolderHeaders: HoppRESTHeaders = parentFolder.headers
// check if the parent folder has authType 'inherit' and if it is the root folder
if (
@@ -1044,9 +1019,11 @@ export class PersonalWorkspaceProviderService
E.right(
computed(() => {
if (
workspaceHandle.value.type === "invalid" ||
workspaceHandle.value.data.providerID !== this.providerID ||
workspaceHandle.value.data.workspaceID !== "personal"
!isValidWorkspaceHandle(
workspaceHandle,
this.providerID,
"personal"
)
) {
return {
type: "invalid" as const,