request method

  1. @override
Future<TicketWeebi> request(
  1. TicketWeebi data
)
override

Implementation

@override
Future<TicketWeebi> request(TicketWeebi data) async {
  final dbStore = intMapStoreFactory.store('tickets');

  final restoredTicket = data.copyWith(
    status: true,
    statusUpdateDate: DateTime.now(),
  );

  // no need to use creationDate as filter, tickets made 1 after the other
  // which is good since sembast requires TimeStamp and not dates
  // only risk of id confusion regarding stock tickets
  // so adding ticketType as a filter criteria
  await dbStore.update(_db.db, restoredTicket.toMap(isProto: false),
      finder: Finder(
          filter: Filter.and([
        Filter.equals('id', restoredTicket.id),
        Filter.equals(
            'creationDate', restoredTicket.creationDate.toIso8601String())
      ])));
  //print('count $count');
  final snap = await dbStore.findFirst(_db.db,
      finder: Finder(
          filter: Filter.and([
        Filter.equals('id', restoredTicket.id),
        Filter.equals(
            'creationDate', restoredTicket.creationDate.toIso8601String())
      ])));
  if (snap == null) {
    throw 'erreur lors de la réactivation du ticket';
  } else {
    return TicketWeebi.fromMap(snap.value, isProto: false);
  }
}