diff --git a/packages/insomnia/src/models/websocket-request.ts b/packages/insomnia/src/models/websocket-request.ts index 194dec45cf..7a2cafa46f 100644 --- a/packages/insomnia/src/models/websocket-request.ts +++ b/packages/insomnia/src/models/websocket-request.ts @@ -89,4 +89,6 @@ export async function duplicate(request: WebSocketRequest, patch: Partial database.getWhere(type, { _id }); +export const findByParentId = (parentId: string) => database.find(type, { parentId }); + export const all = () => database.all(type); diff --git a/packages/insomnia/src/ui/components/sidebar/dnd.tsx b/packages/insomnia/src/ui/components/sidebar/dnd.tsx index 348602282e..7f6f57aa00 100644 --- a/packages/insomnia/src/ui/components/sidebar/dnd.tsx +++ b/packages/insomnia/src/ui/components/sidebar/dnd.tsx @@ -5,8 +5,9 @@ import { database } from '../../../common/database'; import { BaseModel } from '../../../models'; import * as models from '../../../models'; import { GrpcRequest } from '../../../models/grpc-request'; +import * as requestOperations from '../../../models/helpers/request-operations'; import { Request } from '../../../models/request'; -import { RequestGroup } from '../../../models/request-group'; +import { isRequestGroup, RequestGroup } from '../../../models/request-group'; import { WebSocketRequest } from '../../../models/websocket-request'; export type DnDDragProps = ReturnType; @@ -103,8 +104,10 @@ const moveDoc = async ({ } function __updateDoc(doc: BaseModel, patch: any) { - // @ts-expect-error -- TSCONVERSION - return models.getModel(docToMove.type).update(doc, patch); + if (isRequestGroup(doc)) { + return models.requestGroup.update(doc, patch); + } + return requestOperations.update(doc, patch); } if (!targetId) { @@ -116,6 +119,7 @@ const moveDoc = async ({ // NOTE: using requestToTarget's parentId so we can switch parents! const docs = [ ...(await models.request.findByParentId(parentId)), + ...(await models.webSocketRequest.findByParentId(parentId)), ...(await models.grpcRequest.findByParentId(parentId)), ...(await models.requestGroup.findByParentId(parentId)), ].sort((a, b) => (a.metaSortKey < b.metaSortKey ? -1 : 1)); diff --git a/packages/insomnia/src/ui/components/sidebar/sidebar-filter.tsx b/packages/insomnia/src/ui/components/sidebar/sidebar-filter.tsx index d77f3e6e99..9f4c37b786 100644 --- a/packages/insomnia/src/ui/components/sidebar/sidebar-filter.tsx +++ b/packages/insomnia/src/ui/components/sidebar/sidebar-filter.tsx @@ -54,6 +54,7 @@ export const SidebarFilter: FC = ({ filter }) => { ...(await models.requestGroup.findByParentId(parentId)), ...(await models.request.findByParentId(parentId)), ...(await models.grpcRequest.findByParentId(parentId)), + ...(await models.webSocketRequest.findByParentId(parentId)), ].sort(sortMethodMap[order]); // @ts-expect-error -- TSCONVERSION the fetched model will only ever be a RequestGroup, Request, or GrpcRequest // Which all have the .update method. How do we better filter types?