create method

  1. @override
Future<AccountV1?> create(
  1. String? correlationId,
  2. AccountV1? item
)

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);
}