Add quality template logic

This commit is contained in:
Urtzi Alfaro
2025-09-24 16:42:23 +02:00
parent 474d7176bf
commit 2de1e6ce40
11 changed files with 450 additions and 228 deletions

View File

@@ -16,7 +16,7 @@ import type {
} from '../types/qualityTemplates';
class QualityTemplateService {
private readonly baseURL = '/production/api/v1/quality-templates';
private readonly baseURL = '/tenants';
/**
* Create a new quality check template
@@ -25,10 +25,10 @@ class QualityTemplateService {
tenantId: string,
templateData: QualityCheckTemplateCreate
): Promise<QualityCheckTemplate> {
const response = await apiClient.post(this.baseURL, templateData, {
const data = await apiClient.post(`${this.baseURL}/${tenantId}/production/quality-templates`, templateData, {
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -38,11 +38,11 @@ class QualityTemplateService {
tenantId: string,
params?: QualityTemplateQueryParams
): Promise<QualityCheckTemplateList> {
const response = await apiClient.get(this.baseURL, {
const data = await apiClient.get(`${this.baseURL}/${tenantId}/production/quality-templates`, {
params,
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -52,10 +52,10 @@ class QualityTemplateService {
tenantId: string,
templateId: string
): Promise<QualityCheckTemplate> {
const response = await apiClient.get(`${this.baseURL}/${templateId}`, {
const data = await apiClient.get(`${this.baseURL}/${tenantId}/production/quality-templates/${templateId}`, {
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -66,17 +66,17 @@ class QualityTemplateService {
templateId: string,
templateData: QualityCheckTemplateUpdate
): Promise<QualityCheckTemplate> {
const response = await apiClient.put(`${this.baseURL}/${templateId}`, templateData, {
const data = await apiClient.put(`${this.baseURL}/${tenantId}/production/quality-templates/${templateId}`, templateData, {
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
* Delete a quality check template
*/
async deleteTemplate(tenantId: string, templateId: string): Promise<void> {
await apiClient.delete(`${this.baseURL}/${templateId}`, {
await apiClient.delete(`${this.baseURL}/${tenantId}/production/quality-templates/${templateId}`, {
headers: { 'X-Tenant-ID': tenantId }
});
}
@@ -89,11 +89,11 @@ class QualityTemplateService {
stage: ProcessStage,
isActive: boolean = true
): Promise<QualityCheckTemplateList> {
const response = await apiClient.get(`${this.baseURL}/stages/${stage}`, {
const data = await apiClient.get(`${this.baseURL}/${tenantId}/production/quality-templates/stages/${stage}`, {
params: { is_active: isActive },
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -103,10 +103,10 @@ class QualityTemplateService {
tenantId: string,
templateId: string
): Promise<QualityCheckTemplate> {
const response = await apiClient.post(`${this.baseURL}/${templateId}/duplicate`, {}, {
const data = await apiClient.post(`${this.baseURL}/${tenantId}/production/quality-templates/${templateId}/duplicate`, {}, {
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -116,10 +116,10 @@ class QualityTemplateService {
tenantId: string,
executionData: QualityCheckExecutionRequest
): Promise<QualityCheckExecutionResponse> {
const response = await apiClient.post('/production/api/v1/quality-checks/execute', executionData, {
const data = await apiClient.post(`${this.baseURL}/${tenantId}/production/quality-checks/execute`, executionData, {
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -130,11 +130,11 @@ class QualityTemplateService {
batchId: string,
stage?: ProcessStage
): Promise<any[]> {
const response = await apiClient.get('/production/api/v1/quality-checks', {
const data = await apiClient.get(`${this.baseURL}/${tenantId}/production/quality-checks`, {
params: { batch_id: batchId, process_stage: stage },
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
}
/**
@@ -168,15 +168,15 @@ class QualityTemplateService {
templateData: Partial<QualityCheckTemplateCreate | QualityCheckTemplateUpdate>
): Promise<{ valid: boolean; errors: string[] }> {
try {
const response = await apiClient.post(`${this.baseURL}/validate`, templateData, {
const data = await apiClient.post(`${this.baseURL}/${tenantId}/production/quality-templates/validate`, templateData, {
headers: { 'X-Tenant-ID': tenantId }
});
return response.data;
return data;
} catch (error: any) {
if (error.response?.status === 400) {
return {
valid: false,
errors: [error.response.data.detail || 'Validation failed']
errors: [error.response?.data?.detail || 'Validation failed']
};
}
throw error;