Loading...
Loading...
Patterns for Domo Custom Connector IDE work only (not Domo App Platform custom apps).
npx skill4agent add stahura/domo-ai-vibe-rules cap-connector-devauthentication.jsdataProcessing.jsREADME.md.js// Validate input format
let tokenFormat = /^[a-zA-Z0-9_-]+$/;
let accessToken = metadata.account.apikey;
if (tokenFormat.test(accessToken)) {
httprequest.addHeader('Accept', 'application/json');
httprequest.addHeader('Authorization', `Bearer ${accessToken}`);
// Test authentication with a simple API call
let res = httprequest.get('https://api.example.com/test');
let statusCode = httprequest.getStatusCode();
if (statusCode === 200) {
auth.authenticationSuccess();
} else {
auth.authenticationFailed('Authentication failed. Please check your credentials.');
}
} else {
auth.authenticationFailed('Invalid token format.');
}// Set headers
httprequest.addHeader('Accept', 'application/json');
httprequest.addHeader('Authorization', `Bearer ${metadata.account.apikey}`);
// Determine endpoint based on report selection
let endpoint = '';
switch(metadata.report) {
case 'Report1':
endpoint = 'https://api.example.com/data1';
break;
case 'Report2':
endpoint = 'https://api.example.com/data2';
break;
}
// Fetch and process data with pagination
let URL = endpoint;
do {
let res = httprequest.get(URL);
let statusCode = httprequest.getStatusCode();
if (statusCode !== 200) {
throw new Error(`API request failed: ${statusCode}`);
}
let responseData = JSON.parse(res);
// Parse JSON array into Domo dataset
datagrid.magicParseJSON(responseData.results);
// Handle pagination
URL = responseData.paging?.next?.link || false;
} while (URL);try {
let res = httprequest.get(url);
let statusCode = httprequest.getStatusCode();
if (statusCode !== 200) {
let errorMsg = `Request failed: ${statusCode}`;
try {
let errorData = JSON.parse(res);
if (errorData.message) {
errorMsg = errorData.message;
}
} catch (e) {
errorMsg += `. Response: ${res.substring(0, 200)}`;
}
throw new Error(errorMsg);
}
// Process successful response
let data = JSON.parse(res);
datagrid.magicParseJSON(data.results);
} catch (error) {
// Handle error appropriately
throw error;
}nulldatagrid.magicParseJSON(jsonString)auth.authenticationFailed()authentication.jsauthentication.jsauth.authenticationSuccess()auth.authenticationFailed()dataProcessing.jsdataProcessing.jsdataProcessing.jsdatagrid.magicParseJSON()README.md