@Override public ModelExecutorContext newInverseExecutorContext() { SimpleModelExecutorContext c = new SimpleModelExecutorContext(ac, amd, dao, iam, iem); c.setRestResourceFactory(restResourceFactory); return c; } }
public ModelQueryExecutor newQueryExecutor() { SimpleModelExecutorContext c = new SimpleModelExecutorContext(runtimeApi, am, dao, em); return mef.newQueryExecutor(c); } }
public void postApiInitialized(Api api) { this.ac = api.getConfig(); this.amd = api.getMetadata(); this.am = api.getMetadata().getModel(modelClass); this.mec = new SimpleModelExecutorContext(api, dao, am, em, null); }
@Override public Object apply(ActionParams params) { MApiModel am = am(); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelQueryExecutor executor = newQueryExecutor(context); CountOptions options = getWithoutId(params, 0); QueryListResult result = executor.count(options, null); return ApiResponse.of(result.getCount()); }
@Override public Object apply(ActionParams params) { MApiModel am = am(); Object id = id(params); Map<String, Object> record = recordWithId(params); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelUpdateExecutor executor = newUpdateExecutor(context); UpdateOneResult result = executor.partialUpdateOne(id, record); if (null != result.entity) { return ApiResponse.of(result.entity); } if (result.affectedRows > 0) { return ApiResponse.NO_CONTENT; } else { throw new NotFoundException(am.getName() + "' " + id.toString() + "' not found"); } }
@Override public Object apply(ActionParams params) { MApiModel am = api.getMetadata().getModel(model.getName()); Map<String, Object> record = getWithoutId(params, 0); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelCreateExecutor executor = newCreateExecutor(context); CreateOneResult result = executor.createOne(record); return ApiResponse.created(result.entity); }
@Override public Object apply(ActionParams params) { MApiModel am = am(); Object id = id(params); Map<String, Object> record = recordWithId(params); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelUpdateExecutor executor = newUpdateExecutor(context); UpdateOneResult result = executor.replaceUpdateOne(id, record); if (null != result.entity) { return ApiResponse.of(result.entity); } if (result.affectedRows > 0) { return ApiResponse.NO_CONTENT; } else { throw new NotFoundException(am.getName() + "' " + id.toString() + "' not found"); } }
@Override public Object apply(ActionParams params) { MApiModel am = am(); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelQueryExecutor executor = newQueryExecutor(context); QueryOptions options = getWithoutId(params, 0); QueryListResult result = executor.queryList(options); if (null != result.getEntity()) { return ApiResponse.of(result.getEntity()); } if (result.getCount() == -1) { return ApiResponse.of(result.getList()); } else { return ApiResponse.of(result.getList()).setHeader("X-Total-Count", String.valueOf(result.getCount())); } }
@Override public Object apply(ActionParams params) { MApiModel am = am(); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelQueryExecutor executor = newQueryExecutor(context); Object id = id(params); QueryOptionsBase options = getWithId(params, 0); QueryOneResult result = executor.queryOne(id, options); if (null != result.getEntity()) { return ApiResponse.of(result.getEntity()); } else if (result.getRecord() == null) { throw new NotFoundException(am.getName() + " '" + id.toString() + "' not found"); } else { return ApiResponse.of(result.getRecord()); } }
@Override public Object apply(ActionParams params) { MApiModel am = api.getMetadata().getModel(model.getName()); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelDeleteExecutor executor = newDeleteExecutor(context); Object id = id(params); DeleteOptions options = cascadeDelete ? getWithId(params, 0) : null; if (!cascadeDelete) { Request request = Request.tryGetCurrent(); String param = request.getParameter("cascade_delete"); if (!Strings.isEmpty(param) && Converts.toBoolean(param)) { throw new BadRequestException("Cascade delete not supported by this operation, check parameter 'cascade_delete'!"); } } DeleteOneResult result = executor.deleteOne(id, options); if (null != result.entity) { return ApiResponse.of(result.entity); } else { if (result.success) { return ApiResponse.NO_CONTENT; } else { throw new NotFoundException(am.getName() + " '" + id.toString() + "' not found"); } } }