feat: Add TEST/PROD environment toggle and improve UNK validation
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
|
||||
import { config } from 'dotenv';
|
||||
import { Client } from '@microsoft/microsoft-graph-client';
|
||||
|
||||
config({ path: '/home/admin/secrets/.env' });
|
||||
|
||||
async function getGraphToken() {
|
||||
const tokenEndpoint = `https://login.microsoftonline.com/${process.env.TENANT_ID}/oauth2/v2.0/token`;
|
||||
const params = new URLSearchParams();
|
||||
params.append('client_id', process.env.CLIENT_ID!);
|
||||
params.append('client_secret', process.env.CLIENT_SECRET!);
|
||||
params.append('scope', 'https://graph.microsoft.com/.default');
|
||||
params.append('grant_type', 'client_credentials');
|
||||
|
||||
const response = await fetch(tokenEndpoint, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||
body: params,
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
return data.access_token;
|
||||
}
|
||||
|
||||
async function inspectTables() {
|
||||
const token = await getGraphToken();
|
||||
const client = Client.init({
|
||||
authProvider: (done) => {
|
||||
done(null, token);
|
||||
},
|
||||
});
|
||||
|
||||
const driveId = process.env.DRIVE_ID;
|
||||
const itemId = process.env.ITEM_ID;
|
||||
const baseUrl = `/drives/${driveId}/items/${itemId}/workbook/tables`;
|
||||
|
||||
console.log(`Inspecting tables in file: ${itemId}`);
|
||||
|
||||
try {
|
||||
const res = await client.api(baseUrl).get();
|
||||
const tables = res.value;
|
||||
|
||||
for (const table of tables) {
|
||||
console.log(`\nTable: ${table.name}`);
|
||||
const cols = await client.api(`${baseUrl}/${table.name}/columns`).get();
|
||||
console.log(`- Column count: ${cols.value.length}`);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Error:', err.message);
|
||||
}
|
||||
}
|
||||
|
||||
inspectTables();
|
||||
Reference in New Issue
Block a user