@sassoftware/mcp-serverjs
Version:
A mcp server for SAS Viya
53 lines (47 loc) • 1.5 kB
JavaScript
/*
* Copyright © 2024, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import restaf from '@sassoftware/restaf';
import getLogonPayload from './getLogonPayload.js';
import debug from 'debug';
async function _listModels(params) {
let { limit, start , name} = params;
const log = debug('modelList');
// setup
let store = restaf.initStore({
casProxy: true,
options: {
proxyServer: null,
httpOptions: null
}
});
let logonPayload = await getLogonPayload();
try {
await store.logon(logonPayload);
let { microanalyticScore } = await store.addServices('microanalyticScore');
let payload = {
qs: {
limit: limit || 10,
start: start || 1 // note: bug in microanalyticScore service, start is not zero based
}
}
if (name != null) {
payload.qs = {
filter: `eq(name, '${name}')`
}
}
let result = await store.apiCall(microanalyticScore.links('modules'), payload);
let list = result.itemsList().toJS();
log('result', JSON.stringify(list, null, 2));
await store.logoff();
return { content: [{ type: 'text', text: JSON.stringify(list) }],
structuredContent: list
};
} catch (err) {
log(JSON.stringify(err, null, 2));
await store.logoff();
return { content: [{ type: 'text', text: JSON.stringify(err) }] };
}
}
export default _listModels;