import http from '@/utils/request' const root = '/dataservice/governance' const versionHeaders = version => ({ headers: { 'If-Match': `"${version}"` } }) export const getProductGovernanceDashboard = () => http.get(`${root}/dashboard`) export const listGovernedProducts = params => http.get(`${root}/products`, params) export const getGovernedProduct = uid => http.get(`${root}/products/${uid}`) export const registerGovernedProduct = payload => http.post(`${root}/products`, payload) export const transitionGovernedProduct = (uid, payload, version) => http.post(`${root}/products/${uid}/transition`, payload, versionHeaders(version)) export const listProductApplications = params => http.get(`${root}/applications`, params) export const createProductApplication = payload => http.post(`${root}/applications`, payload) export const submitProductApplication = (uid, payload, version) => http.post(`${root}/applications/${uid}/submit`, payload, versionHeaders(version)) export const reconcileProductApplication = (uid, version) => http.post(`${root}/applications/${uid}/reconcile`, {}, versionHeaders(version)) export const fulfillProductApplication = (uid, productUid, version) => http.post(`${root}/applications/${uid}/fulfill`, { product_uid: productUid }, versionHeaders(version)) export const createProductContract = (productUid, payload) => http.post(`${root}/products/${productUid}/contracts`, payload) export const checkProductContractCompatibility = (contractUid, payload) => http.post(`${root}/contracts/${contractUid}/compatibility`, payload) export const reviseProductContract = (contractUid, payload, version) => http.post(`${root}/contracts/${contractUid}/revisions`, payload, versionHeaders(version)) export const publishProductContract = (contractUid, version) => http.post(`${root}/contracts/${contractUid}/publish`, {}, versionHeaders(version)) export const terminateProductContract = (contractUid, payload, version) => http.post(`${root}/contracts/${contractUid}/terminate`, payload, versionHeaders(version)) export const issueProductCertificate = (productUid, payload) => http.post(`${root}/products/${productUid}/certificates`, payload) export const createProductFeedback = (productUid, payload) => http.post(`${root}/products/${productUid}/feedback`, payload) export const transitionProductFeedback = (feedbackUid, payload, version) => http.post(`${root}/feedback/${feedbackUid}/transition`, payload, versionHeaders(version))