22 * @param {{
33 * handlerName: string,
44 * crudName: string,
5+ * hasTransformContext: boolean,
56 * countBuilder: string,
67 * listBuilder: string,
78 * primaryKey: string,
@@ -19,24 +20,39 @@ ${data.handlerName} = async (ctx) => {
1920
2021 const listBuilder = ${ data . listBuilder } ;
2122
22- ${ data . crudName } ListPreModifier && await ${ data . crudName } ListPreModifier(newEventFromEvent(ctx.event), ctx, countBuilder, listBuilder);
23+ ${ data . crudName } ListPreModifier && await ${
24+ data . crudName
25+ } ListPreModifier(newEventFromEvent(ctx.event), ctx, countBuilder, listBuilder);
2326
24- const { total, ${ data . primaryKey } In } = await ${ data . crudName } Count(newEventFromEvent(ctx.event), sql, countBuilder, ctx.validatedQuery);
27+ const { total, ${ data . primaryKey } In } = await ${
28+ data . crudName
29+ } Count(newEventFromEvent(ctx.event), sql, countBuilder, ctx.validatedQuery);
2530
2631 listBuilder.where.${ data . primaryKey } In = ${ data . primaryKey } In;
2732
28- const result = await ${ data . crudName } List(newEventFromEvent(ctx.event), sql, listBuilder);
33+ const result = await ${
34+ data . crudName
35+ } List(newEventFromEvent(ctx.event), sql, listBuilder);
36+
37+ ${
38+ data . hasTransformContext
39+ ? `const transformContext = ${ data . crudName } TransformContext ? await ${ data . crudName } TransformContext(ctx) : undefined;`
40+ : ""
41+ }
2942
3043 ctx.body = {
3144 total,
32- list: result.map(it => ${ data . crudName } Transform(it)),
45+ list: result.map(it => ${ data . crudName } Transform(it${
46+ data . hasTransformContext ? ", transformContext" : ""
47+ } )),
3348 };
3449};
3550` ;
3651
3752/**
3853 * @param {{
3954 * handlerName: string,
55+ * hasTransformContext: boolean,
4056 * crudName: string,
4157 * builder: string,
4258 * }} data
@@ -46,13 +62,25 @@ export const crudPartialRouteSingle = (data) => `
4662${ data . handlerName } = async (ctx) => {
4763 const builder = ${ data . builder } ;
4864
49- ${ data . crudName } SinglePreModifier && await ${ data . crudName } SinglePreModifier(newEventFromEvent(ctx.event), ctx, builder);
65+ ${ data . crudName } SinglePreModifier && await ${
66+ data . crudName
67+ } SinglePreModifier(newEventFromEvent(ctx.event), ctx, builder);
5068
5169
52- const item = await ${ data . crudName } Single(newEventFromEvent(ctx.event), sql, builder);
70+ const item = await ${
71+ data . crudName
72+ } Single(newEventFromEvent(ctx.event), sql, builder);
73+
74+ ${
75+ data . hasTransformContext
76+ ? `const transformContext = ${ data . crudName } TransformContext ? await ${ data . crudName } TransformContext(ctx) : undefined;`
77+ : ""
78+ }
5379
5480 ctx.body = {
55- item: ${ data . crudName } Transform(item),
81+ item: ${ data . crudName } Transform(item${
82+ data . hasTransformContext ? ", transformContext" : ""
83+ } ),
5684 };
5785};
5886` ;
@@ -61,6 +89,8 @@ ${data.handlerName} = async (ctx) => {
6189 * @param {{
6290 * handlerName: string,
6391 * crudName: string,
92+ * hasTransformContext: boolean,
93+ * builder: string,
6494 * applyParams?: {
6595 * bodyKey: string,
6696 * paramsKey: string,
@@ -73,15 +103,16 @@ ${data.handlerName} = async (ctx) => {
73103 */
74104export const crudPartialRouteCreate = ( data ) => `
75105${ data . handlerName } = async (ctx) => {
106+ const builder = ${ data . builder } ;
76107 ${
77108 data . oneToOneChecks
78- ? `const builder = ${ data . oneToOneChecks . builder } ;`
109+ ? `const oneToOneBuilder = ${ data . oneToOneChecks . builder } ;`
79110 : ``
80111 }
81112 ${ data . crudName } CreatePreModifier && await ${
82113 data . crudName
83- } CreatePreModifier(newEventFromEvent(ctx.event), ctx ${
84- data . oneToOneChecks ? `, builder ` : ""
114+ } CreatePreModifier(newEventFromEvent(ctx.event), ctx, builder ${
115+ data . oneToOneChecks ? `, oneToOneBuilder ` : ""
85116} );
86117
87118 ${
@@ -93,7 +124,7 @@ ${data.handlerName} = async (ctx) => {
93124 data . oneToOneChecks
94125 ? `
95126 try {
96- const exists = await ${ data . crudName } Single(newEventFromEvent(ctx.event), sql, builder );
127+ const exists = await ${ data . crudName } Single(newEventFromEvent(ctx.event), sql, oneToOneBuilder );
97128 if (exists) {
98129 throw AppError.validationError("${ data . crudName } .create.alreadyExists");
99130 }
@@ -108,10 +139,18 @@ ${data.handlerName} = async (ctx) => {
108139
109140 const item = await sql.begin(sql => ${
110141 data . crudName
111- } Create(newEventFromEvent(ctx.event), sql, ctx.validatedBody));
142+ } Create(newEventFromEvent(ctx.event), sql, ctx.validatedBody, builder ));
112143
144+ ${
145+ data . hasTransformContext
146+ ? `const transformContext = ${ data . crudName } TransformContext ? await ${ data . crudName } TransformContext(ctx) : undefined;`
147+ : ""
148+ }
149+
113150 ctx.body = {
114- item: ${ data . crudName } Transform(item),
151+ item: ${ data . crudName } Transform(item${
152+ data . hasTransformContext ? ", transformContext" : ""
153+ } ),
115154 };
116155};
117156` ;
0 commit comments