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

Function buildVantaApiRequest

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

* Maps a validated query operation to the Vanta API request it performs.

(baseUrl: string, params: VantaQueryBody)

Source from the content-addressed store, hash-verified

49 * Maps a validated query operation to the Vanta API request it performs.
50 */
51function buildVantaApiRequest(baseUrl: string, params: VantaQueryBody): VantaApiRequest {
52 const id = encodeURIComponent
53
54 switch (params.operation) {
55 case 'vanta_list_frameworks':
56 return {
57 method: 'GET',
58 url: buildVantaUrl(baseUrl, '/frameworks', {
59 pageSize: params.pageSize,
60 pageCursor: params.pageCursor,
61 }),
62 }
63 case 'vanta_get_framework':
64 return { method: 'GET', url: buildVantaUrl(baseUrl, `/frameworks/${id(params.frameworkId)}`) }
65 case 'vanta_list_framework_controls':
66 return {
67 method: 'GET',
68 url: buildVantaUrl(baseUrl, `/frameworks/${id(params.frameworkId)}/controls`, {
69 pageSize: params.pageSize,
70 pageCursor: params.pageCursor,
71 }),
72 }
73 case 'vanta_list_controls':
74 return {
75 method: 'GET',
76 url: buildVantaUrl(baseUrl, '/controls', {
77 frameworkMatchesAny: splitVantaCommaList(params.frameworkMatchesAny),
78 pageSize: params.pageSize,
79 pageCursor: params.pageCursor,
80 }),
81 }
82 case 'vanta_get_control':
83 return { method: 'GET', url: buildVantaUrl(baseUrl, `/controls/${id(params.controlId)}`) }
84 case 'vanta_list_control_tests':
85 return {
86 method: 'GET',
87 url: buildVantaUrl(baseUrl, `/controls/${id(params.controlId)}/tests`, {
88 pageSize: params.pageSize,
89 pageCursor: params.pageCursor,
90 }),
91 }
92 case 'vanta_list_control_documents':
93 return {
94 method: 'GET',
95 url: buildVantaUrl(baseUrl, `/controls/${id(params.controlId)}/documents`, {
96 pageSize: params.pageSize,
97 pageCursor: params.pageCursor,
98 }),
99 }
100 case 'vanta_list_tests':
101 return {
102 method: 'GET',
103 url: buildVantaUrl(baseUrl, '/tests', {
104 statusFilter: params.statusFilter,
105 frameworkFilter: params.frameworkFilter,
106 integrationFilter: params.integrationFilter,
107 controlFilter: params.controlFilter,
108 ownerFilter: params.ownerFilter,

Callers 1

route.tsFile · 0.85

Calls 2

buildVantaUrlFunction · 0.90
splitVantaCommaListFunction · 0.90

Tested by

no test coverage detected