Skip to content

Commit

Permalink
fix: consolidate batch errors when using GraphQL
Browse files Browse the repository at this point in the history
  • Loading branch information
awinberg-aws committed Aug 7, 2023
1 parent 7ab5bc3 commit af94de2
Show file tree
Hide file tree
Showing 2 changed files with 131 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,8 @@ export default function CreateOwnerForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -871,7 +872,8 @@ export default function MyPostForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -1582,7 +1584,8 @@ export default function MyMemberForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -2211,7 +2214,8 @@ export default function SchoolCreateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -2743,7 +2747,8 @@ export default function BookCreateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -3313,7 +3318,8 @@ export default function TagCreateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -3956,7 +3962,8 @@ export default function BookCreateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -4681,7 +4688,8 @@ export default function PostUpdateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -5294,7 +5302,8 @@ export default function MyPostForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -6210,7 +6219,8 @@ export default function MovieUpdateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -6912,7 +6922,8 @@ export default function CommentUpdateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -7632,7 +7643,8 @@ export default function CommentUpdateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -8390,7 +8402,8 @@ export default function ClassUpdateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -9199,7 +9212,8 @@ export default function UpdateCPKTeacherForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -9950,7 +9964,8 @@ export default function CreateCompositeToyForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -10772,7 +10787,8 @@ export default function CreateCommentForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -11808,7 +11824,8 @@ export default function CreateCompositeDogForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -12649,7 +12666,8 @@ export default function CreatePostForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -13243,7 +13261,8 @@ export default function UpdatePostForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -13788,7 +13807,8 @@ export default function CreateDogForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -14335,7 +14355,8 @@ export default function CreateOwnerForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down Expand Up @@ -14860,7 +14881,8 @@ export default function CommentUpdateForm(props) {
}
} catch (err) {
if (onError) {
onError(modelFields, err.message);
const messages = err.errors.map((e) => e.message).join(\\"\\\\n\\");
onError(modelFields, messages);
}
}
}}
Expand Down
102 changes: 87 additions & 15 deletions packages/codegen-ui-react/lib/amplify-ui-renderers/form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,16 @@ import {
StudioForm,
StudioNode,
} from '@aws-amplify/codegen-ui';
import { factory, JsxAttribute, JsxChild, JsxElement, JsxOpeningElement, Statement, SyntaxKind } from 'typescript';
import {
factory,
JsxAttribute,
JsxChild,
JsxElement,
JsxOpeningElement,
NodeFlags,
Statement,
SyntaxKind,
} from 'typescript';
import { ReactComponentRenderer } from '../react-component-renderer';
import { buildFormLayoutProperties, buildOpeningElementProperties } from '../react-component-render-helper';
import { ImportCollection, ImportSource, ImportValue } from '../imports';
Expand All @@ -47,6 +56,10 @@ export default class FormRenderer extends ReactComponentRenderer<BaseComponentPr
super(component, componentMetadata, importCollection, parent);
}

protected isRenderingGraphQL = () => {
return this.renderConfig.apiConfiguration?.dataApi === 'GraphQL';
};

renderElement(renderChildren: (children: StudioComponentChild[]) => JsxChild[]): JsxElement {
const children = this.component.children ?? [];

Expand All @@ -57,10 +70,7 @@ export default class FormRenderer extends ReactComponentRenderer<BaseComponentPr
);

this.importCollection.addImport('@aws-amplify/ui-react', this.component.componentType);
if (
this.form.dataType.dataSourceType === 'DataStore' &&
this.renderConfig.apiConfiguration?.dataApi === 'GraphQL'
) {
if (this.form.dataType.dataSourceType === 'DataStore' && this.isRenderingGraphQL()) {
this.importCollection.addMappedImport(ImportValue.API);
} else if (this.form.dataType.dataSourceType === 'DataStore') {
this.importCollection.addImport('aws-amplify', 'DataStore');
Expand Down Expand Up @@ -184,17 +194,79 @@ export default class FormRenderer extends ReactComponentRenderer<BaseComponentPr
factory.createIfStatement(
factory.createIdentifier('onError'),
factory.createBlock(
[
factory.createExpressionStatement(
factory.createCallExpression(factory.createIdentifier('onError'), undefined, [
factory.createIdentifier('modelFields'),
factory.createPropertyAccessExpression(
factory.createIdentifier('err'),
factory.createIdentifier('message'),
this.isRenderingGraphQL()
? [
factory.createVariableStatement(
undefined,
factory.createVariableDeclarationList(
[
factory.createVariableDeclaration(
factory.createIdentifier('messages'),
undefined,
undefined,
factory.createCallExpression(
factory.createPropertyAccessExpression(
factory.createCallExpression(
factory.createPropertyAccessExpression(
factory.createPropertyAccessExpression(
factory.createIdentifier('err'),
factory.createIdentifier('errors'),
),
factory.createIdentifier('map'),
),
undefined,
[
factory.createArrowFunction(
undefined,
undefined,
[
factory.createParameterDeclaration(
undefined,
undefined,
undefined,
factory.createIdentifier('e'),
undefined,
undefined,
undefined,
),
],
undefined,
factory.createToken(SyntaxKind.EqualsGreaterThanToken),
factory.createPropertyAccessExpression(
factory.createIdentifier('e'),
factory.createIdentifier('message'),
),
),
],
),
factory.createIdentifier('join'),
),
undefined,
[factory.createStringLiteral('\n')],
),
),
],
NodeFlags.Const,
),
),
factory.createExpressionStatement(
factory.createCallExpression(factory.createIdentifier('onError'), undefined, [
factory.createIdentifier('modelFields'),
factory.createIdentifier('messages'),
]),
),
]
: [
factory.createExpressionStatement(
factory.createCallExpression(factory.createIdentifier('onError'), undefined, [
factory.createIdentifier('modelFields'),
factory.createPropertyAccessExpression(
factory.createIdentifier('err'),
factory.createIdentifier('message'),
),
]),
),
]),
),
],
],
true,
),
undefined,
Expand Down

0 comments on commit af94de2

Please sign in to comment.