From e0315ba76e1d1fa9be2b98c151a63f0d89d5ee3a Mon Sep 17 00:00:00 2001 From: das31 <31259710+das31@users.noreply.github.com> Date: Tue, 25 Apr 2023 17:36:25 -0400 Subject: [PATCH] CEC-4126-update-manifest-migrate-button (#320) * CEC-4126-update-manifest-migrate-button * remove comment --------- Co-authored-by: John Wu <76966357+jwu-fisker@users.noreply.github.com> --- .env.cec-euprd | 1 + .env.cec-prd | 1 + .env.dev | 1 + .env.local | 1 + .env.prd | 1 + .env.stg | 1 + .env.template | 1 + src/components/Contexts/ManifestsContext.jsx | 16 +++++++++ src/components/Manifest/Update/index.jsx | 37 ++++++++++++++++++-- src/services/manifestsAPI.js | 11 ++++++ src/utils/roles.js | 4 +++ 11 files changed, 73 insertions(+), 2 deletions(-) diff --git a/.env.cec-euprd b/.env.cec-euprd index 81bef6f..0bcb8e9 100644 --- a/.env.cec-euprd +++ b/.env.cec-euprd @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=bfd1cccc-213a-4f31-b3d1-6e685976aec8 REACT_APP_ROLE_GENERATE_CERTIFICATE=9af2d8c0-c26d-4d6d-bbd1-ac53cbd37ebc REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV= diff --git a/.env.cec-prd b/.env.cec-prd index 2baee03..54ea7a8 100644 --- a/.env.cec-prd +++ b/.env.cec-prd @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=bfd1cccc-213a-4f31-b3d1-6e685976aec8 REACT_APP_ROLE_GENERATE_CERTIFICATE=9af2d8c0-c26d-4d6d-bbd1-ac53cbd37ebc REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV= diff --git a/.env.dev b/.env.dev index f4e1116..e08c37a 100644 --- a/.env.dev +++ b/.env.dev @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=8f78dce7-f5f9-4033-a10c-c9c7408bfcfe REACT_APP_ROLE_GENERATE_CERTIFICATE=746f34b0-9ba0-4b5d-8d84-0256a9c8e390 REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV=stage,prod diff --git a/.env.local b/.env.local index 94c1a10..c97b30e 100644 --- a/.env.local +++ b/.env.local @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=8f78dce7-f5f9-4033-a10c-c9c7408bfcfe REACT_APP_ROLE_GENERATE_CERTIFICATE=746f34b0-9ba0-4b5d-8d84-0256a9c8e390 REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV=dev,stage,prod diff --git a/.env.prd b/.env.prd index 11f4e91..4174e96 100644 --- a/.env.prd +++ b/.env.prd @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=8f78dce7-f5f9-4033-a10c-c9c7408bfcfe REACT_APP_ROLE_GENERATE_CERTIFICATE=746f34b0-9ba0-4b5d-8d84-0256a9c8e390 REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV=stage diff --git a/.env.stg b/.env.stg index 41c4529..8bb96c4 100644 --- a/.env.stg +++ b/.env.stg @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=8f78dce7-f5f9-4033-a10c-c9c7408bfcfe REACT_APP_ROLE_GENERATE_CERTIFICATE=746f34b0-9ba0-4b5d-8d84-0256a9c8e390 REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV=prod diff --git a/.env.template b/.env.template index 3ddd694..1cdf893 100644 --- a/.env.template +++ b/.env.template @@ -14,4 +14,5 @@ REACT_APP_ROLE_DELETE=8f78dce7-f5f9-4033-a10c-c9c7408bfcfe REACT_APP_ROLE_GENERATE_CERTIFICATE=746f34b0-9ba0-4b5d-8d84-0256a9c8e390 REACT_APP_ROLE_MANUFACTURE=3412e11a-a2d1-4355-be3e-ef9aa5065b69 REACT_APP_ROLE_SUPPLIER_APPROVER=a6c9805e-80b2-42b2-bfbb-9df52e5504d8 +REACT_APP_ROLE_MANIFEST_MIGRATION=42798c8a-9fa7-4fb4-82c0-9582cabe364f REACT_APP_ECCKEY_ENV=dev,stage,prod diff --git a/src/components/Contexts/ManifestsContext.jsx b/src/components/Contexts/ManifestsContext.jsx index 1acc9b7..8695122 100644 --- a/src/components/Contexts/ManifestsContext.jsx +++ b/src/components/Contexts/ManifestsContext.jsx @@ -80,12 +80,28 @@ export const ManifestsProvider = ({ children }) => { return result; }; + const migrateManifest = async (package_id, token) => { + let result; + + try{ + setBusy(true) + result = await api.migrateManifest(package_id, token) + if(result.error) + throw new Error(`failed to migrate manifest. ${result.message}`); + } finally { + setBusy(false) + } + return result + + } + return ( { const [manifest, setManifest] = useState(null); const [redirect, setRedirect] = useState(null); - const { getManifest, busy, updateManifest } = useManifestsContext(); + const { getManifest, busy, migrateManifest, updateManifest } = useManifestsContext(); const { token: { idToken: { jwtToken: token }, }, + groups, + providers, } = useUserContext(); const { setMessage, setTitle, setSitePath } = useStatusContext(); @@ -86,6 +90,17 @@ const MainForm = () => { } } + const manifestMigrate = async (e) => { + e.preventDefault(); + try{ + const result = await migrateManifest(manifest_id, token) + if (!result || result.error) return; + setMessage(`Manifest Migrated ${manifest_id}`) + } catch(e) { + setMessage(`Failed to update manifest ${manifest_id}`) + } + } + useEffect(() => { (async () => { try { @@ -179,6 +194,24 @@ const MainForm = () => { > {busy ? "Updating..." : "Update"} + + + @@ -191,4 +224,4 @@ const ManifestUpdate = () => ( ); -export default ManifestUpdate; \ No newline at end of file +export default ManifestUpdate; diff --git a/src/services/manifestsAPI.js b/src/services/manifestsAPI.js index 9091d97..8fbe7a8 100644 --- a/src/services/manifestsAPI.js +++ b/src/services/manifestsAPI.js @@ -78,6 +78,17 @@ const manifestsAPI = { }) .then(fetchRespHandler) .catch(errorHandler), + + migrateManifest: async (manifest_id, token) => + fetch(`${API_ENDPOINT}/manifestmigrate/${manifest_id}`,{ + method: "POST", + headers: Object.assign( + { "Content-Type": "application/json" }, + getAuthHeaderOptions(token) + ), + }) + .then(fetchRespHandler) + .catch(errorHandler), }; export default manifestsAPI; diff --git a/src/utils/roles.js b/src/utils/roles.js index 68a4783..4875da4 100644 --- a/src/utils/roles.js +++ b/src/utils/roles.js @@ -8,6 +8,7 @@ export const Roles = { APPROVESUPPLIERS: process.env.REACT_APP_ROLE_SUPPLIER_APPROVER, MANUFACTURE: process.env.REACT_APP_ROLE_MANUFACTURE, MAGNAGROUP: process.env.REACT_APP_MAGNA_GROUP_ID, + MANIFEST_MIGRATION: process.env.REACT_APP_ROLE_MANIFEST_MIGRATION }; export const Providers = { @@ -94,4 +95,7 @@ export const Permissions = { [Providers.FISKER_QA]: [Roles.MANUFACTURE], [Providers.MAGNA]: [Roles.MAGNAGROUP], }, + ManifestMigration: { + [Providers.FISKER]: [Roles.MANIFEST_MIGRATION] + } };