refactor: update provider method signature
This commit is contained in:
@@ -19,17 +19,22 @@ export type HoppInheritedProperty = {
|
||||
}
|
||||
|
||||
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> = {
|
||||
[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> = {
|
||||
auth: ModifiedAuth<HoppInheritedProperty['auth'], AuthType>
|
||||
headers: ModifiedHeaders<HoppInheritedProperty['headers'][number], HeaderType>[]
|
||||
auth: ModifiedAuth<HoppInheritedProperty["auth"], AuthType>
|
||||
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 * 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<ServiceErr> =
|
||||
@@ -353,10 +357,7 @@ export class NewWorkspaceService extends Service {
|
||||
requestHandle: HandleRef<WorkspaceRequest>,
|
||||
updatedRequest: Partial<HoppRESTRequest>
|
||||
): Promise<
|
||||
E.Either<
|
||||
WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
|
||||
HandleRef<boolean>["value"]
|
||||
>
|
||||
E.Either<WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">, void>
|
||||
> {
|
||||
if (requestHandle.value.type === "invalid") {
|
||||
return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })
|
||||
|
||||
@@ -63,7 +63,7 @@ export interface WorkspaceProvider {
|
||||
updateRESTRequest(
|
||||
requestHandle: HandleRef<WorkspaceRequest>,
|
||||
updatedRequest: Partial<HoppRESTRequest>
|
||||
): Promise<E.Either<unknown, HandleRef<boolean>["value"]>>
|
||||
): Promise<E.Either<unknown, void>>
|
||||
removeRESTRequest(
|
||||
requestHandle: HandleRef<WorkspaceRequest>
|
||||
): Promise<E.Either<unknown, void>>
|
||||
|
||||
@@ -389,7 +389,7 @@ export class PersonalWorkspaceProviderService
|
||||
public updateRESTRequest(
|
||||
requestHandle: HandleRef<WorkspaceRequest>,
|
||||
updatedRequest: Partial<HoppRESTRequest>
|
||||
): Promise<E.Either<unknown, HandleRef<boolean>["value"]>> {
|
||||
): Promise<E.Either<unknown, void>> {
|
||||
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: {
|
||||
|
||||
Reference in New Issue
Block a user