add project deletion in storage & connect to ip port 3000
This commit is contained in:
parent
218afd4fe0
commit
1528ea5257
@ -52,6 +52,14 @@ export default {
|
|||||||
const id = params.get("id") as string;
|
const id = params.get("id") as string;
|
||||||
await db.delete(usersToSandboxes).where(eq(usersToSandboxes.sandboxId, id));
|
await db.delete(usersToSandboxes).where(eq(usersToSandboxes.sandboxId, id));
|
||||||
await db.delete(sandbox).where(eq(sandbox.id, id));
|
await db.delete(sandbox).where(eq(sandbox.id, id));
|
||||||
|
|
||||||
|
const deleteStorageRequest = new Request("https://storage.ishaan1013.workers.dev/api/project", {
|
||||||
|
method: "DELETE",
|
||||||
|
body: JSON.stringify({ sandboxId: id }),
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
});
|
||||||
|
const deleteStorageRes = await env.STORAGE.fetch(deleteStorageRequest);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
} else {
|
} else {
|
||||||
return invalidRequest;
|
return invalidRequest;
|
||||||
@ -93,7 +101,7 @@ export default {
|
|||||||
});
|
});
|
||||||
const initStorageRes = await env.STORAGE.fetch(initStorageRequest);
|
const initStorageRes = await env.STORAGE.fetch(initStorageRequest);
|
||||||
|
|
||||||
const initStorage = await initStorageRes.text();
|
// const initStorage = await initStorageRes.text();
|
||||||
|
|
||||||
return new Response(sb.id, { status: 200 });
|
return new Response(sb.id, { status: 200 });
|
||||||
} else {
|
} else {
|
||||||
|
@ -16,7 +16,24 @@ export default {
|
|||||||
const path = url.pathname;
|
const path = url.pathname;
|
||||||
const method = request.method;
|
const method = request.method;
|
||||||
|
|
||||||
if (path === '/api/size' && method === 'GET') {
|
if (path === '/api/project' && method === 'DELETE') {
|
||||||
|
const deleteSchema = z.object({
|
||||||
|
sandboxId: z.string(),
|
||||||
|
});
|
||||||
|
|
||||||
|
const body = await request.json();
|
||||||
|
const { sandboxId } = deleteSchema.parse(body);
|
||||||
|
|
||||||
|
const res = await env.R2.list({ prefix: 'projects/' + sandboxId });
|
||||||
|
// delete all files
|
||||||
|
await Promise.all(
|
||||||
|
res.objects.map(async (file) => {
|
||||||
|
await env.R2.delete(file.key);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
return success;
|
||||||
|
} else if (path === '/api/size' && method === 'GET') {
|
||||||
const params = url.searchParams;
|
const params = url.searchParams;
|
||||||
const sandboxId = params.get('sandboxId');
|
const sandboxId = params.get('sandboxId');
|
||||||
|
|
||||||
|
@ -732,7 +732,7 @@ export default function CodeEditor({
|
|||||||
previewPanelRef.current?.expand();
|
previewPanelRef.current?.expand();
|
||||||
setIsPreviewCollapsed(false);
|
setIsPreviewCollapsed(false);
|
||||||
}}
|
}}
|
||||||
sandboxId={sandboxData.id}
|
ip={ip}
|
||||||
/>
|
/>
|
||||||
</ResizablePanel>
|
</ResizablePanel>
|
||||||
<ResizableHandle />
|
<ResizableHandle />
|
||||||
|
@ -15,11 +15,11 @@ import { toast } from "sonner";
|
|||||||
export default function PreviewWindow({
|
export default function PreviewWindow({
|
||||||
collapsed,
|
collapsed,
|
||||||
open,
|
open,
|
||||||
sandboxId,
|
ip,
|
||||||
}: {
|
}: {
|
||||||
collapsed: boolean;
|
collapsed: boolean;
|
||||||
open: () => void;
|
open: () => void;
|
||||||
sandboxId: string;
|
ip: string;
|
||||||
}) {
|
}) {
|
||||||
const ref = useRef<HTMLIFrameElement>(null);
|
const ref = useRef<HTMLIFrameElement>(null);
|
||||||
|
|
||||||
@ -51,9 +51,7 @@ export default function PreviewWindow({
|
|||||||
|
|
||||||
<PreviewButton
|
<PreviewButton
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigator.clipboard.writeText(
|
navigator.clipboard.writeText(`http://${ip}:3000`);
|
||||||
`http://${sandboxId}.sandbox.ishaand.com`
|
|
||||||
);
|
|
||||||
toast.info("Copied preview link to clipboard");
|
toast.info("Copied preview link to clipboard");
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -79,7 +77,7 @@ export default function PreviewWindow({
|
|||||||
ref={ref}
|
ref={ref}
|
||||||
width={"100%"}
|
width={"100%"}
|
||||||
height={"100%"}
|
height={"100%"}
|
||||||
src={`http://${sandboxId}.sandbox.ishaand.com`}
|
src={`http://${ip}:3000`}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
@ -64,36 +64,6 @@ export function addNew(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// export async function startServer(
|
|
||||||
// sandboxId: string,
|
|
||||||
// userId: string,
|
|
||||||
// callback: (success: boolean) => void
|
|
||||||
// ) {
|
|
||||||
// try {
|
|
||||||
// const res = await fetch("http://localhost:4001/start", {
|
|
||||||
// method: "POST",
|
|
||||||
// headers: {
|
|
||||||
// "Content-Type": "application/json",
|
|
||||||
// },
|
|
||||||
// body: JSON.stringify({
|
|
||||||
// sandboxId,
|
|
||||||
// userId,
|
|
||||||
// }),
|
|
||||||
// });
|
|
||||||
|
|
||||||
// if (res.status !== 200) {
|
|
||||||
// console.error("Failed to start server", res);
|
|
||||||
// callback(false);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// callback(true);
|
|
||||||
// } catch (error) {
|
|
||||||
// console.error("Failed to start server", error);
|
|
||||||
|
|
||||||
// callback(false);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
export function checkServiceStatus(serviceName: string): Promise<Service> {
|
export function checkServiceStatus(serviceName: string): Promise<Service> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let tries = 0;
|
let tries = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user