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>
This commit is contained in:
@@ -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=
|
||||
|
||||
@@ -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=
|
||||
|
||||
1
.env.dev
1
.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
|
||||
|
||||
@@ -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
|
||||
|
||||
1
.env.prd
1
.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
|
||||
|
||||
1
.env.stg
1
.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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 (
|
||||
<ManifestsContext.Provider
|
||||
value={{
|
||||
busy,
|
||||
manifests,
|
||||
totalManifests,
|
||||
migrateManifest,
|
||||
updateManifest,
|
||||
getManifest,
|
||||
getManifests,
|
||||
|
||||
@@ -7,6 +7,8 @@ import { ManifestsProvider, useManifestsContext } from "../../Contexts/Manifests
|
||||
import { useStatusContext } from "../../Contexts/StatusContext";
|
||||
import { useUserContext } from "../../Contexts/UserContext";
|
||||
import { DropDownList } from "../../Controls/DropDownList";
|
||||
import { RoleWrap } from "../../Controls/RoleWrap";
|
||||
import { Permissions } from "../../../utils/roles";
|
||||
import useStyles from "../../useStyles";
|
||||
|
||||
const manifestTypes = [
|
||||
@@ -37,11 +39,13 @@ const MainForm = () => {
|
||||
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"}
|
||||
</Button>
|
||||
<RoleWrap
|
||||
groups={groups}
|
||||
providers={providers}
|
||||
rolesPerProvider={Permissions.ManifestMigration}
|
||||
>
|
||||
<Button
|
||||
type="button"
|
||||
aria-label="migrate manifest"
|
||||
disabled={busy || manifest == null}
|
||||
fullWidth
|
||||
variant="contained"
|
||||
color="secondary"
|
||||
className={classes.submit}
|
||||
onClick={manifestMigrate}
|
||||
>
|
||||
{busy ? "Migrating..." : "Migrate"}
|
||||
</Button>
|
||||
</RoleWrap>
|
||||
|
||||
</FormControl>
|
||||
</div>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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]
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user