24 lines
742 B
Dart
24 lines
742 B
Dart
import 'package:injectable/injectable.dart';
|
|
import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
|
|
import 'package:crypto/crypto.dart' as crypto;
|
|
|
|
@lazySingleton
|
|
class AdsManager {
|
|
final _salt = 'elmhqun0d58iqm265bmqlg4oymqujrub';
|
|
|
|
AdsManager();
|
|
|
|
String getAdsKey(List<MnemoCardsProductModel> products, UserModel user) {
|
|
final productString = (products.toList()
|
|
..sort((p, n) => (p.id ?? -1).compareTo(n.id ?? -1)))
|
|
.map((product) => '${product.type.name}_${product.id}')
|
|
.join(',');
|
|
final userId = user.id.toString();
|
|
final hash = crypto.sha256
|
|
.convert(
|
|
'${productString}_${userId}_$_salt'.codeUnits,
|
|
)
|
|
.toString();
|
|
return hash;
|
|
}
|
|
}
|