mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-19 07:26:59 +01:00
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import type { HttpRequest } from '@yaakapp-internal/models';
|
|
import { invokeCmd } from '../lib/tauri';
|
|
import { getActiveWorkspaceId } from './useActiveWorkspace';
|
|
import { useCreateHttpRequest } from './useCreateHttpRequest';
|
|
import { useFastMutation } from './useFastMutation';
|
|
import { useRequestUpdateKey } from './useRequestUpdateKey';
|
|
import { showToast } from '../lib/toast';
|
|
import { useUpdateAnyHttpRequest } from './useUpdateAnyHttpRequest';
|
|
|
|
export function useImportCurl() {
|
|
const updateRequest = useUpdateAnyHttpRequest();
|
|
const createRequest = useCreateHttpRequest();
|
|
const { wasUpdatedExternally } = useRequestUpdateKey(null);
|
|
|
|
return useFastMutation({
|
|
mutationKey: ['import_curl'],
|
|
mutationFn: async ({
|
|
overwriteRequestId,
|
|
command,
|
|
}: {
|
|
overwriteRequestId?: string;
|
|
command: string;
|
|
}) => {
|
|
const workspaceId = getActiveWorkspaceId();
|
|
const request: HttpRequest = await invokeCmd('cmd_curl_to_request', {
|
|
command,
|
|
workspaceId,
|
|
});
|
|
|
|
let verb;
|
|
if (overwriteRequestId == null) {
|
|
verb = 'Created';
|
|
await createRequest.mutateAsync(request);
|
|
} else {
|
|
verb = 'Updated';
|
|
await updateRequest.mutateAsync({
|
|
id: overwriteRequestId,
|
|
update: (r: HttpRequest) => ({
|
|
...request,
|
|
id: r.id,
|
|
createdAt: r.createdAt,
|
|
workspaceId: r.workspaceId,
|
|
folderId: r.folderId,
|
|
name: r.name,
|
|
sortPriority: r.sortPriority,
|
|
}),
|
|
});
|
|
|
|
setTimeout(() => wasUpdatedExternally(overwriteRequestId), 100);
|
|
}
|
|
|
|
showToast({
|
|
color: 'success',
|
|
message: `${verb} request from Curl`,
|
|
});
|
|
},
|
|
});
|
|
}
|