Files
fcs/lib/data/provider/carton_data_provider.dart

66 lines
2.1 KiB
Dart
Raw Normal View History

2020-10-19 05:13:49 +06:30
import 'dart:async';
2021-01-09 19:11:47 +06:30
import 'dart:convert';
2020-10-19 05:13:49 +06:30
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 {
if (term == null || term == '') return List();
// var bytes = utf8.encode(term);
// var base64Str = base64.encode(bytes);
// HtmlEscape htmlEscape = const HtmlEscape();
// String escapeBuyer = htmlEscape.convert(base64Str);
try {
String path = "/$cartons_collection";
var querySnap = await Firestore.instance
.collection(path)
.where("carton_number", isEqualTo: term)
.where("carton_type",
whereIn: [carton_from_packages, carton_from_cargos])
.where("status", isEqualTo: carton_packed_status)
.where("is_deleted", isEqualTo: false)
.orderBy("user_name")
.getDocuments();
return querySnap.documents
.map((e) => Carton.fromMap(e.data, e.documentID))
.toList();
} catch (e) {
log.warning("carton error:" + e.toString());
return null;
}
}
2020-10-19 05:13:49 +06:30
}