getOneByIdOrLogin method

  1. @override
Future<AccountV1?> getOneByIdOrLogin(
  1. String? correlationId,
  2. String idOrLogin
)
override

Implementation

@override
Future<AccountV1?> getOneByIdOrLogin(
    String? correlationId, String idOrLogin) async {
  var filter = {
    r'$or': [
      {'login': idOrLogin},
      {'_id': idOrLogin}
    ]
  };
  var query = mngquery.SelectorBuilder();
  var selector = <String, dynamic>{};
  if (filter != null && filter.isNotEmpty) {
    selector[r'$query'] = filter;
  }

  var item = await collection!.findOne(query.raw(selector));

  if (item == null) {
    logger.trace(correlationId, 'Nothing found from %s with idOrLogin = %s',
        [collectionName, idOrLogin]);
    return null;
  }
  logger.trace(correlationId, 'Retrieved from %s with idOrLogin = %s',
      [collectionName, idOrLogin]);
  return convertToPublic(item);
}