error.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:flowy_logger/flowy_logger.dart';
  2. import 'package:flowy_sdk/protobuf/ffi_request.pb.dart';
  3. import 'package:flowy_sdk/protobuf/ffi_response.pb.dart';
  4. class FlowyError {
  5. late FFIStatusCode _statusCode;
  6. late String _error;
  7. FFIStatusCode get statusCode {
  8. return _statusCode;
  9. }
  10. String get error {
  11. return _error;
  12. }
  13. bool get has_error {
  14. return _statusCode != FFIStatusCode.Ok;
  15. }
  16. String toString() {
  17. return "$_statusCode: $_error";
  18. }
  19. FlowyError({required FFIStatusCode statusCode, required String error}) {
  20. _statusCode = statusCode;
  21. _error = error;
  22. }
  23. factory FlowyError.from(FFIResponse resp) {
  24. return FlowyError(statusCode: resp.code, error: resp.error);
  25. }
  26. factory FlowyError.fromError(String error) {
  27. return FlowyError(statusCode: FFIStatusCode.Err, error: error);
  28. }
  29. }
  30. class StackTraceError {
  31. Object error;
  32. StackTrace trace;
  33. StackTraceError(
  34. this.error,
  35. this.trace,
  36. );
  37. FlowyError toFlowyError() {
  38. Log.error('${error.runtimeType}\n');
  39. Log.error('Stack trace \n $trace');
  40. return FlowyError.fromError('${error.runtimeType}. Stack trace: $trace');
  41. }
  42. String toString() {
  43. return '${error.runtimeType}. Stack trace: $trace';
  44. }
  45. }
  46. FFIResponse error_response(FFIRequest request, StackTraceError error) {
  47. var response = FFIResponse();
  48. response.code = FFIStatusCode.Err;
  49. response.error = error.toString();
  50. return response;
  51. }