class MyDataCommandSet extends CommandSet {
IMyDataController _controller;
MyDataCommandSet(IMyDataController controller) : _controller = controller {
addCommand(_makePageByFilterCommand());
addCommand(_makeGetOneByIdCommand());
addCommand(_makeCreateCommand());
addCommand(_makeUpdateCommand());
addCommand(_makeDeleteByIdCommand());
}
ICommand _makePageByFilterCommand() {
return Command(
'get_my_datas',
ObjectSchema(true)
.withOptionalProperty('filter', FilterParamsSchema())
.withOptionalProperty('paging', PagingParamsSchema()),
(String? correlationId, Parameters args) {
var filter = FilterParams.fromValue(args.get('filter'));
var paging = PagingParams.fromValue(args.get('paging'));
return _controller.GetPageByFilterAsync(correlationId, filter, paging);
});
}
ICommand _makeGetOneByIdCommand() {
return Command('get_my_data_by_id',
ObjectSchema(true).withRequiredProperty('my_data_id', TypeCode.String),
(String? correlationId, Parameters args) {
var id = args.getAsString('my_data_id');
return _controller.GetOneByIdAsync(correlationId, id);
});
}
ICommand _makeCreateCommand() {
return Command('create_my_data',
ObjectSchema(true).withRequiredProperty('my_data', MyDataSchema()),
(String? correlationId, Parameters args) {
var entity = MyData();
entity.fromJson(args.get('my_data'))
return _controller.CreateAsync(correlationId, entity);
});
}
ICommand _makeUpdateCommand() {
return Command('update_my_data',
ObjectSchema(true).withRequiredProperty('my_data', MyDataSchema()),
(String? correlationId, Parameters args) {
var entity = MyData();
entity.fromJson(args.get('my_data'));
return _controller.UpdateAsync(correlationId, entity);
});
}
ICommand _makeDeleteByIdCommand() {
return Command('delete_my_data',
ObjectSchema(true).withRequiredProperty('my_data_id', TypeCode.String),
(String? correlationId, Parameters args) {
var id = args.getAsString('my_data_id');
return _controller.DeleteByIdAsync(correlationId, id);
});
}
}