null safety
This commit is contained in:
@@ -16,9 +16,9 @@ import 'package:path/path.dart' as Path;
|
||||
class PackageModel extends BaseModel {
|
||||
final log = Logger('PackageModel');
|
||||
|
||||
PaginatorListener packages;
|
||||
PaginatorListener customerPackages;
|
||||
PaginatorListener activePackages;
|
||||
PaginatorListener? packages;
|
||||
PaginatorListener? customerPackages;
|
||||
PaginatorListener? activePackages;
|
||||
|
||||
bool isLoading = false;
|
||||
int _menuSelectedIndex = 1;
|
||||
@@ -32,7 +32,7 @@ class PackageModel extends BaseModel {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
get menuSelectedIndex => _menuSelectedIndex;
|
||||
int get menuSelectedIndex => _menuSelectedIndex;
|
||||
|
||||
void privilegeChanged() {
|
||||
if (user != null) {
|
||||
@@ -63,9 +63,9 @@ class PackageModel extends BaseModel {
|
||||
|
||||
@override
|
||||
logout() async {
|
||||
if (customerPackages != null) customerPackages.close();
|
||||
if (packages != null) packages.close();
|
||||
if (activePackages != null) activePackages.close();
|
||||
if (customerPackages != null) customerPackages!.close();
|
||||
if (packages != null) packages!.close();
|
||||
if (activePackages != null) activePackages!.close();
|
||||
}
|
||||
|
||||
Future<void> _loadPackages(bool isDelivered) async {
|
||||
@@ -75,15 +75,15 @@ class PackageModel extends BaseModel {
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = Firestore.instance
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered);
|
||||
Query pageQuery = Firestore.instance
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered);
|
||||
|
||||
pageQuery = pageQuery.orderBy("update_time", descending: true);
|
||||
packages.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
packages!.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
@@ -94,17 +94,17 @@ class PackageModel extends BaseModel {
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = Firestore.instance
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.where("user_id", isEqualTo: user.id);
|
||||
Query pageQuery = Firestore.instance
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.where("user_id", isEqualTo: user.id)
|
||||
.orderBy("update_time", descending: true);
|
||||
|
||||
customerPackages.refresh(
|
||||
customerPackages!.refresh(
|
||||
listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
@@ -118,29 +118,30 @@ class PackageModel extends BaseModel {
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = Firestore.instance
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: false);
|
||||
Query pageQuery = Firestore.instance
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: false);
|
||||
|
||||
pageQuery = pageQuery.orderBy("update_time", descending: true);
|
||||
activePackages.refresh(
|
||||
activePackages!.refresh(
|
||||
listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
}
|
||||
|
||||
Future<Package> getPackage(String id) async {
|
||||
Future<Package?> getPackage(String id) async {
|
||||
if (user == null) return null;
|
||||
String path = "/$packages_collection";
|
||||
try {
|
||||
DocumentSnapshot snap =
|
||||
await Firestore.instance.collection("$path").document(id).get();
|
||||
await FirebaseFirestore.instance.collection("$path").doc(id).get();
|
||||
if (snap.exists) {
|
||||
var package = Package.fromMap(snap.data, snap.documentID);
|
||||
var package =
|
||||
Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
|
||||
return package;
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -149,18 +150,18 @@ class PackageModel extends BaseModel {
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<Package> getPackageByTrackingID(String trackingID) async {
|
||||
Future<Package?> getPackageByTrackingID(String trackingID) async {
|
||||
if (user == null) return null;
|
||||
String path = "/$packages_collection";
|
||||
try {
|
||||
var snaps = await Firestore.instance
|
||||
var snaps = await FirebaseFirestore.instance
|
||||
.collection("$path")
|
||||
.where("tracking_id", isEqualTo: trackingID)
|
||||
.where("is_deleted", isEqualTo: false)
|
||||
.getDocuments(source: Source.server);
|
||||
if (snaps.documents.length == 1) {
|
||||
var snap = snaps.documents[0];
|
||||
var package = Package.fromMap(snap.data, snap.documentID);
|
||||
.get(const GetOptions(source: Source.server));
|
||||
if (snaps.docs.length == 1) {
|
||||
var snap = snaps.docs[0];
|
||||
var package = Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
|
||||
return package;
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -169,35 +170,35 @@ class PackageModel extends BaseModel {
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<Package> lookupPackage(String trackingID) async {
|
||||
Future<Package?> lookupPackage(String trackingID) async {
|
||||
if (user == null) return null;
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
var qsnap = await Firestore.instance
|
||||
var qsnap = await FirebaseFirestore.instance
|
||||
.collection("$path")
|
||||
.where("tracking_id", isEqualTo: trackingID)
|
||||
.where("has_user_id", isEqualTo: false)
|
||||
.where("is_deleted", isEqualTo: false)
|
||||
.getDocuments(source: Source.server);
|
||||
if (qsnap.documents.length > 0) {
|
||||
var snap = qsnap.documents[0];
|
||||
.get(const GetOptions(source: Source.server));
|
||||
if (qsnap.docs.length > 0) {
|
||||
var snap = qsnap.docs[0];
|
||||
if (snap.exists) {
|
||||
var package = Package.fromMap(snap.data, snap.documentID);
|
||||
var package = Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
|
||||
return package;
|
||||
}
|
||||
}
|
||||
|
||||
qsnap = await Firestore.instance
|
||||
qsnap = await FirebaseFirestore.instance
|
||||
.collection("$path")
|
||||
.where("tracking_id", isEqualTo: trackingID)
|
||||
.where("user_id", isEqualTo: user.id)
|
||||
.where("is_deleted", isEqualTo: false)
|
||||
.getDocuments(source: Source.server);
|
||||
if (qsnap.documents.length > 0) {
|
||||
var snap = qsnap.documents[0];
|
||||
.get(const GetOptions(source: Source.server));
|
||||
if (qsnap.docs.length > 0) {
|
||||
var snap = qsnap.docs[0];
|
||||
if (snap.exists) {
|
||||
var package = Package.fromMap(snap.data, snap.documentID);
|
||||
var package = Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
|
||||
return package;
|
||||
}
|
||||
}
|
||||
@@ -210,15 +211,15 @@ class PackageModel extends BaseModel {
|
||||
Future<List<Package>> getPackages(String userID, List<String> status) async {
|
||||
List<Package> packages = [];
|
||||
try {
|
||||
var snaps = await Firestore.instance
|
||||
var snaps = await FirebaseFirestore.instance
|
||||
.collection("/$packages_collection")
|
||||
.where("status", whereIn: status)
|
||||
.where("user_id", isEqualTo: userID)
|
||||
.where("is_deleted", isEqualTo: false)
|
||||
.getDocuments(source: Source.server);
|
||||
packages = snaps.documents.map((documentSnapshot) {
|
||||
.get(const GetOptions(source: Source.server));
|
||||
packages = snaps.docs.map((documentSnapshot) {
|
||||
var p =
|
||||
Package.fromMap(documentSnapshot.data, documentSnapshot.documentID);
|
||||
Package.fromMap(documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
|
||||
return p;
|
||||
}).toList();
|
||||
} catch (e) {
|
||||
@@ -235,22 +236,22 @@ class PackageModel extends BaseModel {
|
||||
Future<List<Package>> packages =
|
||||
Services.instance.packageService.searchPackage(term);
|
||||
|
||||
Future<List<Package>> packagesFTS =
|
||||
Future<List<Package>?> packagesFTS =
|
||||
Services.instance.packageService.ftsSearchPackage(term);
|
||||
// Package pkg = await getPackageByTrackingID(term);
|
||||
// if (pkg != null && !packages.contains(pkg)) {
|
||||
// packages.insert(0, pkg);
|
||||
// }
|
||||
List<Package> pkgs = await packages;
|
||||
List<Package> ftsPkgs = await packagesFTS;
|
||||
pkgs.addAll(ftsPkgs);
|
||||
List<Package>? ftsPkgs = await packagesFTS;
|
||||
pkgs.addAll(ftsPkgs!);
|
||||
final seen = Set<Package>();
|
||||
return pkgs.where((e) => seen.add(e)).toList();
|
||||
}
|
||||
|
||||
Future<void> createPackages(User user, List<Package> packages) {
|
||||
return Services.instance.packageService
|
||||
.createPackages(packages, user.fcsID);
|
||||
.createPackages(packages, user.fcsID!);
|
||||
}
|
||||
|
||||
Future<void> createReceiving(
|
||||
@@ -370,10 +371,10 @@ class PackageModel extends BaseModel {
|
||||
Future<void> changeDeliveryAddress(
|
||||
Package package, DeliveryAddress deliveryAddress) {
|
||||
return Services.instance.packageService
|
||||
.changeDeliveryAddress(package.id, deliveryAddress.id);
|
||||
.changeDeliveryAddress(package.id!, deliveryAddress.id!);
|
||||
}
|
||||
|
||||
Future<void> packageReturn(Package package) {
|
||||
return Services.instance.packageService.packageReturn(package.id);
|
||||
return Services.instance.packageService.packageReturn(package.id!);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user