From 9ef2fb4a757cd80613a7367a03a8465c22dd2942 Mon Sep 17 00:00:00 2001 From: "Williams, Gavin J" Date: Mon, 24 Jan 2022 16:40:03 -0500 Subject: [PATCH] Create storage space for file --- src/taskRunner.ts | 2 +- src/uploadfile.ts | 36 +++++++++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/taskRunner.ts b/src/taskRunner.ts index a8718e5..fbc2229 100644 --- a/src/taskRunner.ts +++ b/src/taskRunner.ts @@ -139,4 +139,4 @@ getCredentials(); // and how often it runs. We may need to test this out. // setInterval(dispatchWatcher, 5000, 7000); -setInterval(uploadTest, 5000, process.argv[2], process.argv[3]); +setInterval(uploadTest, 5000, process.argv[2], folderID); diff --git a/src/uploadfile.ts b/src/uploadfile.ts index cd102a8..ab3d2a2 100644 --- a/src/uploadfile.ts +++ b/src/uploadfile.ts @@ -1,11 +1,12 @@ import * as ForgeSDK from 'forge-apis'; -import { authClient, folderMap, ForgeAuthClient, projectID } from './config'; +import { authClient, projectID } from './config'; +import * as fs from 'fs'; const projectsAPI = new ForgeSDK.ProjectsApi(); -const bucketsAPI = new ForgeSDK.BucketsApi(); +const objectsAPI = new ForgeSDK.ObjectsApi(); const jsonVersion: ForgeSDK.JsonApiVersionJsonapi = {version: "1.0"} -function getCreateStorageDataObject(fileName: string, foldername: string): ForgeSDK.CreateStorageData { +function getCreateStorageDataObject(fileName: string, folderID: string): ForgeSDK.CreateStorageData { const content: ForgeSDK.CreateStorageData = { type: "objects", attributes: { @@ -14,7 +15,8 @@ function getCreateStorageDataObject(fileName: string, foldername: string): Forge relationships: { target: { data: { - type: "folders", id: folderMap[foldername].folderID + type: "folders", + id: folderID } } } @@ -22,10 +24,19 @@ function getCreateStorageDataObject(fileName: string, foldername: string): Forge return content; } -export function uploadFile(fileName: string, folderName: string, credentials: ForgeSDK.AuthToken) { +function uploadFileObject(bucketKey: string, objectName: string, credentials: ForgeSDK.AuthToken) { + // objectsAPI.uploadObject(bucketKey, objectName, ) +} + +export function uploadFile(fileName: string, folderID: string, credentials: ForgeSDK.AuthToken) { + console.log(folderID); + + var bucketKey: string; + var objectName: string; + const body: ForgeSDK.CreateStorage = { jsonapi: jsonVersion, - data: getCreateStorageDataObject(fileName, folderName) + data: getCreateStorageDataObject(fileName, folderID) } projectsAPI.postStorage(projectID, body, authClient, credentials).then( @@ -34,12 +45,19 @@ export function uploadFile(fileName: string, folderName: string, credentials: Fo console.log("Resp Error Code: ", resp.statusCode); return; } - const storageID: string = resp.body.id; - console.log("Created ID:\n", storageID); + const storageID: string = resp.body.data.id; + var strarray: string[] = storageID.split(":"); + strarray = strarray[strarray.length-1].split("/"); + + bucketKey = strarray[0]; + objectName = strarray[1]; + + console.log("Created ID:\n", storageID, "\nBucket: ", bucketKey, "\nFile: ", objectName); + uploadFileObject(bucketKey, objectName, credentials); }, (err: ForgeSDK.ApiError) => { console.log("Post Storage Error: " + err.statusCode); return; } - ); + ); } \ No newline at end of file