瀏覽代碼

[rust]: extract workspace_infra from flowy_workspace

appflowy 3 年之前
父節點
當前提交
52ca87662b
共有 100 個文件被更改,包括 408 次插入404 次删除
  1. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pb.dart
  2. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pbenum.dart
  3. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pbjson.dart
  4. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pbserver.dart
  5. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pb.dart
  6. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pbenum.dart
  7. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pbjson.dart
  8. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pbserver.dart
  9. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pb.dart
  10. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pbenum.dart
  11. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pbjson.dart
  12. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pbserver.dart
  13. 5 1
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pb.dart
  14. 56 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pbenum.dart
  15. 36 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pbjson.dart
  16. 2 2
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pbserver.dart
  17. 14 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/protobuf.dart
  18. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pb.dart
  19. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pbenum.dart
  20. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pbjson.dart
  21. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pbserver.dart
  22. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pb.dart
  23. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pbenum.dart
  24. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pbjson.dart
  25. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pbserver.dart
  26. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pb.dart
  27. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pbenum.dart
  28. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pbjson.dart
  29. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pbserver.dart
  30. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pb.dart
  31. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pbenum.dart
  32. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pbjson.dart
  33. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pbserver.dart
  34. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pb.dart
  35. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pbenum.dart
  36. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pbjson.dart
  37. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pbserver.dart
  38. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pb.dart
  39. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pbenum.dart
  40. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pbjson.dart
  41. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pbserver.dart
  42. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pb.dart
  43. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pbenum.dart
  44. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pbjson.dart
  45. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pbserver.dart
  46. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pb.dart
  47. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pbenum.dart
  48. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pbjson.dart
  49. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pbserver.dart
  50. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pb.dart
  51. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pbenum.dart
  52. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pbjson.dart
  53. 0 0
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pbserver.dart
  54. 0 105
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_delete.pb.dart
  55. 0 30
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_delete.pbjson.dart
  56. 4 8
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/errors.pb.dart
  57. 0 45
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/errors.pbenum.dart
  58. 2 26
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/errors.pbjson.dart
  59. 0 13
      app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/protobuf.dart
  60. 1 1
      backend/Cargo.toml
  61. 0 1
      backend/src/application.rs
  62. 1 1
      backend/src/entities/workspace.rs
  63. 4 4
      backend/src/service/app/app.rs
  64. 20 20
      backend/src/service/app/router.rs
  65. 3 5
      backend/src/service/app/sql_builder.rs
  66. 1 1
      backend/src/service/trash/router.rs
  67. 1 1
      backend/src/service/trash/trash.rs
  68. 1 1
      backend/src/service/user/user_default.rs
  69. 2 2
      backend/src/service/view/router.rs
  70. 2 2
      backend/src/service/view/sql_builder.rs
  71. 4 4
      backend/src/service/view/view.rs
  72. 2 2
      backend/src/service/workspace/router.rs
  73. 3 6
      backend/src/service/workspace/sql_builder.rs
  74. 2 2
      backend/src/service/workspace/workspace.rs
  75. 1 0
      rust-lib/Cargo.toml
  76. 3 3
      rust-lib/flowy-derive/src/derive_cache/derive_cache.rs
  77. 17 0
      rust-lib/flowy-workspace-infra/Cargo.toml
  78. 3 0
      rust-lib/flowy-workspace-infra/Flowy.toml
  79. 9 13
      rust-lib/flowy-workspace-infra/src/entities/app/app_create.rs
  80. 5 6
      rust-lib/flowy-workspace-infra/src/entities/app/app_query.rs
  81. 7 19
      rust-lib/flowy-workspace-infra/src/entities/app/app_update.rs
  82. 6 0
      rust-lib/flowy-workspace-infra/src/entities/app/mod.rs
  83. 4 0
      rust-lib/flowy-workspace-infra/src/entities/mod.rs
  84. 2 0
      rust-lib/flowy-workspace-infra/src/entities/trash/mod.rs
  85. 0 0
      rust-lib/flowy-workspace-infra/src/entities/trash/trash_create.rs
  86. 7 0
      rust-lib/flowy-workspace-infra/src/entities/view/mod.rs
  87. 10 19
      rust-lib/flowy-workspace-infra/src/entities/view/view_create.rs
  88. 7 10
      rust-lib/flowy-workspace-infra/src/entities/view/view_query.rs
  89. 7 22
      rust-lib/flowy-workspace-infra/src/entities/view/view_update.rs
  90. 19 0
      rust-lib/flowy-workspace-infra/src/entities/workspace/mod.rs
  91. 5 4
      rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_create.rs
  92. 3 5
      rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_delete.rs
  93. 3 7
      rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_query.rs
  94. 8 12
      rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_update.rs
  95. 0 0
      rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_user_detail.rs
  96. 77 0
      rust-lib/flowy-workspace-infra/src/errors.rs
  97. 6 0
      rust-lib/flowy-workspace-infra/src/lib.rs
  98. 30 0
      rust-lib/flowy-workspace-infra/src/macros.rs
  99. 3 1
      rust-lib/flowy-workspace-infra/src/parser/app/app_color_style.rs
  100. 0 0
      rust-lib/flowy-workspace-infra/src/parser/app/app_desc.rs

+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_create.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_create.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_create.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_create.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_create.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_query.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_query.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_query.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_query.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_query.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_update.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_update.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_update.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_update.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/app_update.pbserver.dart


+ 5 - 1
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_delete.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pb.dart

@@ -1,7 +1,11 @@
 ///
 //  Generated code. Do not modify.
-//  source: app_delete.proto
+//  source: errors.proto
 //
 // @dart = 2.12
 // ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
 
+import 'dart:core' as $core;
+
+export 'errors.pbenum.dart';
+

+ 56 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pbenum.dart

@@ -0,0 +1,56 @@
+///
+//  Generated code. Do not modify.
+//  source: errors.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+
+// ignore_for_file: UNDEFINED_SHOWN_NAME
+import 'dart:core' as $core;
+import 'package:protobuf/protobuf.dart' as $pb;
+
+class ErrorCode extends $pb.ProtobufEnum {
+  static const ErrorCode WorkspaceNameInvalid = ErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameInvalid');
+  static const ErrorCode WorkspaceIdInvalid = ErrorCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceIdInvalid');
+  static const ErrorCode AppColorStyleInvalid = ErrorCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppColorStyleInvalid');
+  static const ErrorCode WorkspaceDescTooLong = ErrorCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceDescTooLong');
+  static const ErrorCode WorkspaceNameTooLong = ErrorCode._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameTooLong');
+  static const ErrorCode AppIdInvalid = ErrorCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppIdInvalid');
+  static const ErrorCode AppNameInvalid = ErrorCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppNameInvalid');
+  static const ErrorCode ViewNameInvalid = ErrorCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameInvalid');
+  static const ErrorCode ViewThumbnailInvalid = ErrorCode._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewThumbnailInvalid');
+  static const ErrorCode ViewIdInvalid = ErrorCode._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewIdInvalid');
+  static const ErrorCode ViewDescTooLong = ErrorCode._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDescTooLong');
+  static const ErrorCode ViewDataInvalid = ErrorCode._(24, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDataInvalid');
+  static const ErrorCode ViewNameTooLong = ErrorCode._(25, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameTooLong');
+  static const ErrorCode UserUnauthorized = ErrorCode._(100, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserUnauthorized');
+  static const ErrorCode WsConnectError = ErrorCode._(200, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WsConnectError');
+  static const ErrorCode InternalError = ErrorCode._(1000, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'InternalError');
+  static const ErrorCode RecordNotFound = ErrorCode._(1001, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'RecordNotFound');
+
+  static const $core.List<ErrorCode> values = <ErrorCode> [
+    WorkspaceNameInvalid,
+    WorkspaceIdInvalid,
+    AppColorStyleInvalid,
+    WorkspaceDescTooLong,
+    WorkspaceNameTooLong,
+    AppIdInvalid,
+    AppNameInvalid,
+    ViewNameInvalid,
+    ViewThumbnailInvalid,
+    ViewIdInvalid,
+    ViewDescTooLong,
+    ViewDataInvalid,
+    ViewNameTooLong,
+    UserUnauthorized,
+    WsConnectError,
+    InternalError,
+    RecordNotFound,
+  ];
+
+  static final $core.Map<$core.int, ErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values);
+  static ErrorCode? valueOf($core.int value) => _byValue[value];
+
+  const ErrorCode._($core.int v, $core.String n) : super(v, n);
+}
+

+ 36 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pbjson.dart

@@ -0,0 +1,36 @@
+///
+//  Generated code. Do not modify.
+//  source: errors.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+@$core.Deprecated('Use errorCodeDescriptor instead')
+const ErrorCode$json = const {
+  '1': 'ErrorCode',
+  '2': const [
+    const {'1': 'WorkspaceNameInvalid', '2': 0},
+    const {'1': 'WorkspaceIdInvalid', '2': 1},
+    const {'1': 'AppColorStyleInvalid', '2': 2},
+    const {'1': 'WorkspaceDescTooLong', '2': 3},
+    const {'1': 'WorkspaceNameTooLong', '2': 4},
+    const {'1': 'AppIdInvalid', '2': 10},
+    const {'1': 'AppNameInvalid', '2': 11},
+    const {'1': 'ViewNameInvalid', '2': 20},
+    const {'1': 'ViewThumbnailInvalid', '2': 21},
+    const {'1': 'ViewIdInvalid', '2': 22},
+    const {'1': 'ViewDescTooLong', '2': 23},
+    const {'1': 'ViewDataInvalid', '2': 24},
+    const {'1': 'ViewNameTooLong', '2': 25},
+    const {'1': 'UserUnauthorized', '2': 100},
+    const {'1': 'WsConnectError', '2': 200},
+    const {'1': 'InternalError', '2': 1000},
+    const {'1': 'RecordNotFound', '2': 1001},
+  ],
+};
+
+/// Descriptor for `ErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
+final $typed_data.Uint8List errorCodeDescriptor = $convert.base64Decode('CglFcnJvckNvZGUSGAoUV29ya3NwYWNlTmFtZUludmFsaWQQABIWChJXb3Jrc3BhY2VJZEludmFsaWQQARIYChRBcHBDb2xvclN0eWxlSW52YWxpZBACEhgKFFdvcmtzcGFjZURlc2NUb29Mb25nEAMSGAoUV29ya3NwYWNlTmFtZVRvb0xvbmcQBBIQCgxBcHBJZEludmFsaWQQChISCg5BcHBOYW1lSW52YWxpZBALEhMKD1ZpZXdOYW1lSW52YWxpZBAUEhgKFFZpZXdUaHVtYm5haWxJbnZhbGlkEBUSEQoNVmlld0lkSW52YWxpZBAWEhMKD1ZpZXdEZXNjVG9vTG9uZxAXEhMKD1ZpZXdEYXRhSW52YWxpZBAYEhMKD1ZpZXdOYW1lVG9vTG9uZxAZEhQKEFVzZXJVbmF1dGhvcml6ZWQQZBITCg5Xc0Nvbm5lY3RFcnJvchDIARISCg1JbnRlcm5hbEVycm9yEOgHEhMKDlJlY29yZE5vdEZvdW5kEOkH');

+ 2 - 2
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_delete.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/errors.pbserver.dart

@@ -1,9 +1,9 @@
 ///
 //  Generated code. Do not modify.
-//  source: app_delete.proto
+//  source: errors.proto
 //
 // @dart = 2.12
 // ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
 
-export 'app_delete.pb.dart';
+export 'errors.pb.dart';
 

+ 14 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/protobuf.dart

@@ -0,0 +1,14 @@
+// Auto-generated, do not edit 
+export './view_update.pb.dart';
+export './app_query.pb.dart';
+export './workspace_delete.pb.dart';
+export './errors.pb.dart';
+export './workspace_update.pb.dart';
+export './app_create.pb.dart';
+export './workspace_query.pb.dart';
+export './view_create.pb.dart';
+export './workspace_user_detail.pb.dart';
+export './workspace_create.pb.dart';
+export './app_update.pb.dart';
+export './view_query.pb.dart';
+export './trash_create.pb.dart';

+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/trash_create.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/trash_create.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/trash_create.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/trash_create.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/trash_create.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_create.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_create.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_create.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_create.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_create.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_query.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_query.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_query.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_query.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_query.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_update.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_update.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_update.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/view_update.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/view_update.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_create.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_create.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_create.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_create.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_create.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_delete.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_delete.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_delete.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_delete.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_delete.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_query.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_query.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_query.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_query.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_query.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_update.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_update.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_update.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_update.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_update.pbserver.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_user_detail.pb.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pb.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_user_detail.pbenum.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pbenum.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_user_detail.pbjson.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pbjson.dart


+ 0 - 0
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/workspace_user_detail.pbserver.dart → app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace-infra/workspace_user_detail.pbserver.dart


+ 0 - 105
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_delete.pb.dart

@@ -1,105 +0,0 @@
-///
-//  Generated code. Do not modify.
-//  source: app_delete.proto
-//
-// @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
-
-import 'dart:core' as $core;
-
-import 'package:protobuf/protobuf.dart' as $pb;
-
-class DeleteAppRequest extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DeleteAppRequest', createEmptyInstance: create)
-    ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'appId')
-    ..hasRequiredFields = false
-  ;
-
-  DeleteAppRequest._() : super();
-  factory DeleteAppRequest({
-    $core.String? appId,
-  }) {
-    final _result = create();
-    if (appId != null) {
-      _result.appId = appId;
-    }
-    return _result;
-  }
-  factory DeleteAppRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
-  factory DeleteAppRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
-  @$core.Deprecated(
-  'Using this can add significant overhead to your binary. '
-  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
-  'Will be removed in next major version')
-  DeleteAppRequest clone() => DeleteAppRequest()..mergeFromMessage(this);
-  @$core.Deprecated(
-  'Using this can add significant overhead to your binary. '
-  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
-  'Will be removed in next major version')
-  DeleteAppRequest copyWith(void Function(DeleteAppRequest) updates) => super.copyWith((message) => updates(message as DeleteAppRequest)) as DeleteAppRequest; // ignore: deprecated_member_use
-  $pb.BuilderInfo get info_ => _i;
-  @$core.pragma('dart2js:noInline')
-  static DeleteAppRequest create() => DeleteAppRequest._();
-  DeleteAppRequest createEmptyInstance() => create();
-  static $pb.PbList<DeleteAppRequest> createRepeated() => $pb.PbList<DeleteAppRequest>();
-  @$core.pragma('dart2js:noInline')
-  static DeleteAppRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DeleteAppRequest>(create);
-  static DeleteAppRequest? _defaultInstance;
-
-  @$pb.TagNumber(1)
-  $core.String get appId => $_getSZ(0);
-  @$pb.TagNumber(1)
-  set appId($core.String v) { $_setString(0, v); }
-  @$pb.TagNumber(1)
-  $core.bool hasAppId() => $_has(0);
-  @$pb.TagNumber(1)
-  void clearAppId() => clearField(1);
-}
-
-class DeleteAppParams extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DeleteAppParams', createEmptyInstance: create)
-    ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'appId')
-    ..hasRequiredFields = false
-  ;
-
-  DeleteAppParams._() : super();
-  factory DeleteAppParams({
-    $core.String? appId,
-  }) {
-    final _result = create();
-    if (appId != null) {
-      _result.appId = appId;
-    }
-    return _result;
-  }
-  factory DeleteAppParams.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
-  factory DeleteAppParams.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
-  @$core.Deprecated(
-  'Using this can add significant overhead to your binary. '
-  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
-  'Will be removed in next major version')
-  DeleteAppParams clone() => DeleteAppParams()..mergeFromMessage(this);
-  @$core.Deprecated(
-  'Using this can add significant overhead to your binary. '
-  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
-  'Will be removed in next major version')
-  DeleteAppParams copyWith(void Function(DeleteAppParams) updates) => super.copyWith((message) => updates(message as DeleteAppParams)) as DeleteAppParams; // ignore: deprecated_member_use
-  $pb.BuilderInfo get info_ => _i;
-  @$core.pragma('dart2js:noInline')
-  static DeleteAppParams create() => DeleteAppParams._();
-  DeleteAppParams createEmptyInstance() => create();
-  static $pb.PbList<DeleteAppParams> createRepeated() => $pb.PbList<DeleteAppParams>();
-  @$core.pragma('dart2js:noInline')
-  static DeleteAppParams getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DeleteAppParams>(create);
-  static DeleteAppParams? _defaultInstance;
-
-  @$pb.TagNumber(1)
-  $core.String get appId => $_getSZ(0);
-  @$pb.TagNumber(1)
-  set appId($core.String v) { $_setString(0, v); }
-  @$pb.TagNumber(1)
-  $core.bool hasAppId() => $_has(0);
-  @$pb.TagNumber(1)
-  void clearAppId() => clearField(1);
-}
-

+ 0 - 30
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/app_delete.pbjson.dart

@@ -1,30 +0,0 @@
-///
-//  Generated code. Do not modify.
-//  source: app_delete.proto
-//
-// @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
-
-import 'dart:core' as $core;
-import 'dart:convert' as $convert;
-import 'dart:typed_data' as $typed_data;
-@$core.Deprecated('Use deleteAppRequestDescriptor instead')
-const DeleteAppRequest$json = const {
-  '1': 'DeleteAppRequest',
-  '2': const [
-    const {'1': 'app_id', '3': 1, '4': 1, '5': 9, '10': 'appId'},
-  ],
-};
-
-/// Descriptor for `DeleteAppRequest`. Decode as a `google.protobuf.DescriptorProto`.
-final $typed_data.Uint8List deleteAppRequestDescriptor = $convert.base64Decode('ChBEZWxldGVBcHBSZXF1ZXN0EhUKBmFwcF9pZBgBIAEoCVIFYXBwSWQ=');
-@$core.Deprecated('Use deleteAppParamsDescriptor instead')
-const DeleteAppParams$json = const {
-  '1': 'DeleteAppParams',
-  '2': const [
-    const {'1': 'app_id', '3': 1, '4': 1, '5': 9, '10': 'appId'},
-  ],
-};
-
-/// Descriptor for `DeleteAppParams`. Decode as a `google.protobuf.DescriptorProto`.
-final $typed_data.Uint8List deleteAppParamsDescriptor = $convert.base64Decode('Cg9EZWxldGVBcHBQYXJhbXMSFQoGYXBwX2lkGAEgASgJUgVhcHBJZA==');

+ 4 - 8
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/errors.pb.dart

@@ -9,20 +9,16 @@ import 'dart:core' as $core;
 
 import 'package:protobuf/protobuf.dart' as $pb;
 
-import 'errors.pbenum.dart';
-
-export 'errors.pbenum.dart';
-
 class WorkspaceError extends $pb.GeneratedMessage {
   static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'WorkspaceError', createEmptyInstance: create)
-    ..e<ErrorCode>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.OE, defaultOrMaker: ErrorCode.WorkspaceNameInvalid, valueOf: ErrorCode.valueOf, enumValues: ErrorCode.values)
+    ..a<$core.int>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.O3)
     ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'msg')
     ..hasRequiredFields = false
   ;
 
   WorkspaceError._() : super();
   factory WorkspaceError({
-    ErrorCode? code,
+    $core.int? code,
     $core.String? msg,
   }) {
     final _result = create();
@@ -56,9 +52,9 @@ class WorkspaceError extends $pb.GeneratedMessage {
   static WorkspaceError? _defaultInstance;
 
   @$pb.TagNumber(1)
-  ErrorCode get code => $_getN(0);
+  $core.int get code => $_getIZ(0);
   @$pb.TagNumber(1)
-  set code(ErrorCode v) { setField(1, v); }
+  set code($core.int v) { $_setSignedInt32(0, v); }
   @$pb.TagNumber(1)
   $core.bool hasCode() => $_has(0);
   @$pb.TagNumber(1)

+ 0 - 45
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/errors.pbenum.dart

@@ -5,48 +5,3 @@
 // @dart = 2.12
 // ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
 
-// ignore_for_file: UNDEFINED_SHOWN_NAME
-import 'dart:core' as $core;
-import 'package:protobuf/protobuf.dart' as $pb;
-
-class ErrorCode extends $pb.ProtobufEnum {
-  static const ErrorCode WorkspaceNameInvalid = ErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameInvalid');
-  static const ErrorCode WorkspaceIdInvalid = ErrorCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceIdInvalid');
-  static const ErrorCode AppColorStyleInvalid = ErrorCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppColorStyleInvalid');
-  static const ErrorCode WorkspaceDescInvalid = ErrorCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceDescInvalid');
-  static const ErrorCode AppIdInvalid = ErrorCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppIdInvalid');
-  static const ErrorCode AppNameInvalid = ErrorCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppNameInvalid');
-  static const ErrorCode ViewNameInvalid = ErrorCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameInvalid');
-  static const ErrorCode ViewThumbnailInvalid = ErrorCode._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewThumbnailInvalid');
-  static const ErrorCode ViewIdInvalid = ErrorCode._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewIdInvalid');
-  static const ErrorCode ViewDescInvalid = ErrorCode._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDescInvalid');
-  static const ErrorCode ViewDataInvalid = ErrorCode._(24, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDataInvalid');
-  static const ErrorCode UserUnauthorized = ErrorCode._(100, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserUnauthorized');
-  static const ErrorCode WsConnectError = ErrorCode._(200, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WsConnectError');
-  static const ErrorCode InternalError = ErrorCode._(1000, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'InternalError');
-  static const ErrorCode RecordNotFound = ErrorCode._(1001, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'RecordNotFound');
-
-  static const $core.List<ErrorCode> values = <ErrorCode> [
-    WorkspaceNameInvalid,
-    WorkspaceIdInvalid,
-    AppColorStyleInvalid,
-    WorkspaceDescInvalid,
-    AppIdInvalid,
-    AppNameInvalid,
-    ViewNameInvalid,
-    ViewThumbnailInvalid,
-    ViewIdInvalid,
-    ViewDescInvalid,
-    ViewDataInvalid,
-    UserUnauthorized,
-    WsConnectError,
-    InternalError,
-    RecordNotFound,
-  ];
-
-  static final $core.Map<$core.int, ErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values);
-  static ErrorCode? valueOf($core.int value) => _byValue[value];
-
-  const ErrorCode._($core.int v, $core.String n) : super(v, n);
-}
-

+ 2 - 26
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/errors.pbjson.dart

@@ -8,38 +8,14 @@
 import 'dart:core' as $core;
 import 'dart:convert' as $convert;
 import 'dart:typed_data' as $typed_data;
-@$core.Deprecated('Use errorCodeDescriptor instead')
-const ErrorCode$json = const {
-  '1': 'ErrorCode',
-  '2': const [
-    const {'1': 'WorkspaceNameInvalid', '2': 0},
-    const {'1': 'WorkspaceIdInvalid', '2': 1},
-    const {'1': 'AppColorStyleInvalid', '2': 2},
-    const {'1': 'WorkspaceDescInvalid', '2': 3},
-    const {'1': 'AppIdInvalid', '2': 10},
-    const {'1': 'AppNameInvalid', '2': 11},
-    const {'1': 'ViewNameInvalid', '2': 20},
-    const {'1': 'ViewThumbnailInvalid', '2': 21},
-    const {'1': 'ViewIdInvalid', '2': 22},
-    const {'1': 'ViewDescInvalid', '2': 23},
-    const {'1': 'ViewDataInvalid', '2': 24},
-    const {'1': 'UserUnauthorized', '2': 100},
-    const {'1': 'WsConnectError', '2': 200},
-    const {'1': 'InternalError', '2': 1000},
-    const {'1': 'RecordNotFound', '2': 1001},
-  ],
-};
-
-/// Descriptor for `ErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
-final $typed_data.Uint8List errorCodeDescriptor = $convert.base64Decode('CglFcnJvckNvZGUSGAoUV29ya3NwYWNlTmFtZUludmFsaWQQABIWChJXb3Jrc3BhY2VJZEludmFsaWQQARIYChRBcHBDb2xvclN0eWxlSW52YWxpZBACEhgKFFdvcmtzcGFjZURlc2NJbnZhbGlkEAMSEAoMQXBwSWRJbnZhbGlkEAoSEgoOQXBwTmFtZUludmFsaWQQCxITCg9WaWV3TmFtZUludmFsaWQQFBIYChRWaWV3VGh1bWJuYWlsSW52YWxpZBAVEhEKDVZpZXdJZEludmFsaWQQFhITCg9WaWV3RGVzY0ludmFsaWQQFxITCg9WaWV3RGF0YUludmFsaWQQGBIUChBVc2VyVW5hdXRob3JpemVkEGQSEwoOV3NDb25uZWN0RXJyb3IQyAESEgoNSW50ZXJuYWxFcnJvchDoBxITCg5SZWNvcmROb3RGb3VuZBDpBw==');
 @$core.Deprecated('Use workspaceErrorDescriptor instead')
 const WorkspaceError$json = const {
   '1': 'WorkspaceError',
   '2': const [
-    const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.ErrorCode', '10': 'code'},
+    const {'1': 'code', '3': 1, '4': 1, '5': 5, '10': 'code'},
     const {'1': 'msg', '3': 2, '4': 1, '5': 9, '10': 'msg'},
   ],
 };
 
 /// Descriptor for `WorkspaceError`. Decode as a `google.protobuf.DescriptorProto`.
-final $typed_data.Uint8List workspaceErrorDescriptor = $convert.base64Decode('Cg5Xb3Jrc3BhY2VFcnJvchIeCgRjb2RlGAEgASgOMgouRXJyb3JDb2RlUgRjb2RlEhAKA21zZxgCIAEoCVIDbXNn');
+final $typed_data.Uint8List workspaceErrorDescriptor = $convert.base64Decode('Cg5Xb3Jrc3BhY2VFcnJvchISCgRjb2RlGAEgASgFUgRjb2RlEhAKA21zZxgCIAEoCVIDbXNn');

+ 0 - 13
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace/protobuf.dart

@@ -1,17 +1,4 @@
 // Auto-generated, do not edit 
-export './view_update.pb.dart';
-export './app_query.pb.dart';
-export './workspace_delete.pb.dart';
 export './observable.pb.dart';
 export './errors.pb.dart';
-export './workspace_update.pb.dart';
-export './app_create.pb.dart';
-export './workspace_query.pb.dart';
 export './event.pb.dart';
-export './view_create.pb.dart';
-export './workspace_user_detail.pb.dart';
-export './workspace_create.pb.dart';
-export './app_update.pb.dart';
-export './view_query.pb.dart';
-export './trash_create.pb.dart';
-export './app_delete.pb.dart';

+ 1 - 1
backend/Cargo.toml

@@ -61,7 +61,7 @@ byteorder = {version = "1.3.4"}
 async-stream = "0.3.2"
 
 flowy-user-infra = { path = "../rust-lib/flowy-user-infra" }
-flowy-workspace = { path = "../rust-lib/flowy-workspace", default-features = false, features = ["backend_service"]}
+flowy-workspace-infra = { path = "../rust-lib/flowy-workspace-infra"}
 flowy-document = { path = "../rust-lib/flowy-document" }
 flowy-ws = { path = "../rust-lib/flowy-ws" }
 flowy-ot = { path = "../rust-lib/flowy-ot" }

+ 0 - 1
backend/src/application.rs

@@ -104,7 +104,6 @@ fn user_scope() -> Scope {
         )
         .service(web::resource("/app")
             .route(web::post().to(app::create_handler))
-            .route(web::delete().to(app::delete_handler))
             .route(web::get().to(app::read_handler))
             .route(web::patch().to(app::update_handler))
         )

+ 1 - 1
backend/src/entities/workspace.rs

@@ -1,5 +1,5 @@
 use chrono::Utc;
-use flowy_workspace::backend_service::{App, RepeatedView, Trash, TrashType, View, ViewType};
+use flowy_workspace_infra::protobuf::{App, RepeatedView, Trash, TrashType, View, ViewType};
 use protobuf::ProtobufEnum;
 
 pub(crate) const WORKSPACE_TABLE: &'static str = "workspace_table";

+ 4 - 4
backend/src/service/app/app.rs

@@ -7,10 +7,10 @@ use crate::{
 use crate::service::trash::read_trash_ids;
 use chrono::Utc;
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::{
-    entities::{
-        app::parser::{AppDesc, AppName},
-        workspace::parser::WorkspaceId,
+use flowy_workspace_infra::{
+    parser::{
+        app::{AppDesc, AppName},
+        workspace::WorkspaceId,
     },
     protobuf::{App, CreateAppParams, RepeatedView},
 };

+ 20 - 20
backend/src/service/app/router.rs

@@ -3,13 +3,13 @@ use actix_web::{
     HttpResponse,
 };
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::backend_service::{AppIdentifier, CreateAppParams, DeleteAppParams, UpdateAppParams};
+use flowy_workspace_infra::protobuf::{AppIdentifier, CreateAppParams, UpdateAppParams};
 use protobuf::Message;
 use sqlx::PgPool;
 
 use crate::service::{
     app::{
-        app::{create_app, delete_app, read_app, update_app},
+        app::{create_app, read_app, update_app},
         sql_builder::check_app_id,
     },
     user::LoggedUser,
@@ -17,7 +17,7 @@ use crate::service::{
 };
 use anyhow::Context;
 use flowy_net::response::FlowyResponse;
-use flowy_workspace::entities::app::parser::{AppDesc, AppName};
+use flowy_workspace_infra::parser::app::{AppDesc, AppName};
 
 pub async fn create_handler(
     payload: Payload,
@@ -92,20 +92,20 @@ pub async fn update_handler(payload: Payload, pool: Data<PgPool>) -> Result<Http
     Ok(FlowyResponse::success().into())
 }
 
-pub async fn delete_handler(payload: Payload, pool: Data<PgPool>) -> Result<HttpResponse, ServerError> {
-    let params: DeleteAppParams = parse_from_payload(payload).await?;
-    let app_id = check_app_id(params.app_id.to_owned())?;
-    let mut transaction = pool
-        .begin()
-        .await
-        .context("Failed to acquire a Postgres connection to delete app")?;
-
-    let _ = delete_app(&mut transaction, app_id).await?;
-
-    transaction
-        .commit()
-        .await
-        .context("Failed to commit SQL transaction to delete app.")?;
-
-    Ok(FlowyResponse::success().into())
-}
+// pub async fn delete_handler(payload: Payload, pool: Data<PgPool>) ->
+// Result<HttpResponse, ServerError> {     let params: DeleteAppParams =
+// parse_from_payload(payload).await?;     let app_id =
+// check_app_id(params.app_id.to_owned())?;     let mut transaction = pool
+//         .begin()
+//         .await
+//         .context("Failed to acquire a Postgres connection to delete app")?;
+//
+//     let _ = delete_app(&mut transaction, app_id).await?;
+//
+//     transaction
+//         .commit()
+//         .await
+//         .context("Failed to commit SQL transaction to delete app.")?;
+//
+//     Ok(FlowyResponse::success().into())
+// }

+ 3 - 5
backend/src/service/app/sql_builder.rs

@@ -4,8 +4,8 @@ use crate::{
 };
 use chrono::Utc;
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::{
-    entities::app::parser::AppId,
+use flowy_workspace_infra::{
+    parser::app::AppId,
     protobuf::{App, ColorStyle},
 };
 use protobuf::Message;
@@ -54,9 +54,7 @@ impl NewAppSqlBuilder {
     }
 
     pub fn color_style(mut self, color_style: ColorStyle) -> Self {
-        self.table.color_style = color_style
-            .write_to_bytes()
-            .unwrap_or(default_color_style());
+        self.table.color_style = color_style.write_to_bytes().unwrap_or(default_color_style());
         self
     }
 

+ 1 - 1
backend/src/service/trash/router.rs

@@ -13,7 +13,7 @@ use flowy_net::{
     errors::{invalid_params, ServerError},
     response::FlowyResponse,
 };
-use flowy_workspace::{entities::trash::parser::TrashId, protobuf::TrashIdentifiers};
+use flowy_workspace_infra::{parser::trash::TrashId, protobuf::TrashIdentifiers};
 use sqlx::PgPool;
 use uuid::Uuid;
 

+ 1 - 1
backend/src/service/trash/trash.rs

@@ -9,7 +9,7 @@ use crate::{
 };
 use ::protobuf::ProtobufEnum;
 use flowy_net::errors::ServerError;
-use flowy_workspace::backend_service::{RepeatedTrash, Trash, TrashType};
+use flowy_workspace_infra::protobuf::{RepeatedTrash, Trash, TrashType};
 use sqlx::{postgres::PgArguments, Postgres, Row};
 use uuid::Uuid;
 

+ 1 - 1
backend/src/service/user/user_default.rs

@@ -9,7 +9,7 @@ use crate::{
 
 use flowy_document::services::doc::doc_initial_string;
 use flowy_net::errors::ServerError;
-use flowy_workspace::backend_service::{App, CreateViewParams, View, ViewType, Workspace};
+use flowy_workspace_infra::protobuf::{App, CreateViewParams, View, ViewType, Workspace};
 
 pub async fn create_default_workspace(
     transaction: &mut DBTransaction<'_>,

+ 2 - 2
backend/src/service/view/router.rs

@@ -13,8 +13,8 @@ use flowy_net::{
     errors::{invalid_params, ServerError},
     response::FlowyResponse,
 };
-use flowy_workspace::{
-    entities::view::parser::{ViewDesc, ViewName, ViewThumbnail},
+use flowy_workspace_infra::{
+    parser::view::{ViewDesc, ViewName, ViewThumbnail},
     protobuf::{CreateViewParams, QueryViewRequest, UpdateViewParams, ViewIdentifier},
 };
 use sqlx::PgPool;

+ 2 - 2
backend/src/service/view/sql_builder.rs

@@ -4,8 +4,8 @@ use crate::{
 };
 use chrono::Utc;
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::{
-    entities::view::parser::ViewId,
+use flowy_workspace_infra::{
+    parser::view::ViewId,
     protobuf::{View, ViewType},
 };
 use protobuf::ProtobufEnum;

+ 4 - 4
backend/src/service/view/view.rs

@@ -11,10 +11,10 @@ use crate::{
 use chrono::Utc;
 use flowy_document::protobuf::CreateDocParams;
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::{
-    entities::{
-        app::parser::AppId,
-        view::parser::{ViewDesc, ViewName, ViewThumbnail},
+use flowy_workspace_infra::{
+    parser::{
+        app::AppId,
+        view::{ViewDesc, ViewName, ViewThumbnail},
     },
     protobuf::{CreateViewParams, RepeatedView, View},
 };

+ 2 - 2
backend/src/service/workspace/router.rs

@@ -18,8 +18,8 @@ use flowy_net::{
     errors::{invalid_params, ServerError},
     response::FlowyResponse,
 };
-use flowy_workspace::{
-    entities::workspace::parser::{WorkspaceDesc, WorkspaceName},
+use flowy_workspace_infra::{
+    parser::workspace::{WorkspaceDesc, WorkspaceName},
     protobuf::{CreateWorkspaceParams, DeleteWorkspaceParams, QueryWorkspaceParams, UpdateWorkspaceParams},
 };
 use sqlx::PgPool;

+ 3 - 6
backend/src/service/workspace/sql_builder.rs

@@ -4,8 +4,8 @@ use crate::{
 };
 use chrono::Utc;
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::{
-    entities::workspace::parser::WorkspaceId,
+use flowy_workspace_infra::{
+    parser::workspace::WorkspaceId,
     protobuf::{RepeatedApp, Workspace},
 };
 use sqlx::postgres::PgArguments;
@@ -58,10 +58,7 @@ impl NewWorkspaceBuilder {
     }
 }
 
-pub(crate) fn make_workspace_from_table(
-    table: WorkspaceTable,
-    apps: Option<RepeatedApp>,
-) -> Workspace {
+pub(crate) fn make_workspace_from_table(table: WorkspaceTable, apps: Option<RepeatedApp>) -> Workspace {
     let mut workspace = Workspace {
         id: table.id.to_string(),
         name: table.name,

+ 2 - 2
backend/src/service/workspace/workspace.rs

@@ -6,8 +6,8 @@ use crate::{
 };
 use anyhow::Context;
 use flowy_net::errors::{invalid_params, ServerError};
-use flowy_workspace::{
-    entities::workspace::parser::WorkspaceId,
+use flowy_workspace_infra::{
+    parser::workspace::WorkspaceId,
     protobuf::{RepeatedApp, RepeatedWorkspace, Workspace},
 };
 use sqlx::{postgres::PgArguments, Postgres};

+ 1 - 0
rust-lib/Cargo.toml

@@ -13,6 +13,7 @@ members = [
   "flowy-database",
   "flowy-infra",
   "flowy-workspace",
+  "flowy-workspace-infra",
   "flowy-dart-notify",
   "flowy-document",
   "flowy-ot",

+ 3 - 3
rust-lib/flowy-derive/src/derive_cache/derive_cache.rs

@@ -15,8 +15,7 @@ pub fn category_from_str(type_str: &str) -> TypeCategory {
         "HashMap" => TypeCategory::Map,
         "u8" => TypeCategory::Bytes,
         "String" => TypeCategory::Str,
-        "KeyValue"
-        | "QueryAppRequest"
+        "QueryAppRequest"
         | "AppIdentifier"
         | "CreateAppRequest"
         | "ColorStyle"
@@ -49,6 +48,7 @@ pub fn category_from_str(type_str: &str) -> TypeCategory {
         | "CreateViewParams"
         | "View"
         | "RepeatedView"
+        | "KeyValue"
         | "WorkspaceError"
         | "WsError"
         | "WsMessage"
@@ -80,8 +80,8 @@ pub fn category_from_str(type_str: &str) -> TypeCategory {
         => TypeCategory::Protobuf,
         "TrashType"
         | "ViewType"
-        | "WorkspaceEvent"
         | "ErrorCode"
+        | "WorkspaceEvent"
         | "WorkspaceNotification"
         | "WsModule"
         | "RevType"

+ 17 - 0
rust-lib/flowy-workspace-infra/Cargo.toml

@@ -0,0 +1,17 @@
+[package]
+name = "flowy-workspace-infra"
+version = "0.1.0"
+edition = "2018"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+flowy-derive = { path = "../flowy-derive" }
+protobuf = {version = "2.18.0"}
+bytes = "1.0"
+unicode-segmentation = "1.7.1"
+strum = "0.21"
+strum_macros = "0.21"
+derive_more = {version = "0.99", features = ["display"]}
+log = "0.4.14"
+flowy-document = { path = "../flowy-document" }

+ 3 - 0
rust-lib/flowy-workspace-infra/Flowy.toml

@@ -0,0 +1,3 @@
+
+proto_crates = ["src/entities", "src/errors.rs"]
+event_files = []

+ 9 - 13
rust-lib/flowy-workspace/src/entities/app/app_create.rs → rust-lib/flowy-workspace-infra/src/entities/app/app_create.rs

@@ -1,13 +1,12 @@
 use crate::{
-    entities::{
-        app::parser::{AppColorStyle, AppName},
-        view::RepeatedView,
-        workspace::parser::WorkspaceId,
-    },
+    entities::view::RepeatedView,
     errors::*,
     impl_def_and_def_mut,
+    parser::{
+        app::{AppColorStyle, AppName},
+        workspace::WorkspaceId,
+    },
 };
-
 use flowy_derive::ProtoBuf;
 use std::convert::TryInto;
 
@@ -48,15 +47,12 @@ pub struct CreateAppParams {
 }
 
 impl TryInto<CreateAppParams> for CreateAppRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<CreateAppParams, Self::Error> {
-        let name = AppName::parse(self.name).map_err(|e| WorkspaceError::app_name().context(e))?;
-
-        let id = WorkspaceId::parse(self.workspace_id).map_err(|e| WorkspaceError::workspace_id().context(e))?;
-
-        let color_style = AppColorStyle::parse(self.color_style.theme_color.clone())
-            .map_err(|e| WorkspaceError::color_style().context(e))?;
+        let name = AppName::parse(self.name)?;
+        let id = WorkspaceId::parse(self.workspace_id)?;
+        let color_style = AppColorStyle::parse(self.color_style.theme_color.clone())?;
 
         Ok(CreateAppParams {
             workspace_id: id.0,

+ 5 - 6
rust-lib/flowy-workspace/src/entities/app/app_query.rs → rust-lib/flowy-workspace-infra/src/entities/app/app_query.rs

@@ -1,4 +1,4 @@
-use crate::{entities::app::parser::AppId, errors::*};
+use crate::{errors::ErrorCode, parser::app::AppId};
 use flowy_derive::ProtoBuf;
 use std::convert::TryInto;
 
@@ -23,18 +23,17 @@ impl AppIdentifier {
 }
 
 impl TryInto<AppIdentifier> for QueryAppRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<AppIdentifier, Self::Error> {
         debug_assert!(self.app_ids.len() == 1);
         if self.app_ids.len() != 1 {
-            return Err(WorkspaceError::invalid_view_id().context("The len of app_ids should be equal to 1"));
+            log::error!("The len of app_ids should be equal to 1");
+            return Err(ErrorCode::AppIdInvalid);
         }
 
         let app_id = self.app_ids.first().unwrap().clone();
-        let app_id = AppId::parse(app_id)
-            .map_err(|e| WorkspaceError::invalid_app_id().context(e))?
-            .0;
+        let app_id = AppId::parse(app_id)?.0;
         Ok(AppIdentifier { app_id })
     }
 }

+ 7 - 19
rust-lib/flowy-workspace/src/entities/app/app_update.rs → rust-lib/flowy-workspace-infra/src/entities/app/app_update.rs

@@ -1,9 +1,7 @@
 use crate::{
-    entities::app::{
-        parser::{AppColorStyle, AppId, AppName},
-        ColorStyle,
-    },
-    errors::WorkspaceError,
+    entities::app::ColorStyle,
+    errors::ErrorCode,
+    parser::app::{AppColorStyle, AppId, AppName},
 };
 use flowy_derive::ProtoBuf;
 use std::convert::TryInto;
@@ -69,29 +67,19 @@ impl UpdateAppParams {
 }
 
 impl TryInto<UpdateAppParams> for UpdateAppRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<UpdateAppParams, Self::Error> {
-        let app_id = AppId::parse(self.app_id)
-            .map_err(|e| WorkspaceError::invalid_app_id().context(e))?
-            .0;
+        let app_id = AppId::parse(self.app_id)?.0;
 
         let name = match self.name {
             None => None,
-            Some(name) => Some(
-                AppName::parse(name)
-                    .map_err(|e| WorkspaceError::workspace_name().context(e))?
-                    .0,
-            ),
+            Some(name) => Some(AppName::parse(name)?.0),
         };
 
         let color_style = match self.color_style {
             None => None,
-            Some(color_style) => Some(
-                AppColorStyle::parse(color_style.theme_color.clone())
-                    .map_err(|e| WorkspaceError::color_style().context(e))?
-                    .into(),
-            ),
+            Some(color_style) => Some(AppColorStyle::parse(color_style.theme_color.clone())?.into()),
         };
 
         Ok(UpdateAppParams {

+ 6 - 0
rust-lib/flowy-workspace-infra/src/entities/app/mod.rs

@@ -0,0 +1,6 @@
+mod app_create;
+mod app_query;
+mod app_update;
+pub use app_create::*;
+pub use app_query::*;
+pub use app_update::*;

+ 4 - 0
rust-lib/flowy-workspace-infra/src/entities/mod.rs

@@ -0,0 +1,4 @@
+pub mod app;
+pub mod trash;
+pub mod view;
+pub mod workspace;

+ 2 - 0
rust-lib/flowy-workspace-infra/src/entities/trash/mod.rs

@@ -0,0 +1,2 @@
+mod trash_create;
+pub use trash_create::*;

+ 0 - 0
rust-lib/flowy-workspace/src/entities/trash/trash_create.rs → rust-lib/flowy-workspace-infra/src/entities/trash/trash_create.rs


+ 7 - 0
rust-lib/flowy-workspace-infra/src/entities/view/mod.rs

@@ -0,0 +1,7 @@
+pub use view_create::*;
+pub use view_query::*;
+pub use view_update::*;
+
+mod view_create;
+mod view_query;
+mod view_update;

+ 10 - 19
rust-lib/flowy-workspace/src/entities/view/view_create.rs → rust-lib/flowy-workspace-infra/src/entities/view/view_create.rs

@@ -1,11 +1,11 @@
 use crate::{
-    entities::{
-        app::parser::AppId,
-        trash::{Trash, TrashType},
-        view::parser::*,
-    },
-    errors::WorkspaceError,
+    entities::trash::{Trash, TrashType},
+    errors::ErrorCode,
     impl_def_and_def_mut,
+    parser::{
+        app::AppId,
+        view::{ViewName, ViewThumbnail},
+    },
 };
 use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
 use flowy_document::services::doc::doc_initial_string;
@@ -87,24 +87,15 @@ impl CreateViewParams {
 }
 
 impl TryInto<CreateViewParams> for CreateViewRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<CreateViewParams, Self::Error> {
-        let name = ViewName::parse(self.name)
-            .map_err(|e| WorkspaceError::view_name().context(e))?
-            .0;
-
-        let belong_to_id = AppId::parse(self.belong_to_id)
-            .map_err(|e| WorkspaceError::invalid_app_id().context(e))?
-            .0;
+        let name = ViewName::parse(self.name)?.0;
+        let belong_to_id = AppId::parse(self.belong_to_id)?.0;
 
         let thumbnail = match self.thumbnail {
             None => "".to_string(),
-            Some(thumbnail) => {
-                ViewThumbnail::parse(thumbnail)
-                    .map_err(|e| WorkspaceError::view_thumbnail().context(e))?
-                    .0
-            },
+            Some(thumbnail) => ViewThumbnail::parse(thumbnail)?.0,
         };
 
         Ok(CreateViewParams::new(

+ 7 - 10
rust-lib/flowy-workspace/src/entities/view/view_query.rs → rust-lib/flowy-workspace-infra/src/entities/view/view_query.rs

@@ -1,4 +1,4 @@
-use crate::{entities::view::parser::ViewId, errors::WorkspaceError};
+use crate::{errors::ErrorCode, parser::view::ViewId};
 use flowy_derive::ProtoBuf;
 use flowy_document::entities::doc::DocIdentifier;
 use std::convert::TryInto;
@@ -24,17 +24,16 @@ impl std::convert::Into<DocIdentifier> for ViewIdentifier {
 }
 
 impl TryInto<ViewIdentifier> for QueryViewRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
     fn try_into(self) -> Result<ViewIdentifier, Self::Error> {
         debug_assert!(self.view_ids.len() == 1);
         if self.view_ids.len() != 1 {
-            return Err(WorkspaceError::invalid_view_id().context("The len of view_ids should be equal to 1"));
+            log::error!("The len of view_ids should be equal to 1");
+            return Err(ErrorCode::ViewIdInvalid);
         }
 
         let view_id = self.view_ids.first().unwrap().clone();
-        let view_id = ViewId::parse(view_id)
-            .map_err(|e| WorkspaceError::invalid_view_id().context(e))?
-            .0;
+        let view_id = ViewId::parse(view_id)?.0;
 
         Ok(ViewIdentifier { view_id })
     }
@@ -47,14 +46,12 @@ pub struct ViewIdentifiers {
 }
 
 impl TryInto<ViewIdentifiers> for QueryViewRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<ViewIdentifiers, Self::Error> {
         let mut view_ids = vec![];
         for view_id in self.view_ids {
-            let view_id = ViewId::parse(view_id)
-                .map_err(|e| WorkspaceError::invalid_view_id().context(e))?
-                .0;
+            let view_id = ViewId::parse(view_id)?.0;
 
             view_ids.push(view_id);
         }

+ 7 - 22
rust-lib/flowy-workspace/src/entities/view/view_update.rs → rust-lib/flowy-workspace-infra/src/entities/view/view_update.rs

@@ -1,9 +1,8 @@
 use crate::{
-    entities::view::parser::{ViewId, *},
-    errors::WorkspaceError,
+    errors::ErrorCode,
+    parser::view::{ViewDesc, ViewId, ViewName, ViewThumbnail},
 };
 use flowy_derive::ProtoBuf;
-
 use std::convert::TryInto;
 
 #[derive(Default, ProtoBuf)]
@@ -56,38 +55,24 @@ impl UpdateViewParams {
 }
 
 impl TryInto<UpdateViewParams> for UpdateViewRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<UpdateViewParams, Self::Error> {
-        let view_id = ViewId::parse(self.view_id)
-            .map_err(|e| WorkspaceError::invalid_view_id().context(e))?
-            .0;
+        let view_id = ViewId::parse(self.view_id)?.0;
 
         let name = match self.name {
             None => None,
-            Some(name) => Some(
-                ViewName::parse(name)
-                    .map_err(|e| WorkspaceError::view_name().context(e))?
-                    .0,
-            ),
+            Some(name) => Some(ViewName::parse(name)?.0),
         };
 
         let desc = match self.desc {
             None => None,
-            Some(desc) => Some(
-                ViewDesc::parse(desc)
-                    .map_err(|e| WorkspaceError::view_desc().context(e))?
-                    .0,
-            ),
+            Some(desc) => Some(ViewDesc::parse(desc)?.0),
         };
 
         let thumbnail = match self.thumbnail {
             None => None,
-            Some(thumbnail) => Some(
-                ViewThumbnail::parse(thumbnail)
-                    .map_err(|e| WorkspaceError::view_thumbnail().context(e))?
-                    .0,
-            ),
+            Some(thumbnail) => Some(ViewThumbnail::parse(thumbnail)?.0),
         };
 
         Ok(UpdateViewParams {

+ 19 - 0
rust-lib/flowy-workspace-infra/src/entities/workspace/mod.rs

@@ -0,0 +1,19 @@
+pub use workspace_create::*;
+
+pub use workspace_delete::*;
+
+pub use workspace_query::*;
+
+pub use workspace_update::*;
+
+pub use workspace_user_detail::*;
+
+mod workspace_create;
+
+mod workspace_delete;
+
+mod workspace_query;
+
+mod workspace_update;
+
+mod workspace_user_detail;

+ 5 - 4
rust-lib/flowy-workspace/src/entities/workspace/workspace_create.rs → rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_create.rs

@@ -1,7 +1,8 @@
 use crate::{
-    entities::{app::RepeatedApp, workspace::parser::*},
+    entities::app::RepeatedApp,
     errors::*,
     impl_def_and_def_mut,
+    parser::workspace::{WorkspaceDesc, WorkspaceName},
 };
 use flowy_derive::ProtoBuf;
 use std::convert::TryInto;
@@ -25,11 +26,11 @@ pub struct CreateWorkspaceParams {
 }
 
 impl TryInto<CreateWorkspaceParams> for CreateWorkspaceRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<CreateWorkspaceParams, Self::Error> {
-        let name = WorkspaceName::parse(self.name).map_err(|e| WorkspaceError::workspace_name().context(e))?;
-        let desc = WorkspaceDesc::parse(self.desc).map_err(|e| WorkspaceError::workspace_desc().context(e))?;
+        let name = WorkspaceName::parse(self.name)?;
+        let desc = WorkspaceDesc::parse(self.desc)?;
 
         Ok(CreateWorkspaceParams {
             name: name.0,

+ 3 - 5
rust-lib/flowy-workspace/src/entities/workspace/workspace_delete.rs → rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_delete.rs

@@ -1,4 +1,4 @@
-use crate::{entities::workspace::parser::WorkspaceId, errors::WorkspaceError};
+use crate::{errors::ErrorCode, parser::workspace::WorkspaceId};
 use flowy_derive::ProtoBuf;
 use std::convert::TryInto;
 
@@ -15,12 +15,10 @@ pub struct DeleteWorkspaceParams {
 }
 
 impl TryInto<DeleteWorkspaceParams> for DeleteWorkspaceRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<DeleteWorkspaceParams, Self::Error> {
-        let workspace_id = WorkspaceId::parse(self.workspace_id)
-            .map_err(|e| WorkspaceError::workspace_id().context(e))?
-            .0;
+        let workspace_id = WorkspaceId::parse(self.workspace_id)?.0;
 
         Ok(DeleteWorkspaceParams { workspace_id })
     }

+ 3 - 7
rust-lib/flowy-workspace/src/entities/workspace/workspace_query.rs → rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_query.rs

@@ -1,4 +1,4 @@
-use crate::{entities::workspace::parser::*, errors::*};
+use crate::{errors::*, parser::workspace::WorkspaceId};
 use flowy_derive::ProtoBuf;
 use std::convert::TryInto;
 
@@ -40,16 +40,12 @@ impl QueryWorkspaceParams {
 }
 
 impl TryInto<QueryWorkspaceParams> for QueryWorkspaceRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<QueryWorkspaceParams, Self::Error> {
         let workspace_id = match self.workspace_id {
             None => None,
-            Some(workspace_id) => Some(
-                WorkspaceId::parse(workspace_id)
-                    .map_err(|e| WorkspaceError::workspace_id().context(e))?
-                    .0,
-            ),
+            Some(workspace_id) => Some(WorkspaceId::parse(workspace_id)?.0),
         };
 
         Ok(QueryWorkspaceParams { workspace_id })

+ 8 - 12
rust-lib/flowy-workspace/src/entities/workspace/workspace_update.rs → rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_update.rs

@@ -1,8 +1,9 @@
-use std::convert::TryInto;
-
+use crate::{
+    errors::*,
+    parser::workspace::{WorkspaceId, WorkspaceName},
+};
 use flowy_derive::ProtoBuf;
-
-use crate::{entities::workspace::parser::*, errors::*};
+use std::convert::TryInto;
 
 #[derive(ProtoBuf, Default)]
 pub struct UpdateWorkspaceRequest {
@@ -29,19 +30,14 @@ pub struct UpdateWorkspaceParams {
 }
 
 impl TryInto<UpdateWorkspaceParams> for UpdateWorkspaceRequest {
-    type Error = WorkspaceError;
+    type Error = ErrorCode;
 
     fn try_into(self) -> Result<UpdateWorkspaceParams, Self::Error> {
         let name = match self.name {
             None => None,
-            Some(name) => Some(
-                WorkspaceName::parse(name)
-                    .map_err(|e| WorkspaceError::workspace_name().context(e))?
-                    .0,
-            ),
+            Some(name) => Some(WorkspaceName::parse(name)?.0),
         };
-
-        let id = WorkspaceId::parse(self.id).map_err(|e| WorkspaceError::workspace_id().context(e))?;
+        let id = WorkspaceId::parse(self.id)?;
 
         Ok(UpdateWorkspaceParams {
             id: id.0,

+ 0 - 0
rust-lib/flowy-workspace/src/entities/workspace/workspace_user_detail.rs → rust-lib/flowy-workspace-infra/src/entities/workspace/workspace_user_detail.rs


+ 77 - 0
rust-lib/flowy-workspace-infra/src/errors.rs

@@ -0,0 +1,77 @@
+use crate::protobuf::ErrorCode as ProtoBufErrorCode;
+
+use derive_more::Display;
+use flowy_derive::ProtoBuf_Enum;
+use protobuf::ProtobufEnum;
+use std::convert::{TryFrom, TryInto};
+
+#[derive(Debug, Clone, ProtoBuf_Enum, Display, PartialEq, Eq)]
+pub enum ErrorCode {
+    #[display(fmt = "Workspace name can not be empty or whitespace")]
+    WorkspaceNameInvalid = 0,
+
+    #[display(fmt = "Workspace id can not be empty or whitespace")]
+    WorkspaceIdInvalid   = 1,
+
+    #[display(fmt = "Color style of the App is invalid")]
+    AppColorStyleInvalid = 2,
+
+    #[display(fmt = "Workspace desc is invalid")]
+    WorkspaceDescTooLong = 3,
+
+    #[display(fmt = "Workspace description too long")]
+    WorkspaceNameTooLong = 4,
+
+    #[display(fmt = "App id can not be empty or whitespace")]
+    AppIdInvalid         = 10,
+
+    #[display(fmt = "App name can not be empty or whitespace")]
+    AppNameInvalid       = 11,
+
+    #[display(fmt = "View name can not be empty or whitespace")]
+    ViewNameInvalid      = 20,
+
+    #[display(fmt = "Thumbnail of the view is invalid")]
+    ViewThumbnailInvalid = 21,
+
+    #[display(fmt = "View id can not be empty or whitespace")]
+    ViewIdInvalid        = 22,
+
+    #[display(fmt = "View desc too long")]
+    ViewDescTooLong      = 23,
+
+    #[display(fmt = "View data is invalid")]
+    ViewDataInvalid      = 24,
+
+    #[display(fmt = "View name too long")]
+    ViewNameTooLong      = 25,
+
+    #[display(fmt = "User unauthorized")]
+    UserUnauthorized     = 100,
+
+    #[display(fmt = "Workspace websocket error")]
+    WsConnectError       = 200,
+
+    #[display(fmt = "Server error")]
+    InternalError        = 1000,
+    #[display(fmt = "Record not found")]
+    RecordNotFound       = 1001,
+}
+
+impl std::default::Default for ErrorCode {
+    fn default() -> Self { ErrorCode::InternalError }
+}
+
+impl ErrorCode {
+    pub fn value(&self) -> i32 {
+        let code: ProtoBufErrorCode = self.clone().try_into().unwrap();
+        code.value()
+    }
+
+    pub fn from_i32(value: i32) -> Self {
+        match ProtoBufErrorCode::from_i32(value) {
+            None => ErrorCode::InternalError,
+            Some(code) => ErrorCode::try_from(&code).unwrap(),
+        }
+    }
+}

+ 6 - 0
rust-lib/flowy-workspace-infra/src/lib.rs

@@ -0,0 +1,6 @@
+pub mod entities;
+pub mod errors;
+pub mod parser;
+#[macro_use]
+mod macros;
+pub mod protobuf;

+ 30 - 0
rust-lib/flowy-workspace-infra/src/macros.rs

@@ -0,0 +1,30 @@
+#[macro_export]
+macro_rules! impl_def_and_def_mut {
+    ($target:ident, $item: ident) => {
+        impl std::ops::Deref for $target {
+            type Target = Vec<$item>;
+
+            fn deref(&self) -> &Self::Target { &self.items }
+        }
+        impl std::ops::DerefMut for $target {
+            fn deref_mut(&mut self) -> &mut Self::Target { &mut self.items }
+        }
+
+        impl $target {
+            #[allow(dead_code)]
+            pub fn into_inner(&mut self) -> Vec<$item> { ::std::mem::replace(&mut self.items, vec![]) }
+
+            #[allow(dead_code)]
+            pub fn push(&mut self, item: $item) {
+                if self.items.contains(&item) {
+                    log::error!("add duplicate item: {:?}", item);
+                    return;
+                }
+
+                self.items.push(item);
+            }
+
+            pub fn first_or_crash(&self) -> &$item { self.items.first().unwrap() }
+        }
+    };
+}

+ 3 - 1
rust-lib/flowy-workspace/src/entities/app/parser/app_color_style.rs → rust-lib/flowy-workspace-infra/src/parser/app/app_color_style.rs

@@ -1,10 +1,12 @@
+use crate::errors::ErrorCode;
+
 #[derive(Debug)]
 pub struct AppColorStyle {
     pub theme_color: String,
 }
 
 impl AppColorStyle {
-    pub fn parse(theme_color: String) -> Result<AppColorStyle, String> {
+    pub fn parse(theme_color: String) -> Result<AppColorStyle, ErrorCode> {
         // TODO: verify the color style format
         Ok(AppColorStyle { theme_color })
     }

+ 0 - 0
rust-lib/flowy-workspace/src/entities/app/parser/app_desc.rs → rust-lib/flowy-workspace-infra/src/parser/app/app_desc.rs


Some files were not shown because too many files changed in this diff