diff --git a/packages/editor-ui/src/api/testDefinition.ee.ts b/packages/editor-ui/src/api/testDefinition.ee.ts index b6fbf78471..e9f2c13fde 100644 --- a/packages/editor-ui/src/api/testDefinition.ee.ts +++ b/packages/editor-ui/src/api/testDefinition.ee.ts @@ -35,6 +35,7 @@ export interface UpdateTestResponse { } const endpoint = '/evaluation/test-definitions'; +const getMetricsEndpoint = (testDefinitionId: string) => `${endpoint}/${testDefinitionId}/metrics`; export async function getTestDefinitions(context: IRestApiContext) { return await makeRestApiRequest<{ count: number; testDefinitions: TestDefinitionRecord[] }>( @@ -71,3 +72,84 @@ export async function updateTestDefinition( export async function deleteTestDefinition(context: IRestApiContext, id: string) { return await makeRestApiRequest<{ success: boolean }>(context, 'DELETE', `${endpoint}/${id}`); } + +// Metrics + +export interface TestMetricRecord { + id: string; + name: string; + testDefinitionId: string; + createdAt?: string; + updatedAt?: string; +} + +export interface CreateTestMetricParams { + testDefinitionId: string; + name: string; +} + +export interface UpdateTestMetricParams { + name: string; + id: string; + testDefinitionId: string; +} + +export interface DeleteTestMetricParams { + testDefinitionId: string; + id: string; +} + +export const getTestMetrics = async (context: IRestApiContext, testDefinitionId: string) => { + return await makeRestApiRequest( + context, + 'GET', + getMetricsEndpoint(testDefinitionId), + ); +}; + +export const getTestMetric = async ( + context: IRestApiContext, + testDefinitionId: string, + id: string, +) => { + return await makeRestApiRequest( + context, + 'GET', + `${getMetricsEndpoint(testDefinitionId)}/${id}`, + ); +}; + +export const createTestMetric = async ( + context: IRestApiContext, + params: CreateTestMetricParams, +) => { + return await makeRestApiRequest( + context, + 'POST', + getMetricsEndpoint(params.testDefinitionId), + { name: params.name }, + ); +}; + +export const updateTestMetric = async ( + context: IRestApiContext, + params: UpdateTestMetricParams, +) => { + return await makeRestApiRequest( + context, + 'PATCH', + `${getMetricsEndpoint(params.testDefinitionId)}/${params.id}`, + { name: params.name }, + ); +}; + +export const deleteTestMetric = async ( + context: IRestApiContext, + params: DeleteTestMetricParams, +) => { + return await makeRestApiRequest( + context, + 'DELETE', + `${getMetricsEndpoint(params.testDefinitionId)}/${params.id}`, + ); +}; diff --git a/packages/editor-ui/src/components/TestDefinition/EditDefinition/MetricsInput.vue b/packages/editor-ui/src/components/TestDefinition/EditDefinition/MetricsInput.vue index e899c8be2d..8ab05479f8 100644 --- a/packages/editor-ui/src/components/TestDefinition/EditDefinition/MetricsInput.vue +++ b/packages/editor-ui/src/components/TestDefinition/EditDefinition/MetricsInput.vue @@ -1,22 +1,30 @@