Skip to content

Commit

Permalink
Merge pull request #29 from sigmacomputing/api-recipe-workbook-change…
Browse files Browse the repository at this point in the history
…-owner

Add update workbook owner recipe
  • Loading branch information
pballai authored Oct 30, 2024
2 parents 0f35e2f + c53bf0a commit bb7ea79
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/sigma-api-recipes/workbooks/update-owner.js"
}
]
}
2 changes: 2 additions & 0 deletions sigma-api-recipes/.env
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ baseURL=https://aws-api.sigmacomputing.com/v2
MEMBERID=
NEW_MEMBER_TYPE=

# yRn1UFV8ngVWBM1Hgrl51h7MS8uow me

EMAIL=

NEW_MEMBER_FIRST_NAME=
Expand Down
43 changes: 43 additions & 0 deletions sigma-api-recipes/workbooks/update-owner.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// This script updates the ownership of a specified inode in Sigma using the "Update an inode" endpoint.

// Load environment variables from a specific .env file for configuration
require('dotenv').config({ path: 'sigma-api-recipes/.env' });

// Import the function to obtain a bearer token from the authenticate-bearer module
const getBearerToken = require('../get-access-token');

// Import Axios for making HTTP requests
const axios = require('axios');

// Load use-case specific variables from environment variables
const baseURL = process.env.baseURL; // Base URL for the Sigma API
const memberid = process.env.MEMBERID; // New member ID to assign to the inode as owner
const workbookId = process.env.WORKBOOK_ID; // Workbook ID to be used as the urlId for the inode

// Function to update the ownerId of a specified inode using the workbookId
async function updateInodeOwner(workbookId) {
const token = await getBearerToken();
if (!token) {
console.error('Failed to obtain Bearer token.');
return;
}

try {
const response = await axios.patch(
`${baseURL}/files/${workbookId}`,
{ ownerId: memberid }, // Use `ownerId` with `memberid` value from .env
{
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
}
);
console.log('Inode updated successfully:', response.data);
} catch (error) {
console.error('Error updating inode:', error.response ? error.response.data : error);
}
}

// Execute the update function
updateInodeOwner(workbookId);

0 comments on commit bb7ea79

Please sign in to comment.