findUserByCredentials method

  1. @override
Future<Map<String, dynamic>?> findUserByCredentials(
  1. Map<String, dynamic> credentials,
  2. List<String> fields,
  3. String table
)
override

Finds a user by credentials

credentials Map containing login credentials fields List of fields to check (email, username, etc.) table The table name to search in Returns the user record if found, null otherwise

Implementation

@override
Future<Map<String, dynamic>?> findUserByCredentials(
  Map<String, dynamic> credentials,
  List<String> fields,
  String table,
) async {
  final query = Khadem.db.table(table);
  bool hasValidField = false;

  for (final field in fields) {
    if (credentials.containsKey(field) && credentials[field] != null) {
      query.where(field, '=', credentials[field]);
      hasValidField = true;
    }
  }

  if (!hasValidField) {
    return null;
  }

  final result = await query.first();
  return result as Map<String, dynamic>?;
}