refactor: update provider method signature
This commit is contained in:
@@ -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
|
||||||
|
>
|
||||||
|
|||||||
@@ -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" })
|
||||||
|
|||||||
@@ -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>>
|
||||||
|
|||||||
@@ -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: {
|
||||||
|
|||||||
Reference in New Issue
Block a user