postItems method
Implementation
Future<List<T>> postItems({bool autoAuthorize = true, String tag = '', List<String>? loadReference, String function = ''}) async {
var dataItem = NsgDataClient.client.getNewObject(dataItemType);
var header = <String, String?>{};
if (dataItem.remoteProvider.token != '') {
header['Authorization'] = dataItem.remoteProvider.token;
}
if (function == '') {
function = dataItem.remoteProvider.serverUri + dataItem.apiPostItems;
} else {
function = dataItem.remoteProvider.serverUri + function;
}
Map<String, dynamic>? filterMap;
//Добавим поля для дочитывания
if (loadReference != null) {
var filter = NsgDataRequestParams();
filter.referenceList = loadReference;
filterMap = filter.toJson();
}
var response = await dataItem.remoteProvider.baseRequestList(
function: '$function ${dataItem.runtimeType}',
headers: dataItem.remoteProvider.getAuthorizationHeader(),
url: function,
postData: _toJson(),
method: 'POST',
params: filterMap);
var req = NsgDataRequest<T>(dataItemType: dataItemType);
_items = (await req.loadDataAndReferences(response, loadReference ?? [], tag)).cast();
for (var element in _items) {
element.state = NsgDataItemState.fill;
}
return _items;
}