From be9007967cb5cd6f982c3afd1f0318e261244a54 Mon Sep 17 00:00:00 2001 From: "Williams, Gavin J" Date: Thu, 27 Jan 2022 16:20:34 -0500 Subject: [PATCH] Commented Wrapper Functions --- src/uploadfile.ts | 54 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/src/uploadfile.ts b/src/uploadfile.ts index ecbe7de..54c5ee6 100644 --- a/src/uploadfile.ts +++ b/src/uploadfile.ts @@ -81,6 +81,19 @@ function getCreateItemIncludedObject(fileName: string, objectID: string): ForgeS return content; } +/** + * Wrapper for: @function ItemsApi.postItem() + * Builds JSON to link bucket data to fusion folders + * On Success: returns + * On Fail: returns + * @param fileName File name plus extension + * @param folderID Fusion ID of folder + * @param objectID fusion ID of uploaded bucket object + * @param credentials Forge Authtoken + * Calls: + * @function getCreateItemDataObject + * @function getCreateItemIncludedObject + */ function createItem(fileName: string, folderID: string, objectID: string, credentials: ForgeSDK.AuthToken) { console.log("Name: ", fileName) const body: ForgeSDK.CreateItem = { @@ -95,17 +108,27 @@ function createItem(fileName: string, folderID: string, objectID: string, creden console.log("Create Version Error: ", resp.statusCode); return; } - console.log("Success!\nResponse:\n", resp.body); - return; + + return true; }, (err: ForgeSDK.ApiError) => { console.log("API ERROR CODE: ", err.statusCode, "\nMESSAGE: ", err.statusMessage, "\nBODY: ", err.statusBody); + return false; } ); } +/** + * Wrapper for: @function ObjectsApi.uploadObject() + * Builds json to upload file to bucket + * On success: Maps fusion version to bucket, allows data to be accessed + * On fail: returns + * @param fileName File name plus extension + * @param folderName Name of folder to access ID and local directory + * @param objectID ID of object from successful bucket allocation + * @param credentials Forge Authtoken + */ function uploadFileObject(fileName: string, folderName: string, objectID: string, credentials: ForgeSDK.AuthToken) { - // TODO: use FS to upload file const fileBuffer: Buffer = fs.readFileSync(`${__dirname + '/FileShare' + config.folderMap[folderName].local}/${fileName}`); var objIDTokens: string[] = objectID.split(":"); @@ -125,17 +148,29 @@ function uploadFileObject(fileName: string, folderName: string, objectID: string (resp: ForgeSDK.ApiResponse) => { if (resp.statusCode != 200) { console.log("Upload File Error: ", resp.statusCode); - return; + return false; } - createItem(fileName, config.folderMap[folderName].fusionID, objectID, credentials); + + return createItem(fileName, config.folderMap[folderName].fusionID, objectID, credentials); }, (err: ForgeSDK.ApiError) => { console.log("Upload File Error: " + err.statusCode); - return; + return false; } ); } +/** + * Wrapper for: @function ProjectsApi.postStorage() + * Extracts necessary information from arguments. + * Requests bucket storage for file name in specified project and folder. + * On success: Uploads file object to bucket + * On fail: Returns + * @param fileName name of the file with extension + * @param folderName name of the folder + * @param credentials forge authtoken + */ + export function uploadFile(fileName: string, folderName: string, credentials: ForgeSDK.AuthToken) { const folderID: string = config.folderMap[folderName].fusionID; console.log(folderID); @@ -153,7 +188,7 @@ export function uploadFile(fileName: string, folderName: string, credentials: Fo (resp: ForgeSDK.ApiResponse) => { if (resp.statusCode != 201) { console.log("Allocate Storage Error: ", resp.statusCode); - return; + return true; } objectID = resp.body.data.id; @@ -163,12 +198,11 @@ export function uploadFile(fileName: string, folderName: string, credentials: Fo bucketKey = strarray[0].trim(); objectName = strarray[1].trim(); - console.log("Created ID:\n", objectID, "\nBucket: ", bucketKey, "\nFile: ", objectName); - uploadFileObject(fileName, folderName, objectID, credentials); + return uploadFileObject(fileName, folderName, objectID, credentials); }, (err: ForgeSDK.ApiError) => { console.log("Post Storage Error: " + err.statusCode); - return; + return false; } ); } \ No newline at end of file