Path: blob/master/src/packages/next/pages/api/v2/projects/public-path-license.ts
1451 views
/*1If the given public path is unlisted and has a license associated to it,2apply it to the given project.3*/45import { isValidUUID } from "@cocalc/util/misc";6import { associatedLicense } from "@cocalc/server/licenses/public-path";7import getParams from "lib/api/get-params";8import { restartProjectIfRunning } from "@cocalc/server/projects/control/util";9import addLicenseToProject from "@cocalc/server/licenses/add-to-project";1011export default async function handle(req, res) {12const { public_path_id, project_id } = getParams(req);1314try {15if (!isValidUUID(project_id)) {16throw Error("project_id must be a valid uuid");17}18if (public_path_id?.length != 40) {19throw Error("public_path_id must be a sha1 hash");20}21const site_license_id = await associatedLicense(public_path_id);22if (site_license_id) {23// These are the only conditions under which we would apply a license.24// Apply site_license_id to project_id.25await addLicenseToProject({ project_id, license_id: site_license_id });26restartProjectIfRunning(project_id);27}2829res.json({});30} catch (err) {31res.json({ error: err.message });32}33}343536