MCPcopy Index your code
hub / github.com/simstudioai/sim / buildVantaOutput

Function buildVantaOutput

apps/sim/app/api/tools/vanta/query/route.ts:280–362  ·  view source on GitHub ↗

* Normalizes a successful Vanta API response body into the operation's * documented output shape.

(params: VantaQueryBody, data: unknown)

Source from the content-addressed store, hash-verified

278 * documented output shape.
279 */
280function buildVantaOutput(params: VantaQueryBody, data: unknown): Record<string, unknown> {
281 switch (params.operation) {
282 case 'vanta_list_frameworks': {
283 const { data: items, pageInfo } = getVantaListResults(data)
284 return { frameworks: items.map(normalizeVantaFramework), pageInfo }
285 }
286 case 'vanta_get_framework':
287 return { framework: normalizeVantaFrameworkDetail(asVantaRecord(data)) }
288 case 'vanta_list_framework_controls':
289 case 'vanta_list_controls': {
290 const { data: items, pageInfo } = getVantaListResults(data)
291 return { controls: items.map(normalizeVantaControl), pageInfo }
292 }
293 case 'vanta_get_control':
294 return { control: normalizeVantaControlDetail(asVantaRecord(data)) }
295 case 'vanta_list_control_tests':
296 case 'vanta_list_tests': {
297 const { data: items, pageInfo } = getVantaListResults(data)
298 return { tests: items.map(normalizeVantaTest), pageInfo }
299 }
300 case 'vanta_get_test':
301 return { test: normalizeVantaTest(asVantaRecord(data)) }
302 case 'vanta_list_test_entities': {
303 const { data: items, pageInfo } = getVantaListResults(data)
304 return { entities: items.map(normalizeVantaTestEntity), pageInfo }
305 }
306 case 'vanta_list_control_documents':
307 case 'vanta_list_documents': {
308 const { data: items, pageInfo } = getVantaListResults(data)
309 return { documents: items.map(normalizeVantaDocument), pageInfo }
310 }
311 case 'vanta_get_document':
312 return { document: normalizeVantaDocumentDetail(asVantaRecord(data)) }
313 case 'vanta_list_document_uploads': {
314 const { data: items, pageInfo } = getVantaListResults(data)
315 return { uploads: items.map(normalizeVantaUploadedFile), pageInfo }
316 }
317 case 'vanta_submit_document':
318 return { documentId: params.documentId, submitted: true }
319 case 'vanta_list_people': {
320 const { data: items, pageInfo } = getVantaListResults(data)
321 return { people: items.map(normalizeVantaPerson), pageInfo }
322 }
323 case 'vanta_get_person':
324 return { person: normalizeVantaPerson(asVantaRecord(data)) }
325 case 'vanta_list_policies': {
326 const { data: items, pageInfo } = getVantaListResults(data)
327 return { policies: items.map(normalizeVantaPolicy), pageInfo }
328 }
329 case 'vanta_get_policy':
330 return { policy: normalizeVantaPolicy(asVantaRecord(data)) }
331 case 'vanta_list_vendors': {
332 const { data: items, pageInfo } = getVantaListResults(data)
333 return { vendors: items.map(normalizeVantaVendor), pageInfo }
334 }
335 case 'vanta_get_vendor':
336 return { vendor: normalizeVantaVendor(asVantaRecord(data)) }
337 case 'vanta_list_monitored_computers': {

Callers 1

route.tsFile · 0.85

Calls 11

getVantaListResultsFunction · 0.90
asVantaRecordFunction · 0.90
normalizeVantaTestFunction · 0.90
normalizeVantaPersonFunction · 0.90
normalizeVantaPolicyFunction · 0.90
normalizeVantaVendorFunction · 0.90

Tested by

no test coverage detected