DataService.dart fix on load empty data

logger.dart new logger release
4.4
Serik.Uvaissov 2020-07-18 17:40:39 +06:00
parent 47a4567a3d
commit cf2f0ee6cf
4 changed files with 127 additions and 90 deletions

View File

@ -1,62 +1,79 @@
//import 'dart:developer' as prefix0; import 'dart:convert';
import 'package:logger/logger.dart'; import 'package:logger/logger.dart';
// class SimpleLogPrinter extends LogPrinter { class SimpleLogPrinter extends LogPrinter {
// static int counter = 0; final String className;
// final String className; static final _deviceStackTraceRegex = RegExp(r'#[0-9]+[\s]+(.+) \(([^\s]+)\)');
static final _webStackTraceRegex = RegExp(r'^((packages|dart-sdk)\/[^\s]+\/)');
SimpleLogPrinter(this.className);
// SimpleLogPrinter(this.className); @override
List<String> log(LogEvent event) {
var level = event.level;
var message = stringifyMessage(event.message);
var error = event.error?.toString() ?? '';
var color = PrettyPrinter.levelColors[level];
var emoji = PrettyPrinter.levelEmojis[level];
String stack;
if (event.stackTrace == null) {
stack = formatStackTrace(StackTrace.current, 2);
} else {
stack = formatStackTrace(event.stackTrace, 2);
}
print(color(' $emoji $message $error -> $stack '));
return [];
}
// @override String stringifyMessage(dynamic message) {
// List<String> log(LogEvent event) { if (message is Map || message is Iterable) {
// prefix0.log( var encoder = JsonEncoder.withIndent(' ');
// event.message, return encoder.convert(message);
// time: DateTime.now(), } else {
// level: () { return message.toString();
// switch (event.level) { }
// case Level.verbose: }
// return 0;
// case Level.debug:
// return 500;
// case Level.info:
// return 0;
// case Level.warning:
// return 1500;
// case Level.error:
// return 2000;
// case Level.wtf:
// return 2000;
// default:
// return 2000;
// }
// }(),
// name: className,
// error: event.error,
// sequenceNumber: counter += 1,
// );
// return [];
// }
// }
// Logger getLogger(String className) { String formatStackTrace(StackTrace stackTrace, int methodPosition) {
// //return Logger(printer: SimpleLogPrinter(className)); var lines = stackTrace.toString().split('\n');
// return Logger( var formatted = <String>[];
// printer: PrettyPrinter( var count = 0;
// methodCount: 1, // number of method calls to be displayed for (var line in lines) {
// errorMethodCount: 1, // number of method calls if stacktrace is provided if (_discardDeviceStacktraceLine(line) ||
// lineLength: 120, // width of the output _discardWebStacktraceLine(line)) {
// colors: true, // Colorful log messages continue;
// printEmojis: false, // Print an emoji for each log message }
// printTime: false // Should each log print contain a timestamp formatted.add('${line.replaceFirst(RegExp(r'#\d+\s+'), '')}');
// )); if (++count == methodPosition) {
// } break;
}
}
if (formatted.isEmpty) {
return null;
} else {
//return formatted.join('\n');
return formatted.last;
}
}
bool _discardDeviceStacktraceLine(String line) {
var match = _deviceStackTraceRegex.matchAsPrefix(line);
if (match == null) {
return false;
}
return match.group(2).startsWith('package:logger');
}
bool _discardWebStacktraceLine(String line) {
var match = _webStackTraceRegex.matchAsPrefix(line);
if (match == null) {
return false;
}
return match.group(1).startsWith('packages/logger') ||
match.group(1).startsWith('dart-sdk/lib');
}
}
Logger getLogger(String className) { Logger getLogger(String className) {
//return Logger(printer: SimpleLogPrinter(className)); return Logger(printer: SimpleLogPrinter(className));
return Logger( }
printer: SimplePrinter(
colors: true, // Colorful log messages
printTime: false // Should each log print contain a timestamp
));
}

View File

@ -102,13 +102,20 @@ class DataService extends BaseService {
* name, * name,
* type * type
*/ */
Future<void> insertVoucher({ @required User user, String data, String base64Data, @required String name, double total = 0.0, String type = VoucherTypePayment, String url }) { Future<void> insertVoucher(
{@required User user,
String data,
String base64Data,
@required String name,
double total = 0.0,
String type = VoucherTypePayment,
String url}) {
assert(user != null); assert(user != null);
assert(name != null); assert(name != null);
Voucher voucher = Voucher() Voucher voucher = Voucher()
..name=name ..name = name
..url=url ..url = url
..total = total ..total = total
..appCompanyId = user.appCompanyId ..appCompanyId = user.appCompanyId
..kassaId = user.kassaId ..kassaId = user.kassaId
..data = data ..data = data
@ -141,13 +148,13 @@ class DataService extends BaseService {
data = jsonEncode(checkData.toJson()); data = jsonEncode(checkData.toJson());
} }
log.i('token: $token'); // log.i('token: $token');
log.i('data: $data'); // log.i('data: $data');
Response<dynamic> response = await (operationType == OperationTypePay Response<dynamic> response = await (operationType == OperationTypePay
? _api.sell(token, data) ? _api.sell(token, data)
: _api.sellReturn(token, data)); : _api.sellReturn(token, data));
log.i('response status: ${response.status}'); // log.i('response status: ${response.status}');
log.i('response operation: ${response.operation}'); // log.i('response operation: ${response.operation}');
if (response.status == 200 && response.operation == true) { if (response.status == 200 && response.operation == true) {
User user = Redux.store.state.userState.user; User user = Redux.store.state.userState.user;
String check = response?.body['check']; String check = response?.body['check'];
@ -155,19 +162,21 @@ class DataService extends BaseService {
String url = response?.body['link']; String url = response?.body['link'];
int checkNum = journal['check_num']; int checkNum = journal['check_num'];
var summ = journal['summ']; var summ = journal['summ'];
double total = summ!= null ? double.parse(summ.toString()) : 0.0; double total = summ != null ? double.parse(summ.toString()) : 0.0;
this.insertVoucher( this.insertVoucher(
user: user, user: user,
name: 'Чек №$checkNum', name: 'Чек №$checkNum',
data: data , data: data,
base64Data: check, base64Data: check,
total: total, total: total,
url: url, url: url,
type: operationType == OperationTypeReturn ? VoucherTypeReturnPay : VoucherTypePayment ); type: operationType == OperationTypeReturn
? VoucherTypeReturnPay
: VoucherTypePayment);
} }
return response; return response;
} catch (e) { } catch (e, stack) {
print(e); log.e("sellOrReturn", e, stack);
} }
return null; return null;
} }
@ -191,33 +200,44 @@ class DataService extends BaseService {
try { try {
String token = user.token; String token = user.token;
Response<dynamic> goods = await _api.getGoodsFromServer(token); Response<dynamic> goods = await _api.getGoodsFromServer(token);
if(goods.operation==false){
log.w('session is closed');
return false;
}
Response<dynamic> categories = await _api.getCategoryFromServer(token); Response<dynamic> categories = await _api.getCategoryFromServer(token);
Response<dynamic> services = await _api.getServiceFromServer(token); Response<dynamic> services = await _api.getServiceFromServer(token);
await _db.deleteAll(Goog_tableName); await _db.deleteAll(Goog_tableName);
await _db.deleteAll(Category_tableName); await _db.deleteAll(Category_tableName);
await _db.deleteAll(Service_tableName); await _db.deleteAll(Service_tableName);
log.i('All tables cleaned'); log.i('All tables cleaned');
for (var key in goods.body.keys) {
Good row = Good.fromJson(goods.body[key]);
await _db.insert(Goog_tableName, row.toMap());
}
log.i('Inserted ${goods.body.length} to table $Goog_tableName');
for (var el in categories.body) {
Category row = Category.fromJson(el);
await _db.insert(Category_tableName, row.toMap());
}
log.i('Inserted ${categories.body.length} to table $Category_tableName');
for (var key in services.body.keys) { if (goods.body.isNotEmpty) {
Service row = Service.fromJson(services.body[key]); for (var key in goods.body.keys) {
await _db.insert(Service_tableName, row.toMap()); Good row = Good.fromJson(goods.body[key]);
await _db.insert(Goog_tableName, row.toMap());
}
log.i('Inserted ${goods.body.length} to table $Goog_tableName');
}
if (categories.body.isNotEmpty) {
for (var el in categories.body) {
Category row = Category.fromJson(el);
await _db.insert(Category_tableName, row.toMap());
}
log.i(
'Inserted ${categories.body.length} to table $Category_tableName');
} }
log.i('Inserted ${services.body.length} to table $Service_tableName');
if (services.body.isNotEmpty) {
for (var key in services.body.keys) {
Service row = Service.fromJson(services.body[key]);
await _db.insert(Service_tableName, row.toMap());
}
log.i('Inserted ${services.body?.length} to table $Service_tableName');
}
return true; return true;
} catch (e) { } catch (e, stack) {
print(e); log.e("load from server", e, stack);
return false; return false;
} }
} }

View File

@ -155,7 +155,7 @@ packages:
name: http name: http
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.1" version: "0.12.2"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:

View File

@ -17,7 +17,7 @@ dependencies:
logger: ^0.9.1 logger: ^0.9.1
get_it: ^4.0.2 get_it: ^4.0.2
equatable: ^1.2.2 equatable: ^1.2.2
http: ^0.12.1 http: ^0.12.2
sqflite: ^1.3.1 sqflite: ^1.3.1
path_provider: ^1.6.11 path_provider: ^1.6.11
google_fonts: ^1.1.0 google_fonts: ^1.1.0