Refactor functions that check typed text in lookups

This commit is contained in:
mabashian
2021-05-27 11:09:06 -04:00
parent 4ec7ba0107
commit 50de068a02
6 changed files with 80 additions and 74 deletions

View File

@@ -57,16 +57,17 @@ function ApplicationLookup({ onChange, value, label, fieldName, validate }) {
const checkApplicationName = useCallback( const checkApplicationName = useCallback(
async name => { async name => {
if (name && name !== '') { if (!name) {
try { onChange(null);
const { return;
data: { results: nameMatchResults, count: nameMatchCount }, }
} = await ApplicationsAPI.read({ name });
onChange(nameMatchCount ? nameMatchResults[0] : null); try {
} catch { const {
onChange(null); data: { results: nameMatchResults, count: nameMatchCount },
} } = await ApplicationsAPI.read({ name });
} else { onChange(nameMatchCount ? nameMatchResults[0] : null);
} catch {
onChange(null); onChange(null);
} }
}, },

View File

@@ -114,31 +114,32 @@ function CredentialLookup({
const checkCredentialName = useCallback( const checkCredentialName = useCallback(
async name => { async name => {
if (name && name !== '') { if (!name) {
try { onChange(null);
const typeIdParams = credentialTypeId return;
? { credential_type: credentialTypeId } }
: {};
const typeKindParams = credentialTypeKind
? { credential_type__kind: credentialTypeKind }
: {};
const typeNamespaceParams = credentialTypeNamespace
? { credential_type__namespace: credentialTypeNamespace }
: {};
const { try {
data: { results: nameMatchResults, count: nameMatchCount }, const typeIdParams = credentialTypeId
} = await CredentialsAPI.read({ ? { credential_type: credentialTypeId }
name, : {};
...typeIdParams, const typeKindParams = credentialTypeKind
...typeKindParams, ? { credential_type__kind: credentialTypeKind }
...typeNamespaceParams, : {};
}); const typeNamespaceParams = credentialTypeNamespace
onChange(nameMatchCount ? nameMatchResults[0] : null); ? { credential_type__namespace: credentialTypeNamespace }
} catch { : {};
onChange(null);
} const {
} else { data: { results: nameMatchResults, count: nameMatchCount },
} = await CredentialsAPI.read({
name,
...typeIdParams,
...typeKindParams,
...typeNamespaceParams,
});
onChange(nameMatchCount ? nameMatchResults[0] : null);
} catch {
onChange(null); onChange(null);
} }
}, },

View File

@@ -116,16 +116,17 @@ function ExecutionEnvironmentLookup({
const checkExecutionEnvironmentName = useCallback( const checkExecutionEnvironmentName = useCallback(
async name => { async name => {
if (name && name !== '') { if (!name) {
try { onChange(null);
const { return;
data: { results: nameMatchResults, count: nameMatchCount }, }
} = await ExecutionEnvironmentsAPI.read({ name });
onChange(nameMatchCount ? nameMatchResults[0] : null); try {
} catch { const {
onChange(null); data: { results: nameMatchResults, count: nameMatchCount },
} } = await ExecutionEnvironmentsAPI.read({ name });
} else { onChange(nameMatchCount ? nameMatchResults[0] : null);
} catch {
onChange(null); onChange(null);
} }
}, },

View File

@@ -76,16 +76,17 @@ function InventoryLookup({
const checkInventoryName = useCallback( const checkInventoryName = useCallback(
async name => { async name => {
if (name && name !== '') { if (!name) {
try { onChange(null);
const { return;
data: { results: nameMatchResults, count: nameMatchCount }, }
} = await InventoriesAPI.read({ name });
onChange(nameMatchCount ? nameMatchResults[0] : null); try {
} catch { const {
onChange(null); data: { results: nameMatchResults, count: nameMatchCount },
} } = await InventoriesAPI.read({ name });
} else { onChange(nameMatchCount ? nameMatchResults[0] : null);
} catch {
onChange(null); onChange(null);
} }
}, },

View File

@@ -71,16 +71,17 @@ function OrganizationLookup({
const checkOrganizationName = useCallback( const checkOrganizationName = useCallback(
async name => { async name => {
if (name && name !== '') { if (!name) {
try { onChange(null);
const { return;
data: { results: nameMatchResults, count: nameMatchCount }, }
} = await OrganizationsAPI.read({ name });
onChange(nameMatchCount ? nameMatchResults[0] : null); try {
} catch { const {
onChange(null); data: { results: nameMatchResults, count: nameMatchCount },
} } = await OrganizationsAPI.read({ name });
} else { onChange(nameMatchCount ? nameMatchResults[0] : null);
} catch {
onChange(null); onChange(null);
} }
}, },

View File

@@ -75,16 +75,17 @@ function ProjectLookup({
const checkProjectName = useCallback( const checkProjectName = useCallback(
async name => { async name => {
if (name && name !== '') { if (!name) {
try { onChange(null);
const { return;
data: { results: nameMatchResults, count: nameMatchCount }, }
} = await ProjectsAPI.read({ name });
onChange(nameMatchCount ? nameMatchResults[0] : null); try {
} catch { const {
onChange(null); data: { results: nameMatchResults, count: nameMatchCount },
} } = await ProjectsAPI.read({ name });
} else { onChange(nameMatchCount ? nameMatchResults[0] : null);
} catch {
onChange(null); onChange(null);
} }
}, },