diff --git a/package.json b/package.json index 4335a7f7..11eb7fe1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@vidispine/admin-tool", - "version": "24.3.0", + "version": "24.3.1", "private": true, "dependencies": { "@devbookhq/splitter": "^1.3.2", diff --git a/src/components/exportlocation/ExportLocationSelect.jsx b/src/components/exportlocation/ExportLocationSelect.jsx index 0acc01ab..77e73c2e 100644 --- a/src/components/exportlocation/ExportLocationSelect.jsx +++ b/src/components/exportlocation/ExportLocationSelect.jsx @@ -2,42 +2,32 @@ import React from 'react'; import { Field } from 'redux-form'; import debounce from 'lodash.debounce'; -import { exportlocation as api } from '@vidispine/vdt-api'; +import { exportlocation as ExportLocationApi } from '@vidispine/vdt-api'; import Select from '../ui/Select'; -// eslint-disable-next-line no-underscore-dangle -const _listExportLocation = debounce( - api.listExportLocation, - 500, { leading: true, trailing: false }, +const debounceListExportLocation = debounce( + ExportLocationApi.listExportLocation, + 500, + { leading: true, trailing: false }, ); -export const loadExportLocationOptions = (inputValue) => new Promise((resolve, reject) => { - _listExportLocation() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { exportLocation = [] } = jsonDocument; - let filterExportLocation = exportLocation; - if (inputValue && inputValue !== '*') filterExportLocation = exportLocation.filter((f) => f.name.toLowerCase().includes(inputValue.toLowerCase())); - const options = filterExportLocation.map((f) => ({ label: f.name, value: f.name })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); -}); - -const parse = (value) => { - if (value) { - return value.value; +export const loadExportLocationOptions = async (inputValue) => { + const { data: exportLocationListType } = await debounceListExportLocation(); + const { exportLocation = [] } = exportLocationListType; + let filterExportLocation = exportLocation; + if (inputValue && inputValue !== '*') { + filterExportLocation = exportLocation + .filter((f) => f.name.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterExportLocation.map((f) => ({ + label: f.name, + value: f.name, + })); + return options; }; +const parse = (value) => value?.value; + export default function ExportLocationSelect(props) { return ( new Promise((resolve, reject) => { - _listFieldGroup() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { group = [] } = jsonDocument; - let filterFields = group; - if (inputValue && inputValue !== '*') { - filterFields = group.filter((f) => f.name.toLowerCase().includes(inputValue.toLowerCase())); - } - const options = filterFields.map((f) => ({ label: f.name, value: f.name })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListFieldGroup = debounce(FieldGroupApi.listFieldGroup, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; +export const loadFieldGroupOptions = async (inputValue) => { + const { data: fieldgroupListType } = await debouncedListFieldGroup(); + const { group = [] } = fieldgroupListType; + let filterFields = group; + if (inputValue && inputValue !== '*') { + filterFields = group.filter((f) => f.name.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterFields.map((f) => ({ label: f.name, value: f.name })); + return options; }; +const parse = (value) => value?.value; + export default function FieldGroupSelect(props) { return ( new Promise((resolve, reject) => { - _listGroup() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { group = [] } = jsonDocument; - let filterOps = group; - if (inputValue && inputValue !== '*') filterOps = group.filter((f) => f.groupName.toLowerCase().includes(inputValue.toLowerCase())); - const options = filterOps.map((f) => ({ label: f.groupName, value: f.groupName })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListGroup = debounce(GroupApi.listGroup, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; - } - return undefined; +export const loadGroupOptions = async (inputValue) => { + const { data: groupListType } = await debouncedListGroup(); + const { group = [] } = groupListType; + let filterOps = group; + if (inputValue && inputValue !== '*') { filterOps = group.filter((f) => f.groupName.toLowerCase().includes(inputValue.toLowerCase())); } + const options = filterOps.map((f) => ({ + label: f.groupName, + value: f.groupName, + })); + return options; }; +const parse = (value) => value?.value; + export default function GroupSelect(props) { return ( new Promise((resolve, reject) => { - _listJobType() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { uri = [] } = jsonDocument; - let filterFields = uri; - if (inputValue && inputValue !== '*') { - filterFields = uri.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); - } - const options = filterFields.map((f) => ({ label: f, value: f })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); -}); - -const parse = (value) => { - if (value) { - return value.value; - } - return undefined; -}; - -export default function JobTypeSelect(props) { - return ( - - ); -} diff --git a/src/components/jobtype/JobTypeSelect.jsx b/src/components/jobtype/JobTypeSelect.jsx index 434192e1..f721877f 100644 --- a/src/components/jobtype/JobTypeSelect.jsx +++ b/src/components/jobtype/JobTypeSelect.jsx @@ -1,38 +1,28 @@ import React from 'react'; import { Field } from 'redux-form'; +import debounce from 'lodash.debounce'; -import { taskdefinition as api } from '@vidispine/vdt-api'; +import { taskdefinition as TaskDefinitionApi } from '@vidispine/vdt-api'; import Select from '../ui/Select'; -export const loadJobTypeOptions = (inputValue) => new Promise((resolve, reject) => { - api.listJobType() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { uri = [] } = jsonDocument; - let filterFields = uri; - if (inputValue && inputValue !== '*') { - filterFields = uri.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); - } - const options = filterFields.map((f) => ({ label: f, value: f })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListJobType = debounce(TaskDefinitionApi.listJobType, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; +export const loadJobTypeOptions = async (inputValue) => { + const { data: uriListType } = await debouncedListJobType(); + const { uri = [] } = uriListType; + let filterFields = uri; + if (inputValue && inputValue !== '*') { + filterFields = uri.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterFields.map((f) => ({ label: f, value: f })); + return options; }; +const parse = (value) => value?.value; + export default function JobTypeSelect(props) { return ( new Promise((resolve, reject) => { - _listMetadataField() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { field = [] } = jsonDocument; - const fieldList = field.concat(TRANSIENT_FIELDS); - let filterFields = fieldList; - if (inputValue && inputValue !== '*') { - const inputValueLower = inputValue.toLowerCase(); - filterFields = fieldList.filter((f) => f.name.toLowerCase().includes(inputValueLower)); - } - const options = filterFields.map((f) => ({ label: f.name, value: f.name })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); -}); - -// export const loadMetadataFieldOptions = debounce( -// _loadMetadataFieldOptions, -// 500, -// { leading: true, trailing: false }, -// ); - -const parse = (value) => { - if (value) { - return value.value; +export const loadMetadataFieldOptions = async (inputValue) => { + const { data: fieldListType } = await debouncedListMetadataField(); + const { field = [] } = fieldListType; + const fieldList = field.concat(TRANSIENT_FIELDS); + let filterFields = fieldList; + if (inputValue && inputValue !== '*') { + const inputValueLower = inputValue.toLowerCase(); + filterFields = fieldList.filter((f) => f.name.toLowerCase().includes(inputValueLower)); } - return undefined; + const options = filterFields.map((f) => ({ + label: f.name, + value: f.name, + })); + return options; }; +const parse = (value) => value?.value; + export default function MetadataFieldSelect(props) { return ( new Promise((resolve, reject) => { - _listProjection() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { uri = [] } = jsonDocument; - let filterProj = uri; - if (inputValue && inputValue !== '*') { - filterProj = uri.filter((p) => p.toLowerCase().includes(inputValue.toLowerCase())); - } - const options = filterProj.map((p) => ({ label: p, value: p })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListProjection = debounce(ProjectionApi.listProjection, 500, { + leading: true, + trailing: false, }); -const parseValue = (value) => { - if (value) { - return value.value; +export const loadProjectionOptions = async (inputValue) => { + const { data: uriListType } = await debouncedListProjection(); + const { uri = [] } = uriListType; + let filterProjection = uri; + if (inputValue && inputValue !== '*') { + filterProjection = uri.filter((p) => p.toLowerCase().includes(inputValue.toLowerCase())); } - return ''; + const options = filterProjection.map((p) => ({ label: p, value: p })); + return options; }; +const parse = (value) => value?.value; + export default function ProjectionSelect(props) { return ( ); diff --git a/src/components/shapetag/ShapeTagSelect.jsx b/src/components/shapetag/ShapeTagSelect.jsx index 34403c96..9af2636c 100644 --- a/src/components/shapetag/ShapeTagSelect.jsx +++ b/src/components/shapetag/ShapeTagSelect.jsx @@ -2,41 +2,27 @@ import React from 'react'; import { Field } from 'redux-form'; import debounce from 'lodash.debounce'; -import { shapetag as api } from '@vidispine/vdt-api'; +import { shapetag as ShapeTagApi } from '@vidispine/vdt-api'; import Select from '../ui/Select'; -// eslint-disable-next-line no-underscore-dangle -const _listShapeTag = debounce(api.listShapeTag, 500, { leading: true, trailing: false }); - -export const loadShapeTagOptions = (inputValue) => new Promise((resolve, reject) => { - _listShapeTag() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { uri = [] } = jsonDocument; - let filterFields = uri; - if (inputValue && inputValue !== '*') { - filterFields = uri.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); - } - const options = filterFields.map((f) => ({ label: f, value: f })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListShapeTag = debounce(ShapeTagApi.listShapeTag, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; +export const loadShapeTagOptions = async (inputValue) => { + const { data: uriListType } = await debouncedListShapeTag(); + const { uri = [] } = uriListType; + let filterShapeTag = uri; + if (inputValue && inputValue !== '*') { + filterShapeTag = uri.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterShapeTag.map((f) => ({ label: f, value: f })); + return options; }; +const parse = (value) => value?.value; + export default function ShapeTagSelect(props) { return ( new Promise((resolve, reject) => { - _listStorage() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { storage: storageList = [] } = jsonDocument; - let filterFields = storageList.map((s) => s.id); - if (inputValue && inputValue !== '*') filterFields = filterFields.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); - const options = filterFields.map((f) => ({ label: f, value: f })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debounceListStorage = debounce(StorageApi.listStorage, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; +export const loadStorageOptions = async (inputValue) => { + const { data: storageListType } = await debounceListStorage(); + const { storage: storageList = [] } = storageListType; + let filterFields = storageList.map((s) => s.id); + if (inputValue && inputValue !== '*') { + filterFields = filterFields.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterFields.map((f) => ({ label: f, value: f })); + return options; }; +const parse = (value) => value?.value; + export default function StorageSelect(props) { return ( new Promise((resolve, reject) => { - _listStorage() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { group: groupList = [] } = jsonDocument; - let filterFields = groupList.map((s) => s.name); - if (inputValue && inputValue !== '*') filterFields = filterFields.filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); - const options = filterFields.map((f) => ({ label: f, value: f })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListStorage = debounce(StorageApi.listStorage, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; +export const loadStorageGroupOptions = async (inputValue) => { + const { data: storageGroupListType } = await debouncedListStorage(); + const { group: groupList = [] } = storageGroupListType; + let filterStorageGroup = groupList.map((s) => s.name); + if (inputValue && inputValue !== '*') { + filterStorageGroup = filterStorageGroup + .filter((f) => f.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterStorageGroup.map((f) => ({ label: f, value: f })); + return options; }; +const parse = (value) => value?.value; + export default function StorageGroupSelect(props) { return ( new Promise((resolve, reject) => { - _listUser() - .then((response) => { - if (!response.ok) { - throw new Error(response.statusText); - } - return response.json(); - }) - .then((jsonDocument) => { - const { user = [] } = jsonDocument; - let filterOps = user; - if (inputValue && inputValue !== '*') { - filterOps = user.filter((f) => f.userName.toLowerCase().includes(inputValue.toLowerCase())); - } - const options = filterOps.map((f) => ({ label: f.userName, value: f.userName })); - resolve(options); - }) - .catch((error) => { - reject(error); - }); +const debouncedListUser = debounce(UserApi.listUser, 500, { + leading: true, + trailing: false, }); -const parse = (value) => { - if (value) { - return value.value; +export const loadUserOptions = async (inputValue) => { + const { data: userListType } = await debouncedListUser(); + const { user: userList = [] } = userListType; + let filterUserList = userList; + if (inputValue && inputValue !== '*') { + filterUserList = userList + .filter((f) => f.userName.toLowerCase().includes(inputValue.toLowerCase())); } - return undefined; + const options = filterUserList.map((f) => ({ + label: f.userName, + value: f.userName, + })); + return options; }; +const parse = (value) => value?.value; + export default function UserSelect(props) { return ( response.json()) - .then((importAccessControlListDocument) => this.setState({ importAccessControlListDocument })) - .catch(() => { - const messageContent = 'Error Loading Import Settings'; - openSnackBar({ messageContent, messageColor: 'secondary' }); - }); + try { + const { + data: importAccessControlListDocument, + } = await AccessApi.getImportAccess({ headers }); + this.setState({ importAccessControlListDocument }); + } catch (error) { + const messageContent = 'Error Loading Import Settings'; + openSnackBar({ messageContent, messageColor: 'secondary' }); + } } onRemove(groupName) { @@ -52,7 +54,7 @@ class ImportSettings extends React.PureComponent { } = this.props; const headers = { RunAs: userName }; return () => { - api.removeImportAccessGroup({ groupName, headers }) + AccessApi.removeImportAccessGroup({ groupName, headers }) .then(() => { const messageContent = `Import Access "${groupName}" Removed`; openSnackBar({ messageContent }); diff --git a/src/containers/ImportSettings.jsx b/src/containers/ImportSettings.jsx index d446b8d2..9a8da49d 100644 --- a/src/containers/ImportSettings.jsx +++ b/src/containers/ImportSettings.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; -import { importsettings as api } from '@vidispine/vdt-api'; +import { importsettings as ImportSettingsApi } from '@vidispine/vdt-api'; import ImportSettingsTitle from '../components/importsettings/ImportSettingsTitle'; import ImportSettingsCard from '../components/importsettings/ImportSettingsCard'; import ImportSettingsRemove from '../components/importsettings/ImportSettingsRemove'; @@ -28,15 +28,17 @@ class ImportSettings extends React.PureComponent { this.onRefresh(); } - onRefresh() { + async onRefresh() { const { openSnackBar, settingsId } = this.props; - api.getImportSettings({ settingsId }) - .then((response) => response.json()) - .then((importSettingsDocument) => this.setState({ importSettingsDocument })) - .catch(() => { - const messageContent = 'Error Loading Import Settings'; - openSnackBar({ messageContent, messageColor: 'secondary' }); - }); + try { + const { + data: importSettingsDocument, + } = await ImportSettingsApi.getImportSettings({ settingsId }); + this.setState({ importSettingsDocument }); + } catch (error) { + const messageContent = 'Error Loading Import Settings'; + openSnackBar({ messageContent, messageColor: 'secondary' }); + } } onRemove({ settingsId }) { @@ -46,13 +48,12 @@ class ImportSettings extends React.PureComponent { closeModal, } = this.props; try { - api.removeImportSettings({ settingsId }) - .then(() => { - const messageContent = `Import Settings ${settingsId} Removed`; - openSnackBar({ messageContent }); - history.push('/import/settings/'); - closeModal(); - }); + ImportSettingsApi.removeImportSettings({ settingsId }).then(() => { + const messageContent = `Import Settings ${settingsId} Removed`; + openSnackBar({ messageContent }); + history.push('/import/settings/'); + closeModal(); + }); } catch (error) { const messageContent = 'Error Removing Import Settings'; openSnackBar({ messageContent, messageColor: 'secondary' }); diff --git a/src/containers/ImportSettingsList.jsx b/src/containers/ImportSettingsList.jsx index 7ef5b9b7..b30d217a 100644 --- a/src/containers/ImportSettingsList.jsx +++ b/src/containers/ImportSettingsList.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; -import { importsettings as api } from '@vidispine/vdt-api'; +import { importsettings as ImportSettingsApi } from '@vidispine/vdt-api'; import ImportSettingsListTitle from '../components/importsettings/ImportSettingsListTitle'; import ImportSettingsListCard from '../components/importsettings/ImportSettingsListCard'; import ImportSettingsDialog from '../components/importsettings/ImportSettingsDialog'; @@ -26,12 +26,11 @@ class ImportSettingsList extends React.PureComponent { this.onRefresh(); } - onRefresh() { + async onRefresh() { const { openSnackBar } = this.props; try { - api.listImportSettings() - .then((response) => response.json()) - .then((uriListDocument) => this.setState({ uriListDocument })); + const { data: uriListDocument } = await ImportSettingsApi.listImportSettings(); + this.setState({ uriListDocument }); } catch (error) { const messageContent = 'Error Loading Import Settings'; openSnackBar({ messageContent, messageColor: 'secondary' }); diff --git a/src/containers/MetadataGraph.jsx b/src/containers/MetadataGraph.jsx index c25950c7..abb8ef6b 100644 --- a/src/containers/MetadataGraph.jsx +++ b/src/containers/MetadataGraph.jsx @@ -23,7 +23,6 @@ class MetadataGraph extends React.PureComponent { componentDidMount() { const { entityId, entity } = this.props; - console.log({ }); try { MetadataApi.getEntityMetadataGraphDot({ entity, diff --git a/src/containers/Quota.jsx b/src/containers/Quota.jsx index da5f5cb2..5eef0be8 100644 --- a/src/containers/Quota.jsx +++ b/src/containers/Quota.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; -import { quota as api } from '@vidispine/vdt-api'; +import { quota as QuotaApi } from '@vidispine/vdt-api'; import QuotaTitle from '../components/quota/QuotaTitle'; import QuotaRemove from '../components/quota/QuotaRemove'; import QuotaDialog from '../components/quota/QuotaDialog'; @@ -31,16 +31,18 @@ class AccessControl extends React.Component { this.onRefresh(); } - onRefresh() { + async onRefresh() { const { openSnackBar } = this.props; const { queryParams } = this.state; - api.listQuota({ queryParams }) - .then((response) => response.json()) - .then((quotaRuleListDocument) => this.setState({ quotaRuleListDocument })) - .catch(() => { - const messageContent = 'Error Loading Quota'; - openSnackBar({ messageContent, messageColor: 'secondary' }); + try { + const { data: quotaRuleListDocument } = await QuotaApi.listQuota({ + queryParams, }); + this.setState({ quotaRuleListDocument }); + } catch (error) { + const messageContent = 'Error Loading Quota'; + openSnackBar({ messageContent, messageColor: 'secondary' }); + } } onFilter({ quotaRuleListDocument, queryParams }) { @@ -53,7 +55,7 @@ class AccessControl extends React.Component { closeModal, } = this.props; return () => { - api.removeQuota({ ruleId }) + QuotaApi.removeQuota({ ruleId }) .then(() => { const messageContent = `Quota "${ruleId}" Removed`; openSnackBar({ messageContent }); diff --git a/src/containers/TaskGroup.jsx b/src/containers/TaskGroup.jsx index eba65543..ff26ece6 100644 --- a/src/containers/TaskGroup.jsx +++ b/src/containers/TaskGroup.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; -import { taskgroup as api } from '@vidispine/vdt-api'; +import { taskgroup as TaskGroupApi } from '@vidispine/vdt-api'; import TaskGroupTitle from '../components/taskgroup/TaskGroupTitle'; import TaskGroupCard from '../components/taskgroup/TaskGroupCard'; import TaskGroupRemove from '../components/taskgroup/TaskGroupRemove'; @@ -28,15 +28,15 @@ class TaskGroup extends React.PureComponent { this.onRefresh(); } - onRefresh() { + async onRefresh() { const { openSnackBar, groupName } = this.props; - api.getTaskGroup({ groupName }) - .then((response) => response.json()) - .then((taskGroupDocument) => this.setState({ taskGroupDocument })) - .catch(() => { - const messageContent = 'Error Loading Task Group'; - openSnackBar({ messageContent, messageColor: 'secondary' }); - }); + try { + const { data: taskGroupDocument } = await TaskGroupApi.getTaskGroup({ groupName }); + this.setState({ taskGroupDocument }); + } catch (error) { + const messageContent = 'Error Loading Task Group'; + openSnackBar({ messageContent, messageColor: 'secondary' }); + } } onRemove({ groupName }) { @@ -46,13 +46,12 @@ class TaskGroup extends React.PureComponent { closeModal, } = this.props; try { - api.removeTaskGroup({ groupName }) - .then(() => { - const messageContent = `Task Group ${groupName} Removed`; - openSnackBar({ messageContent }); - history.push('/task-group/'); - closeModal(); - }); + TaskGroupApi.removeTaskGroup({ groupName }).then(() => { + const messageContent = `Task Group ${groupName} Removed`; + openSnackBar({ messageContent }); + history.push('/task-group/'); + closeModal(); + }); } catch (error) { const messageContent = 'Error Removing Import Settings'; openSnackBar({ messageContent, messageColor: 'secondary' }); diff --git a/src/containers/TaskGroupList.jsx b/src/containers/TaskGroupList.jsx index d5e5609e..6d76d8c7 100644 --- a/src/containers/TaskGroupList.jsx +++ b/src/containers/TaskGroupList.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; -import { taskgroup as api } from '@vidispine/vdt-api'; +import { taskgroup as TaskGroupApi } from '@vidispine/vdt-api'; import TaskGroupListTitle from '../components/taskgroup/TaskGroupListTitle'; import TaskGroupListCard from '../components/taskgroup/TaskGroupListCard'; import TaskGroupDialog from '../components/taskgroup/TaskGroupDialog'; @@ -26,12 +26,11 @@ class TaskGroupList extends React.PureComponent { this.onRefresh(); } - onRefresh() { + async onRefresh() { const { openSnackBar } = this.props; try { - api.listTaskGroup() - .then((response) => response.json()) - .then((taskGroupListDocument) => this.setState({ taskGroupListDocument })); + const { data: taskGroupListDocument } = await TaskGroupApi.listTaskGroup(); + this.setState({ taskGroupListDocument }); } catch (error) { const messageContent = 'Error Loading Task Groups'; openSnackBar({ messageContent, messageColor: 'secondary' }); diff --git a/src/formactions/conform.js b/src/formactions/conform.js index 1b0b0ba9..de5a5098 100644 --- a/src/formactions/conform.js +++ b/src/formactions/conform.js @@ -1,24 +1,24 @@ import { SubmissionError } from 'redux-form'; -import { conform as api } from '@vidispine/vdt-api'; +import { conform as ConformApi } from '@vidispine/vdt-api'; import * as actions from '../actions'; -export function onCreateSubmit(form) { - const { conformRequestDocument, queryParams } = form; - return api.createConform({ - conformRequestDocument, - queryParams, - }) - .then((response) => response.json()) - .then((jobDocument) => ({ jobDocument })) - .catch((error) => { - let errorMessage = error.message; - if (error.response) { - errorMessage = JSON.stringify(error.response.data, (k, v) => (v === null ? undefined : v)); - } - throw new SubmissionError({ _error: errorMessage }); +export const onCreateSubmit = async (form) => { + try { + const { conformRequestDocument, queryParams } = form; + const { data: jobDocument } = await ConformApi.createConform({ + conformRequestDocument, + queryParams, }); -} + return { jobDocument }; + } catch (error) { + let errorMessage = error.message; + if (error.response) { + errorMessage = JSON.stringify(error.response.data, (k, v) => (v === null ? undefined : v)); + } + throw new SubmissionError({ _error: errorMessage }); + } +}; export function onCreateSubmitFail(errors, dispatch) { const { openSnackBar } = actions.ui;