import http from '@/utils/request' const BASE = '/development/v1/ingestion-jobs' const ONTOLOGY_BASE = '/development/v1/ontologies' const DEVICE_ASSET_BASE = '/development/v1/device-assets' const DEVICE_SEMANTIC_BASE = '/development/v1/device-semantics' const DEVICE_ENTITY_BASE = '/development/v1/device-entities' const DEVICE_QUALITY_BASE = '/development/v1/device-quality' export const createIngestionJob = params => http.post(BASE, params) export const getIngestionJobs = params => http.get(BASE, params) export const getIngestionJob = uid => http.get(`${BASE}/${uid}`) export const executeIngestionJob = uid => http.post(`${BASE}/${uid}/execute`) export const retryIngestionJob = uid => http.post(`${BASE}/${uid}/retry`) export const cancelIngestionJob = uid => http.post(`${BASE}/${uid}/cancel`) export const getCatalogSnapshots = uid => http.get(`${BASE}/${uid}/catalog-snapshots`) export const getJobEvidence = uid => http.get(`${BASE}/${uid}/evidence`) export const getOntologies = () => http.get(ONTOLOGY_BASE) export const getOntology = uid => http.get(`${ONTOLOGY_BASE}/${uid}`) export const getOntologyGraph = uid => http.get(`${ONTOLOGY_BASE}/${uid}/graph`) export const getOntologyVersions = uid => http.get(`${ONTOLOGY_BASE}/${uid}/versions`) export const createOntology = params => http.post(ONTOLOGY_BASE, params) export const saveOntologyGraph = (uid, graph, revision) => http.patch( `${ONTOLOGY_BASE}/${uid}/graph`, graph, { headers: { 'If-Match': `"${revision}"` } } ) export const validateOntology = uid => http.post(`${ONTOLOGY_BASE}/${uid}/validate`) export const publishOntology = (uid, idempotencyKey) => http.post( `${ONTOLOGY_BASE}/${uid}/publish`, {}, { headers: { 'Idempotency-Key': idempotencyKey } } ) export const diffOntology = (uid, left, right) => http.get( `${ONTOLOGY_BASE}/${uid}/diff`, { left, right } ) export const rollbackOntology = (uid, params) => http.post( `${ONTOLOGY_BASE}/${uid}/rollback`, params ) export const getDataElements = params => http.get('/development/v1/data-elements', params) export const uploadSourceFile = formData => http.post('/development/v1/sources/files', formData) export const getEvidence = (uid, download = false) => http.get( `/development/v1/evidence/${uid}${download ? '?download=1' : ''}` ) export const decideCandidates = decisions => http.post( '/development/v1/candidate-decisions', { decisions } ) export const createDataElement = params => http.post('/development/v1/data-elements', params) export const transitionDataElement = (uid, targetStatus, expectedVersion) => http.post( `/development/v1/data-elements/${uid}/transitions`, { target_status: targetStatus, expected_version: expectedVersion } ) export const generateOntologySuggestions = (uid, params) => http.post( `${ONTOLOGY_BASE}/${uid}/suggestions`, params ) export const reviewOntologyChangeSet = (uid, changeSetUid, decisions) => http.post( `${ONTOLOGY_BASE}/${uid}/change-sets/${changeSetUid}/decisions`, { decisions } ) export const exportOntology = (uid, format) => http.getDownload( `${ONTOLOGY_BASE}/${uid}/export`, { format } ) export const importOntology = (formData, format) => http.upload( `${ONTOLOGY_BASE}/import?format=${format}`, formData ) export const getDeviceAssets = params => http.get(DEVICE_ASSET_BASE, params) export const getDeviceAsset = uid => http.get(`${DEVICE_ASSET_BASE}/${uid}`) export const getDeviceAssetVersions = uid => http.get( `${DEVICE_ASSET_BASE}/${uid}/versions` ) export const importDeviceAssets = params => http.post( `${DEVICE_ASSET_BASE}/import`, params ) export const getDeviceSemanticProfile = () => http.get( `${DEVICE_SEMANTIC_BASE}/profile` ) export const bootstrapDeviceSemantics = params => http.post( `${DEVICE_SEMANTIC_BASE}/bootstrap`, params ) export const getDeviceSemanticCodes = params => http.get( `${DEVICE_SEMANTIC_BASE}/codes`, params ) export const createDeviceSemanticCode = params => http.post( `${DEVICE_SEMANTIC_BASE}/codes`, params ) export const reviseDeviceSemanticCode = (uid, params) => http.post( `${DEVICE_SEMANTIC_BASE}/codes/${uid}/revisions`, params ) export const submitDeviceSemanticCode = (uid, expectedVersion) => http.post( `${DEVICE_SEMANTIC_BASE}/codes/${uid}/submit`, { expected_version: expectedVersion } ) export const reviewDeviceSemanticCode = (uid, params) => http.post( `${DEVICE_SEMANTIC_BASE}/codes/${uid}/review`, params ) export const getDeviceSemanticCodeVersions = uid => http.get( `${DEVICE_SEMANTIC_BASE}/codes/${uid}/versions` ) export const getDeviceSemanticCodeReviews = uid => http.get( `${DEVICE_SEMANTIC_BASE}/codes/${uid}/reviews` ) export const getDeviceEntityCandidates = params => http.get( `${DEVICE_ENTITY_BASE}/candidates`, params ) export const getDeviceEntityCandidate = uid => http.get( `${DEVICE_ENTITY_BASE}/candidates/${uid}` ) export const generateDeviceEntityCandidates = params => http.post( `${DEVICE_ENTITY_BASE}/candidates/generate`, params ) export const submitDeviceEntityCandidate = params => http.post( `${DEVICE_ENTITY_BASE}/candidates`, params ) export const reviewDeviceEntityCandidate = (uid, params) => http.post( `${DEVICE_ENTITY_BASE}/candidates/${uid}/review`, params ) export const getDeviceEntityReviews = uid => http.get( `${DEVICE_ENTITY_BASE}/candidates/${uid}/reviews` ) export const getDeviceEntityMerges = uid => http.get( `${DEVICE_ENTITY_BASE}/candidates/${uid}/merges` ) export const rollbackDeviceEntityMerge = (uid, params) => http.post( `${DEVICE_ENTITY_BASE}/merges/${uid}/rollback`, params ) export const getDeviceEntityRollbacks = uid => http.get( `${DEVICE_ENTITY_BASE}/merges/${uid}/rollbacks` ) export const getDeviceQualityProfile = () => http.get( `${DEVICE_QUALITY_BASE}/profile` ) export const bootstrapDeviceQuality = () => http.post( `${DEVICE_QUALITY_BASE}/bootstrap`, {} ) export const createDeviceQualityVersion = params => http.post( `${DEVICE_QUALITY_BASE}/profile/versions`, params ) export const getDeviceQualityVersions = () => http.get( `${DEVICE_QUALITY_BASE}/profile/versions` ) export const publishDeviceQualityVersion = uid => http.post( `${DEVICE_QUALITY_BASE}/profile/versions/${uid}/publish`, {} ) export const runDeviceQuality = params => http.post( `${DEVICE_QUALITY_BASE}/runs`, params ) export const getDeviceQualityRuns = params => http.get( `${DEVICE_QUALITY_BASE}/runs`, params ) export const getDeviceQualityRun = uid => http.get( `${DEVICE_QUALITY_BASE}/runs/${uid}` ) export const getDeviceQualityViolations = (uid, params) => http.get( `${DEVICE_QUALITY_BASE}/runs/${uid}/violations`, params ) export const getDeviceQualityAssetScores = (uid, params) => http.get( `${DEVICE_QUALITY_BASE}/runs/${uid}/asset-scores`, params ) export const getQualityIssues = params => http.get( `${DEVICE_QUALITY_BASE}/issues`, params ) export const getQualityIssue = uid => http.get( `${DEVICE_QUALITY_BASE}/issues/${uid}` ) export const getQualityIssueStatistics = () => http.get( `${DEVICE_QUALITY_BASE}/issues/statistics` ) export const getQualityIssueAssignees = () => http.get( `${DEVICE_QUALITY_BASE}/issues/assignees` ) export const getQualityIssueTimeline = uid => http.get( `${DEVICE_QUALITY_BASE}/issues/${uid}/timeline` ) export const importQualityIssues = params => http.post( `${DEVICE_QUALITY_BASE}/issues/import`, params ) export const assignQualityIssue = (uid, params) => http.post( `${DEVICE_QUALITY_BASE}/issues/${uid}/assign`, params ) export const startQualityIssue = (uid, expectedVersion) => http.post( `${DEVICE_QUALITY_BASE}/issues/${uid}/start`, { expected_version: expectedVersion } ) export const submitQualityIssue = (uid, params) => http.post( `${DEVICE_QUALITY_BASE}/issues/${uid}/submit`, params ) export const reviewQualityIssue = (uid, params) => http.post( `${DEVICE_QUALITY_BASE}/issues/${uid}/review`, params ) export const reopenQualityIssue = (uid, params) => http.post( `${DEVICE_QUALITY_BASE}/issues/${uid}/reopen`, params ) export default { createIngestionJob, getIngestionJobs, getIngestionJob, executeIngestionJob, retryIngestionJob, cancelIngestionJob, getCatalogSnapshots, getJobEvidence, getOntologies, getOntology, getOntologyGraph, getOntologyVersions, createOntology, saveOntologyGraph, validateOntology, publishOntology, diffOntology, rollbackOntology, getDataElements, uploadSourceFile, getEvidence, decideCandidates, createDataElement, transitionDataElement, generateOntologySuggestions, reviewOntologyChangeSet, exportOntology, importOntology, getDeviceAssets, getDeviceAsset, getDeviceAssetVersions, importDeviceAssets, getDeviceSemanticProfile, bootstrapDeviceSemantics, getDeviceSemanticCodes, createDeviceSemanticCode, reviseDeviceSemanticCode, submitDeviceSemanticCode, reviewDeviceSemanticCode, getDeviceSemanticCodeVersions, getDeviceSemanticCodeReviews, getDeviceEntityCandidates, getDeviceEntityCandidate, generateDeviceEntityCandidates, submitDeviceEntityCandidate, reviewDeviceEntityCandidate, getDeviceEntityReviews, getDeviceEntityMerges, rollbackDeviceEntityMerge, getDeviceEntityRollbacks, getDeviceQualityProfile, bootstrapDeviceQuality, createDeviceQualityVersion, getDeviceQualityVersions, publishDeviceQualityVersion, runDeviceQuality, getDeviceQualityRuns, getDeviceQualityRun, getDeviceQualityViolations, getDeviceQualityAssetScores, getQualityIssues, getQualityIssue, getQualityIssueStatistics, getQualityIssueAssignees, getQualityIssueTimeline, importQualityIssues, assignQualityIssue, startQualityIssue, submitQualityIssue, reviewQualityIssue, reopenQualityIssue }