From 2c47a63ca0f4f73ca615b6127b1d664d53917510 Mon Sep 17 00:00:00 2001 From: jamesgeorge007 Date: Sat, 10 Feb 2024 12:46:14 +0530 Subject: [PATCH] refactor: update provider method signature --- .../helpers/types/HoppInheritedProperties.ts | 17 +++--- .../src/services/new-workspace/index.ts | 11 ++-- .../src/services/new-workspace/provider.ts | 2 +- .../providers/personal.workspace.ts | 52 +++++++++---------- 4 files changed, 44 insertions(+), 38 deletions(-) diff --git a/packages/hoppscotch-common/src/helpers/types/HoppInheritedProperties.ts b/packages/hoppscotch-common/src/helpers/types/HoppInheritedProperties.ts index fa066a886..28dc1a011 100644 --- a/packages/hoppscotch-common/src/helpers/types/HoppInheritedProperties.ts +++ b/packages/hoppscotch-common/src/helpers/types/HoppInheritedProperties.ts @@ -19,17 +19,22 @@ export type HoppInheritedProperty = { } type ModifiedAuth = { - [K in keyof T]: K extends 'inheritedAuth' ? Extract : T[K] + [K in keyof T]: K extends "inheritedAuth" ? Extract : T[K] } type ModifiedHeaders = { - [K in keyof T]: K extends 'inheritedHeader' ? Extract : T[K] + [K in keyof T]: K extends "inheritedHeader" ? Extract : T[K] } type ModifiedHoppInheritedProperty = { - auth: ModifiedAuth - headers: ModifiedHeaders[] + auth: ModifiedAuth + headers: ModifiedHeaders< + HoppInheritedProperty["headers"][number], + HeaderType + >[] } -export type HoppInheritedRESTProperty = ModifiedHoppInheritedProperty - +export type HoppInheritedRESTProperty = ModifiedHoppInheritedProperty< + HoppRESTAuth, + HoppRESTHeader +> diff --git a/packages/hoppscotch-common/src/services/new-workspace/index.ts b/packages/hoppscotch-common/src/services/new-workspace/index.ts index ff9d0fc61..2d2a93dd8 100644 --- a/packages/hoppscotch-common/src/services/new-workspace/index.ts +++ b/packages/hoppscotch-common/src/services/new-workspace/index.ts @@ -12,7 +12,11 @@ import { WorkspaceProvider } from "./provider" import { HandleRef } from "./handle" import * as E from "fp-ts/Either" import { Workspace, WorkspaceCollection, WorkspaceRequest } from "./workspace" -import { RESTCollectionChildrenView, RESTCollectionLevelAuthHeadersView, RootRESTCollectionView } from "./view" +import { + RESTCollectionChildrenView, + RESTCollectionLevelAuthHeadersView, + RootRESTCollectionView, +} from "./view" import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data" export type WorkspaceError = @@ -353,10 +357,7 @@ export class NewWorkspaceService extends Service { requestHandle: HandleRef, updatedRequest: Partial ): Promise< - E.Either< - WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">, - HandleRef["value"] - > + E.Either, void> > { if (requestHandle.value.type === "invalid") { return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" }) diff --git a/packages/hoppscotch-common/src/services/new-workspace/provider.ts b/packages/hoppscotch-common/src/services/new-workspace/provider.ts index 2fba7551a..41b2597ee 100644 --- a/packages/hoppscotch-common/src/services/new-workspace/provider.ts +++ b/packages/hoppscotch-common/src/services/new-workspace/provider.ts @@ -63,7 +63,7 @@ export interface WorkspaceProvider { updateRESTRequest( requestHandle: HandleRef, updatedRequest: Partial - ): Promise["value"]>> + ): Promise> removeRESTRequest( requestHandle: HandleRef ): Promise> diff --git a/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts b/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts index 714b4cff3..1b0c7cad3 100644 --- a/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts +++ b/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts @@ -389,7 +389,7 @@ export class PersonalWorkspaceProviderService public updateRESTRequest( requestHandle: HandleRef, updatedRequest: Partial - ): Promise["value"]>> { + ): Promise> { if ( requestHandle.value.type !== "ok" || requestHandle.value.data.providerID !== this.providerID || @@ -400,32 +400,18 @@ export class PersonalWorkspaceProviderService const { collectionID, requestID, request } = requestHandle.value.data - try { - const newRequest: HoppRESTRequest = merge(request, updatedRequest) - const requestIndex = parseInt(requestID) - editRESTRequest(collectionID, requestIndex, newRequest) + const newRequest: HoppRESTRequest = merge(request, updatedRequest) + const requestIndex = parseInt(requestID) + editRESTRequest(collectionID, requestIndex, newRequest) - platform.analytics?.logEvent({ - type: "HOPP_SAVE_REQUEST", - platform: "rest", - createdNow: false, - workspaceType: "personal", - }) - } catch (err) { - return Promise.resolve( - E.right({ - type: "invalid" as const, - reason: "REQUEST_PATH_NOT_FOUND" as const, - }) - ) - } + platform.analytics?.logEvent({ + type: "HOPP_SAVE_REQUEST", + platform: "rest", + createdNow: false, + workspaceType: "personal", + }) - return Promise.resolve( - E.right({ - type: "ok", - data: true, - }) - ) + return Promise.resolve(E.right(undefined)) } public getCollectionHandle( @@ -464,7 +450,14 @@ export class PersonalWorkspaceProviderService const collection = navigateToFolderWithIndexPath( this.restCollectionState.value.state, collectionID.split("/").map((x) => parseInt(x)) - ) as HoppCollection + ) + + if (!collection) { + return { + type: "invalid" as const, + reason: "COLLECTION_PATH_NOT_FOUND" as const, + } + } const { providerID, workspaceID } = workspaceHandle.value.data @@ -538,6 +531,13 @@ export class PersonalWorkspaceProviderService // 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: {