2020-10-19 05:13:49 +06:30
|
|
|
import 'dart:async';
|
2021-01-09 19:11:47 +06:30
|
|
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
|
|
|
|
import 'package:fcs/domain/constants.dart';
|
2020-10-19 05:13:49 +06:30
|
|
|
import 'package:fcs/domain/entities/carton.dart';
|
|
|
|
|
import 'package:fcs/helpers/api_helper.dart';
|
|
|
|
|
import 'package:fcs/helpers/firebase_helper.dart';
|
|
|
|
|
import 'package:logging/logging.dart';
|
|
|
|
|
|
|
|
|
|
class CartonDataProvider {
|
|
|
|
|
final log = Logger('CartonDataProvider');
|
|
|
|
|
|
|
|
|
|
static final CartonDataProvider instance = CartonDataProvider._();
|
|
|
|
|
CartonDataProvider._();
|
|
|
|
|
|
2021-01-07 18:15:39 +06:30
|
|
|
Future<Carton> createCarton(Carton carton) async {
|
|
|
|
|
var data = await requestAPI("/cartons", "POST",
|
2020-10-19 05:13:49 +06:30
|
|
|
payload: carton.toMap(), token: await getToken());
|
2021-01-07 18:15:39 +06:30
|
|
|
return Carton.fromMap(data, data['id']);
|
2020-10-19 05:13:49 +06:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> updateCarton(Carton carton) async {
|
|
|
|
|
return await requestAPI("/cartons", "PUT",
|
|
|
|
|
payload: carton.toMap(), token: await getToken());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> deleteCarton(Carton carton) async {
|
|
|
|
|
return await requestAPI("/cartons", "DELETE",
|
|
|
|
|
payload: carton.toMap(), token: await getToken());
|
|
|
|
|
}
|
2020-10-21 05:40:58 +06:30
|
|
|
|
|
|
|
|
Future<void> deliver(Carton carton) async {
|
|
|
|
|
return await requestAPI("/cartons/deliver", "PUT",
|
|
|
|
|
payload: carton.toMap(), token: await getToken());
|
|
|
|
|
}
|
2021-01-09 19:11:47 +06:30
|
|
|
|
|
|
|
|
Future<List<Carton>> searchCarton(String term) async {
|
2024-01-23 16:28:08 +06:30
|
|
|
if (term == '') return [];
|
2021-01-09 19:11:47 +06:30
|
|
|
|
|
|
|
|
// var bytes = utf8.encode(term);
|
|
|
|
|
// var base64Str = base64.encode(bytes);
|
|
|
|
|
// HtmlEscape htmlEscape = const HtmlEscape();
|
2024-02-07 17:26:29 +06:30
|
|
|
// String escapeTerm = htmlEscape.convert(base64Str);
|
2021-01-09 19:11:47 +06:30
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
String path = "/$cartons_collection";
|
2021-09-10 14:27:38 +06:30
|
|
|
var querySnap = await FirebaseFirestore.instance
|
2021-01-09 19:11:47 +06:30
|
|
|
.collection(path)
|
|
|
|
|
.where("carton_number", isEqualTo: term)
|
|
|
|
|
.where("is_deleted", isEqualTo: false)
|
2024-02-07 17:26:29 +06:30
|
|
|
.orderBy("created_at",descending: true)
|
2021-09-10 14:27:38 +06:30
|
|
|
.get();
|
|
|
|
|
return querySnap.docs.map((e) => Carton.fromMap(e.data(), e.id)).toList();
|
2021-01-09 19:11:47 +06:30
|
|
|
} catch (e) {
|
|
|
|
|
log.warning("carton error:" + e.toString());
|
2021-09-10 14:27:38 +06:30
|
|
|
return [];
|
2021-01-09 19:11:47 +06:30
|
|
|
}
|
|
|
|
|
}
|
2020-10-19 05:13:49 +06:30
|
|
|
}
|