refactor: update provider method signature

This commit is contained in:
jamesgeorge007
2024-02-10 12:46:14 +05:30
parent a0e373a4f3
commit 2c47a63ca0
4 changed files with 44 additions and 38 deletions

View File

@@ -19,17 +19,22 @@ export type HoppInheritedProperty = {
} }
type ModifiedAuth<T, AuthType> = { type ModifiedAuth<T, AuthType> = {
[K in keyof T]: K extends 'inheritedAuth' ? Extract<T[K], AuthType> : T[K] [K in keyof T]: K extends "inheritedAuth" ? Extract<T[K], AuthType> : T[K]
} }
type ModifiedHeaders<T, HeaderType> = { type ModifiedHeaders<T, HeaderType> = {
[K in keyof T]: K extends 'inheritedHeader' ? Extract<T[K], HeaderType> : T[K] [K in keyof T]: K extends "inheritedHeader" ? Extract<T[K], HeaderType> : T[K]
} }
type ModifiedHoppInheritedProperty<AuthType, HeaderType> = { type ModifiedHoppInheritedProperty<AuthType, HeaderType> = {
auth: ModifiedAuth<HoppInheritedProperty['auth'], AuthType> auth: ModifiedAuth<HoppInheritedProperty["auth"], AuthType>
headers: ModifiedHeaders<HoppInheritedProperty['headers'][number], HeaderType>[] headers: ModifiedHeaders<
HoppInheritedProperty["headers"][number],
HeaderType
>[]
} }
export type HoppInheritedRESTProperty = ModifiedHoppInheritedProperty<HoppRESTAuth, HoppRESTHeader> export type HoppInheritedRESTProperty = ModifiedHoppInheritedProperty<
HoppRESTAuth,
HoppRESTHeader
>

View File

@@ -12,7 +12,11 @@ import { WorkspaceProvider } from "./provider"
import { HandleRef } from "./handle" import { HandleRef } from "./handle"
import * as E from "fp-ts/Either" import * as E from "fp-ts/Either"
import { Workspace, WorkspaceCollection, WorkspaceRequest } from "./workspace" import { Workspace, WorkspaceCollection, WorkspaceRequest } from "./workspace"
import { RESTCollectionChildrenView, RESTCollectionLevelAuthHeadersView, RootRESTCollectionView } from "./view" import {
RESTCollectionChildrenView,
RESTCollectionLevelAuthHeadersView,
RootRESTCollectionView,
} from "./view"
import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data" import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data"
export type WorkspaceError<ServiceErr> = export type WorkspaceError<ServiceErr> =
@@ -353,10 +357,7 @@ export class NewWorkspaceService extends Service {
requestHandle: HandleRef<WorkspaceRequest>, requestHandle: HandleRef<WorkspaceRequest>,
updatedRequest: Partial<HoppRESTRequest> updatedRequest: Partial<HoppRESTRequest>
): Promise< ): Promise<
E.Either< E.Either<WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">, void>
WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
HandleRef<boolean>["value"]
>
> { > {
if (requestHandle.value.type === "invalid") { if (requestHandle.value.type === "invalid") {
return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" }) return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })

View File

@@ -63,7 +63,7 @@ export interface WorkspaceProvider {
updateRESTRequest( updateRESTRequest(
requestHandle: HandleRef<WorkspaceRequest>, requestHandle: HandleRef<WorkspaceRequest>,
updatedRequest: Partial<HoppRESTRequest> updatedRequest: Partial<HoppRESTRequest>
): Promise<E.Either<unknown, HandleRef<boolean>["value"]>> ): Promise<E.Either<unknown, void>>
removeRESTRequest( removeRESTRequest(
requestHandle: HandleRef<WorkspaceRequest> requestHandle: HandleRef<WorkspaceRequest>
): Promise<E.Either<unknown, void>> ): Promise<E.Either<unknown, void>>

View File

@@ -389,7 +389,7 @@ export class PersonalWorkspaceProviderService
public updateRESTRequest( public updateRESTRequest(
requestHandle: HandleRef<WorkspaceRequest>, requestHandle: HandleRef<WorkspaceRequest>,
updatedRequest: Partial<HoppRESTRequest> updatedRequest: Partial<HoppRESTRequest>
): Promise<E.Either<unknown, HandleRef<boolean>["value"]>> { ): Promise<E.Either<unknown, void>> {
if ( if (
requestHandle.value.type !== "ok" || requestHandle.value.type !== "ok" ||
requestHandle.value.data.providerID !== this.providerID || requestHandle.value.data.providerID !== this.providerID ||
@@ -400,7 +400,6 @@ export class PersonalWorkspaceProviderService
const { collectionID, requestID, request } = requestHandle.value.data const { collectionID, requestID, request } = requestHandle.value.data
try {
const newRequest: HoppRESTRequest = merge(request, updatedRequest) const newRequest: HoppRESTRequest = merge(request, updatedRequest)
const requestIndex = parseInt(requestID) const requestIndex = parseInt(requestID)
editRESTRequest(collectionID, requestIndex, newRequest) editRESTRequest(collectionID, requestIndex, newRequest)
@@ -411,21 +410,8 @@ export class PersonalWorkspaceProviderService
createdNow: false, createdNow: false,
workspaceType: "personal", workspaceType: "personal",
}) })
} catch (err) {
return Promise.resolve(
E.right({
type: "invalid" as const,
reason: "REQUEST_PATH_NOT_FOUND" as const,
})
)
}
return Promise.resolve( return Promise.resolve(E.right(undefined))
E.right({
type: "ok",
data: true,
})
)
} }
public getCollectionHandle( public getCollectionHandle(
@@ -464,7 +450,14 @@ export class PersonalWorkspaceProviderService
const collection = navigateToFolderWithIndexPath( const collection = navigateToFolderWithIndexPath(
this.restCollectionState.value.state, this.restCollectionState.value.state,
collectionID.split("/").map((x) => parseInt(x)) 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 const { providerID, workspaceID } = workspaceHandle.value.data
@@ -538,6 +531,13 @@ export class PersonalWorkspaceProviderService
// Grab the request with it's index // Grab the request with it's index
const request = collection?.requests[requestIndex] as HoppRESTRequest const request = collection?.requests[requestIndex] as HoppRESTRequest
if (!request) {
return {
type: "invalid" as const,
reason: "REQUEST_PATH_NOT_FOUND" as const,
}
}
return { return {
type: "ok", type: "ok",
data: { data: {