@@ -59,8 +59,6 @@ public class DatabaseProviderPlugin implements ProviderPlugin {
5959 private final CrudService crudService ;
6060 private final TaskEngine taskEngine ;
6161
62- private static final String RESPONSE = "response" ;
63-
6462 /**
6563 * Service used to render Jinja templates within URIs, request bodies, headers,
6664 * and response mappings.
@@ -95,12 +93,12 @@ public DynamicEntity create(
9593 ProviderConfiguration config ,
9694 DynamicEntity dynamicEntity ) {
9795 DatabasePluginConfiguration databasePluginConfiguration = getDatabaseConfiguration ("create" , dynamicEntity );
98- crudService .insert (config , databasePluginConfiguration , dynamicEntity );
99- context .put (RESPONSE , dynamicEntity );
96+ DynamicEntity result = crudService .insert (config , databasePluginConfiguration , dynamicEntity );
10097
101- taskEngine .execute (dynamicEntity , context , "beforeMappingCreate" );
102- var resultEntity = mappingEntity (context , databasePluginConfiguration , dynamicEntity );
103- taskEngine .execute (dynamicEntity , context , "afterMappingCreate" );
98+ taskEngine .execute (dynamicEntity , context , "beforeDatabaseMappingCreate" );
99+ var resultEntity = mappingEntity (context , databasePluginConfiguration , result );
100+ // todo: mappingEntity => DONE
101+ taskEngine .execute (dynamicEntity , context , "afterDatabaseMappingCreate" );
104102
105103 return resultEntity ;
106104 }
@@ -140,16 +138,21 @@ public DynamicEntity patch(
140138 DynamicEntity dynamicEntity ) {
141139
142140 DatabasePluginConfiguration databasePluginConfiguration = getDatabaseConfiguration ("patch" , dynamicEntity );
143- DynamicEntity existingEntity = crudService .selectOne (context , config , databasePluginConfiguration , id , dynamicEntity );
141+ DynamicEntity entity = crudService .selectOne (context , config , databasePluginConfiguration , id , dynamicEntity );
144142
145- if (existingEntity != null ) {
143+ if (entity != null ) {
146144 ModelMapper modelMapper = new ModelMapper ();
147- modelMapper .map (dynamicEntity , existingEntity );
148- crudService .update (config , databasePluginConfiguration , id , existingEntity );
149- return existingEntity ;
145+ modelMapper .map (dynamicEntity , entity );
146+ crudService .update (config , databasePluginConfiguration , id , entity );
150147 }
151148
152- return dynamicEntity ;
149+ DynamicEntity result = crudService .selectOne (context , config , databasePluginConfiguration , id , dynamicEntity );
150+
151+ taskEngine .execute (dynamicEntity , context , "beforeDatabaseMappingPatch" );
152+ var resultEntity = mappingEntity (context , databasePluginConfiguration , result );
153+ taskEngine .execute (dynamicEntity , context , "afterDatabaseMappingPatch" );
154+
155+ return resultEntity ;
153156 }
154157
155158 @ Override
@@ -162,11 +165,10 @@ public DynamicEntity findById(
162165 DatabasePluginConfiguration databasePluginConfiguration = getDatabaseConfiguration ("findById" , dynamicEntity );
163166
164167 DynamicEntity result = crudService .selectOne (context , config , databasePluginConfiguration , id , dynamicEntity );
165- context .put (RESPONSE , result );
166168
167- taskEngine .execute (dynamicEntity , context , "beforeMappingFindById " );
168- var resultEntity = mappingEntity (context , databasePluginConfiguration , dynamicEntity );
169- taskEngine .execute (dynamicEntity , context , "afterMappingFindById " );
169+ taskEngine .execute (dynamicEntity , context , "beforeDatabaseMappingFindById " );
170+ var resultEntity = mappingEntity (context , databasePluginConfiguration , result );
171+ taskEngine .execute (dynamicEntity , context , "afterDatabaseMappingFindById " );
170172
171173 return resultEntity ;
172174 }
@@ -180,28 +182,35 @@ public Page<DynamicEntity> findAll(
180182 DynamicEntity dynamicEntity ) {
181183
182184 DatabasePluginConfiguration databasePluginConfiguration = getDatabaseConfiguration ("findAll" , dynamicEntity );
183- Page <DynamicEntity > result = crudService .select (context , config , databasePluginConfiguration , dynamicEntity , filters , pageable );
184- context . put ( RESPONSE , result );
185+ Page <DynamicEntity > result = crudService .select (context , config , databasePluginConfiguration , dynamicEntity ,
186+ filters , pageable );
185187
186- taskEngine .execute (dynamicEntity , context , "beforeMappingFindAll " );
187- Page <DynamicEntity > entities = mappingEntities (context , databasePluginConfiguration , dynamicEntity , result );
188- taskEngine .execute (dynamicEntity , context , "afterMappingFindAll " );
188+ taskEngine .execute (dynamicEntity , context , "beforeDatabaseMappingFindAll " );
189+ Page <DynamicEntity > resultEntity = mappingEntities (context , databasePluginConfiguration , dynamicEntity , result );
190+ taskEngine .execute (dynamicEntity , context , "afterDatabaseMappingFindAll " );
189191
190- return entities ;
192+ return resultEntity ;
191193 }
192194
193195 @ Override
194196 public DynamicEntity update (
195197 TaskExecutionContext context ,
196198 ProviderConfiguration config ,
197- String id ,
199+ Object id ,
198200 DynamicEntity dynamicEntity ) {
199201
200202 DatabasePluginConfiguration databasePluginConfiguration = getDatabaseConfiguration ("update" , dynamicEntity );
201203
202- crudService .update (config , databasePluginConfiguration , id , dynamicEntity );
204+ DynamicEntity result = crudService .update (config , databasePluginConfiguration , id , dynamicEntity );
205+
206+ // TODO: mappingEntity => DONE
207+ // TODO: missing bferoce Update => DONE
208+ // TODO: missing after Update => DONE
209+ taskEngine .execute (dynamicEntity , context , "beforeDatabaseMappingUpdate" );
210+ DynamicEntity resultEntity = mappingEntity (context , databasePluginConfiguration , result );
211+ taskEngine .execute (dynamicEntity , context , "afterDatabaseMappingUpdate" );
203212
204- return dynamicEntity ;
213+ return resultEntity ;
205214 }
206215
207216 public DynamicEntity mappingEntity (TaskExecutionContext taskContext , DatabasePluginConfiguration configuration ,
@@ -230,12 +239,14 @@ public DynamicEntity mappingEntity(TaskExecutionContext taskContext, DatabasePlu
230239 * @param pageable the pagination information for the result set.
231240 * @return a pageable list of mapped entities.
232241 */
233- public Page <DynamicEntity > mappingEntities (TaskExecutionContext taskContext , DatabasePluginConfiguration configuration ,
242+ public Page <DynamicEntity > mappingEntities (TaskExecutionContext taskContext ,
243+ DatabasePluginConfiguration configuration ,
234244 DynamicEntity dynamicEntity , Page <DynamicEntity > selectResult ) {
235245 List <DynamicEntity > content = new ArrayList <>();
236246
237247 Pageable pageable = selectResult .getPageable ();
238248 int itemsSize = pageable .getPageSize ();
249+
239250 for (int i = 0 ; i < itemsSize ; i ++) {
240251 final int index = i ;
241252 var result = new DynamicEntity ();
@@ -271,7 +282,7 @@ public DatabasePluginConfiguration getDatabaseConfiguration(String action, Dynam
271282
272283 return mapper .convertValue (
273284 access .get (action ),
274- new TypeReference <DatabasePluginConfiguration >() {
285+ new TypeReference <>() {
275286 });
276287 }
277288}
0 commit comments