Path: blob/master/src/packages/next/pages/api/v2/projects/delete.ts
5796 views
/*1API endpoint to delete a project, which sets the "delete" flag to `true` in the database.2*/3import deleteProject from "@cocalc/server/projects/delete";4import getAccountId from "lib/account/get-account";5import getParams from "lib/api/get-params";6import { apiRoute, apiRouteOperation } from "lib/api";7import { OkStatus } from "lib/api/status";8import {9DeleteProjectInputSchema,10DeleteProjectOutputSchema,11} from "lib/api/schema/projects/delete";1213async function handle(req, res) {14const { project_id } = getParams(req);15const account_id = await getAccountId(req);1617try {18if (!account_id) {19throw Error("must be signed in");20}2122await deleteProject({ account_id, project_id });23res.json(OkStatus);24} catch (err) {25res.json({ error: err.message });26}27}2829export default apiRoute({30deleteProject: apiRouteOperation({31method: "POST",32openApiOperation: {33tags: ["Projects", "Admin"],34},35})36.input({37contentType: "application/json",38body: DeleteProjectInputSchema,39})40.outputs([41{42status: 200,43contentType: "application/json",44body: DeleteProjectOutputSchema,45},46])47.handler(handle),48});495051