Skip to content

Instantly share code, notes, and snippets.

@locskot
Created March 8, 2022 11:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save locskot/5f05b50437608a720479508b5849e5af to your computer and use it in GitHub Desktop.
Save locskot/5f05b50437608a720479508b5849e5af to your computer and use it in GitHub Desktop.
import 'package:driver3/models/auth_token.dart';
import 'package:driver3/models/dispatcher.dart';
import 'package:driver3/models/driver_result.dart';
import 'package:driver3/models/error.dart';
import 'package:driver3/models/location_auth_token.dart';
import 'package:driver3/models/payment/payment.dart';
import 'package:driver3/models/payment/payment_statistic.dart';
import 'package:driver3/models/trip/trip.dart';
import 'package:driver3/models/trip/trips.dart';
class CommonResult<T> {
final T? data;
final IwayError? iwayError;
final bool socketException;
final bool serverException;
CommonResult._builder(CommonResultBuilder<T> builder)
: data = builder.data,
iwayError = builder.iwayError,
socketException = builder.socketException,
serverException = builder.serverException;
Trips? get trips => data as Trips?;
Trip? get trip => data as Trip?;
List<Payment>? get payments => data as List<Payment>?;
Payment get payment => (data as List<Payment>).first;
PaymentStatistic? get paymentStatistic => data as PaymentStatistic?;
Dispatcher? get dispatcher => data as Dispatcher?;
bool? get success => data as bool?;
AuthToken? get authToken => data as AuthToken?;
LocationAuthToken? get locationAuthToken => data as LocationAuthToken?;
Driver? get driver => data as Driver?;
bool get isList => data is List;
bool get isNotEmpty => isList && (data as List).isNotEmpty;
bool get isSuccessful => !serverException && !socketException && iwayError == null && data != null;
}
class CommonResultBuilder<T> {
T? data;
IwayError? iwayError;
bool socketException = false;
bool serverException = false;
CommonResult build() => CommonResult._builder(this);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment