async function InitiateUpload()

in frontend/app/DeliverableUploader/UploadService.ts [20:56]


async function InitiateUpload(
  projectId: number,
  forPath: string
): Promise<string> {
  try {
    const payload = JSON.stringify({
      project_id: projectId,
      drop_folder: forPath,
    });

    const response = await axios({
      method: "post",
      url: "/deliverable-receiver/initiate",
      baseURL: "/",
      data: payload,
      headers: {
        "Content-Type": "application/json",
      },
    });

    if (response.status === 200) {
      const slotInfo = <UploadSlot>response.data.result;
      return slotInfo.uuid;
    } else {
      throw `unexpected response code ${response.status}`;
    }
  } catch (error) {
    console.error("Could not initiate upload: ", error);
    if (error.response) {
      throw `server error ${error.response.status}: ${error.response.data}`;
    } else if (error.request) {
      throw `no response from server`;
    } else {
      throw `internal error, see console log`;
    }
  }
}