create method
Creates a data item.
correlation_id
(optional) transaction id to trace execution through call chain.item
an item to be created. Return (optional) Future that receives created item or error.
Implementation
@override
Future<AccountV1?> create(String? correlationId, AccountV1? item) async {
if (item == null) return null;
var existingItem = items.isNotEmpty
? items.where((element) => element.login == item.login)
: null;
if (existingItem != null &&
existingItem.isNotEmpty &&
existingItem.first != null) {
var err = BadRequestException(correlationId, 'ALREADY_EXIST',
'User account ' + item.login! + ' already exist')
.withDetails('login', item.login);
logger.trace(correlationId, 'Create account error %s', [err]);
return null;
}
item.active = item.active ?? true;
item.create_time = DateTime.now();
return super.create(correlationId, item);
}