rename files

This commit is contained in:
appflowy 2021-07-25 08:13:59 +08:00
parent 29f5f1ac27
commit c5881daddd
62 changed files with 368 additions and 424 deletions

View File

@ -35,8 +35,7 @@ class IAppImpl extends IApp {
final result = await docRepo.createDoc( final result = await docRepo.createDoc(
name: view.name, desc: "", text: "[{\"insert\":\"\\n\"}]"); name: view.name, desc: "", text: "[{\"insert\":\"\\n\"}]");
return result.fold((l) => left(view), (r) { return result.fold((l) => left(view), (r) {
return right( return right(WorkspaceError(code: WsErrCode.Unknown, msg: r.msg));
WorkspaceError(code: WorkspaceErrorCode.Unknown, msg: r.msg));
}); });
default: default:
return left(view); return left(view);

View File

@ -15,14 +15,14 @@ export 'errors.pbenum.dart';
class UserError extends $pb.GeneratedMessage { class UserError extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'UserError', createEmptyInstance: create) static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'UserError', createEmptyInstance: create)
..e<UserErrorCode>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.OE, defaultOrMaker: UserErrorCode.Unknown, valueOf: UserErrorCode.valueOf, enumValues: UserErrorCode.values) ..e<UserErrCode>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.OE, defaultOrMaker: UserErrCode.Unknown, valueOf: UserErrCode.valueOf, enumValues: UserErrCode.values)
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'msg') ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'msg')
..hasRequiredFields = false ..hasRequiredFields = false
; ;
UserError._() : super(); UserError._() : super();
factory UserError({ factory UserError({
UserErrorCode? code, UserErrCode? code,
$core.String? msg, $core.String? msg,
}) { }) {
final _result = create(); final _result = create();
@ -56,9 +56,9 @@ class UserError extends $pb.GeneratedMessage {
static UserError? _defaultInstance; static UserError? _defaultInstance;
@$pb.TagNumber(1) @$pb.TagNumber(1)
UserErrorCode get code => $_getN(0); UserErrCode get code => $_getN(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)
set code(UserErrorCode v) { setField(1, v); } set code(UserErrCode v) { setField(1, v); }
@$pb.TagNumber(1) @$pb.TagNumber(1)
$core.bool hasCode() => $_has(0); $core.bool hasCode() => $_has(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)

View File

@ -9,26 +9,26 @@
import 'dart:core' as $core; import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb; import 'package:protobuf/protobuf.dart' as $pb;
class UserErrorCode extends $pb.ProtobufEnum { class UserErrCode extends $pb.ProtobufEnum {
static const UserErrorCode Unknown = UserErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'Unknown'); static const UserErrCode Unknown = UserErrCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'Unknown');
static const UserErrorCode UserDatabaseInitFailed = UserErrorCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseInitFailed'); static const UserErrCode UserDatabaseInitFailed = UserErrCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseInitFailed');
static const UserErrorCode UserDatabaseWriteLocked = UserErrorCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseWriteLocked'); static const UserErrCode UserDatabaseWriteLocked = UserErrCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseWriteLocked');
static const UserErrorCode UserDatabaseReadLocked = UserErrorCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseReadLocked'); static const UserErrCode UserDatabaseReadLocked = UserErrCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseReadLocked');
static const UserErrorCode UserDatabaseDidNotMatch = UserErrorCode._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseDidNotMatch'); static const UserErrCode UserDatabaseDidNotMatch = UserErrCode._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseDidNotMatch');
static const UserErrorCode UserDatabaseInternalError = UserErrorCode._(5, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseInternalError'); static const UserErrCode UserDatabaseInternalError = UserErrCode._(5, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserDatabaseInternalError');
static const UserErrorCode SqlInternalError = UserErrorCode._(6, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SqlInternalError'); static const UserErrCode SqlInternalError = UserErrCode._(6, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SqlInternalError');
static const UserErrorCode UserNotLoginYet = UserErrorCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNotLoginYet'); static const UserErrCode UserNotLoginYet = UserErrCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNotLoginYet');
static const UserErrorCode ReadCurrentIdFailed = UserErrorCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ReadCurrentIdFailed'); static const UserErrCode ReadCurrentIdFailed = UserErrCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ReadCurrentIdFailed');
static const UserErrorCode WriteCurrentIdFailed = UserErrorCode._(12, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WriteCurrentIdFailed'); static const UserErrCode WriteCurrentIdFailed = UserErrCode._(12, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WriteCurrentIdFailed');
static const UserErrorCode EmailInvalid = UserErrorCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'EmailInvalid'); static const UserErrCode EmailInvalid = UserErrCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'EmailInvalid');
static const UserErrorCode PasswordInvalid = UserErrorCode._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordInvalid'); static const UserErrCode PasswordInvalid = UserErrCode._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordInvalid');
static const UserErrorCode UserNameInvalid = UserErrorCode._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNameInvalid'); static const UserErrCode UserNameInvalid = UserErrCode._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNameInvalid');
static const UserErrorCode UserWorkspaceInvalid = UserErrorCode._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserWorkspaceInvalid'); static const UserErrCode UserWorkspaceInvalid = UserErrCode._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserWorkspaceInvalid');
static const UserErrorCode UserIdInvalid = UserErrorCode._(24, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserIdInvalid'); static const UserErrCode UserIdInvalid = UserErrCode._(24, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserIdInvalid');
static const UserErrorCode CreateDefaultWorkspaceFailed = UserErrorCode._(25, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CreateDefaultWorkspaceFailed'); static const UserErrCode CreateDefaultWorkspaceFailed = UserErrCode._(25, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CreateDefaultWorkspaceFailed');
static const UserErrorCode DefaultWorkspaceAlreadyExist = UserErrorCode._(26, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DefaultWorkspaceAlreadyExist'); static const UserErrCode DefaultWorkspaceAlreadyExist = UserErrCode._(26, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DefaultWorkspaceAlreadyExist');
static const $core.List<UserErrorCode> values = <UserErrorCode> [ static const $core.List<UserErrCode> values = <UserErrCode> [
Unknown, Unknown,
UserDatabaseInitFailed, UserDatabaseInitFailed,
UserDatabaseWriteLocked, UserDatabaseWriteLocked,
@ -48,9 +48,9 @@ class UserErrorCode extends $pb.ProtobufEnum {
DefaultWorkspaceAlreadyExist, DefaultWorkspaceAlreadyExist,
]; ];
static final $core.Map<$core.int, UserErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values); static final $core.Map<$core.int, UserErrCode> _byValue = $pb.ProtobufEnum.initByValue(values);
static UserErrorCode? valueOf($core.int value) => _byValue[value]; static UserErrCode? valueOf($core.int value) => _byValue[value];
const UserErrorCode._($core.int v, $core.String n) : super(v, n); const UserErrCode._($core.int v, $core.String n) : super(v, n);
} }

View File

@ -8,9 +8,9 @@
import 'dart:core' as $core; import 'dart:core' as $core;
import 'dart:convert' as $convert; import 'dart:convert' as $convert;
import 'dart:typed_data' as $typed_data; import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use userErrorCodeDescriptor instead') @$core.Deprecated('Use userErrCodeDescriptor instead')
const UserErrorCode$json = const { const UserErrCode$json = const {
'1': 'UserErrorCode', '1': 'UserErrCode',
'2': const [ '2': const [
const {'1': 'Unknown', '2': 0}, const {'1': 'Unknown', '2': 0},
const {'1': 'UserDatabaseInitFailed', '2': 1}, const {'1': 'UserDatabaseInitFailed', '2': 1},
@ -32,16 +32,16 @@ const UserErrorCode$json = const {
], ],
}; };
/// Descriptor for `UserErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`. /// Descriptor for `UserErrCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List userErrorCodeDescriptor = $convert.base64Decode('Cg1Vc2VyRXJyb3JDb2RlEgsKB1Vua25vd24QABIaChZVc2VyRGF0YWJhc2VJbml0RmFpbGVkEAESGwoXVXNlckRhdGFiYXNlV3JpdGVMb2NrZWQQAhIaChZVc2VyRGF0YWJhc2VSZWFkTG9ja2VkEAMSGwoXVXNlckRhdGFiYXNlRGlkTm90TWF0Y2gQBBIdChlVc2VyRGF0YWJhc2VJbnRlcm5hbEVycm9yEAUSFAoQU3FsSW50ZXJuYWxFcnJvchAGEhMKD1VzZXJOb3RMb2dpbllldBAKEhcKE1JlYWRDdXJyZW50SWRGYWlsZWQQCxIYChRXcml0ZUN1cnJlbnRJZEZhaWxlZBAMEhAKDEVtYWlsSW52YWxpZBAUEhMKD1Bhc3N3b3JkSW52YWxpZBAVEhMKD1VzZXJOYW1lSW52YWxpZBAWEhgKFFVzZXJXb3Jrc3BhY2VJbnZhbGlkEBcSEQoNVXNlcklkSW52YWxpZBAYEiAKHENyZWF0ZURlZmF1bHRXb3Jrc3BhY2VGYWlsZWQQGRIgChxEZWZhdWx0V29ya3NwYWNlQWxyZWFkeUV4aXN0EBo='); final $typed_data.Uint8List userErrCodeDescriptor = $convert.base64Decode('CgtVc2VyRXJyQ29kZRILCgdVbmtub3duEAASGgoWVXNlckRhdGFiYXNlSW5pdEZhaWxlZBABEhsKF1VzZXJEYXRhYmFzZVdyaXRlTG9ja2VkEAISGgoWVXNlckRhdGFiYXNlUmVhZExvY2tlZBADEhsKF1VzZXJEYXRhYmFzZURpZE5vdE1hdGNoEAQSHQoZVXNlckRhdGFiYXNlSW50ZXJuYWxFcnJvchAFEhQKEFNxbEludGVybmFsRXJyb3IQBhITCg9Vc2VyTm90TG9naW5ZZXQQChIXChNSZWFkQ3VycmVudElkRmFpbGVkEAsSGAoUV3JpdGVDdXJyZW50SWRGYWlsZWQQDBIQCgxFbWFpbEludmFsaWQQFBITCg9QYXNzd29yZEludmFsaWQQFRITCg9Vc2VyTmFtZUludmFsaWQQFhIYChRVc2VyV29ya3NwYWNlSW52YWxpZBAXEhEKDVVzZXJJZEludmFsaWQQGBIgChxDcmVhdGVEZWZhdWx0V29ya3NwYWNlRmFpbGVkEBkSIAocRGVmYXVsdFdvcmtzcGFjZUFscmVhZHlFeGlzdBAa');
@$core.Deprecated('Use userErrorDescriptor instead') @$core.Deprecated('Use userErrorDescriptor instead')
const UserError$json = const { const UserError$json = const {
'1': 'UserError', '1': 'UserError',
'2': const [ '2': const [
const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.UserErrorCode', '10': 'code'}, const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.UserErrCode', '10': 'code'},
const {'1': 'msg', '3': 2, '4': 1, '5': 9, '10': 'msg'}, const {'1': 'msg', '3': 2, '4': 1, '5': 9, '10': 'msg'},
], ],
}; };
/// Descriptor for `UserError`. Decode as a `google.protobuf.DescriptorProto`. /// Descriptor for `UserError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List userErrorDescriptor = $convert.base64Decode('CglVc2VyRXJyb3ISIgoEY29kZRgBIAEoDjIOLlVzZXJFcnJvckNvZGVSBGNvZGUSEAoDbXNnGAIgASgJUgNtc2c='); final $typed_data.Uint8List userErrorDescriptor = $convert.base64Decode('CglVc2VyRXJyb3ISIAoEY29kZRgBIAEoDjIMLlVzZXJFcnJDb2RlUgRjb2RlEhAKA21zZxgCIAEoCVIDbXNn');

View File

@ -15,14 +15,14 @@ export 'errors.pbenum.dart';
class WorkspaceError extends $pb.GeneratedMessage { class WorkspaceError extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'WorkspaceError', createEmptyInstance: create) static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'WorkspaceError', createEmptyInstance: create)
..e<WorkspaceErrorCode>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.OE, defaultOrMaker: WorkspaceErrorCode.Unknown, valueOf: WorkspaceErrorCode.valueOf, enumValues: WorkspaceErrorCode.values) ..e<WsErrCode>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.OE, defaultOrMaker: WsErrCode.Unknown, valueOf: WsErrCode.valueOf, enumValues: WsErrCode.values)
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'msg') ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'msg')
..hasRequiredFields = false ..hasRequiredFields = false
; ;
WorkspaceError._() : super(); WorkspaceError._() : super();
factory WorkspaceError({ factory WorkspaceError({
WorkspaceErrorCode? code, WsErrCode? code,
$core.String? msg, $core.String? msg,
}) { }) {
final _result = create(); final _result = create();
@ -56,9 +56,9 @@ class WorkspaceError extends $pb.GeneratedMessage {
static WorkspaceError? _defaultInstance; static WorkspaceError? _defaultInstance;
@$pb.TagNumber(1) @$pb.TagNumber(1)
WorkspaceErrorCode get code => $_getN(0); WsErrCode get code => $_getN(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)
set code(WorkspaceErrorCode v) { setField(1, v); } set code(WsErrCode v) { setField(1, v); }
@$pb.TagNumber(1) @$pb.TagNumber(1)
$core.bool hasCode() => $_has(0); $core.bool hasCode() => $_has(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)

View File

@ -9,23 +9,23 @@
import 'dart:core' as $core; import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb; import 'package:protobuf/protobuf.dart' as $pb;
class WorkspaceErrorCode extends $pb.ProtobufEnum { class WsErrCode extends $pb.ProtobufEnum {
static const WorkspaceErrorCode Unknown = WorkspaceErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'Unknown'); static const WsErrCode Unknown = WsErrCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'Unknown');
static const WorkspaceErrorCode WorkspaceNameInvalid = WorkspaceErrorCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameInvalid'); static const WsErrCode WorkspaceNameInvalid = WsErrCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameInvalid');
static const WorkspaceErrorCode WorkspaceIdInvalid = WorkspaceErrorCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceIdInvalid'); static const WsErrCode WorkspaceIdInvalid = WsErrCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceIdInvalid');
static const WorkspaceErrorCode AppColorStyleInvalid = WorkspaceErrorCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppColorStyleInvalid'); static const WsErrCode AppColorStyleInvalid = WsErrCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppColorStyleInvalid');
static const WorkspaceErrorCode AppIdInvalid = WorkspaceErrorCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppIdInvalid'); static const WsErrCode AppIdInvalid = WsErrCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppIdInvalid');
static const WorkspaceErrorCode AppNameInvalid = WorkspaceErrorCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppNameInvalid'); static const WsErrCode AppNameInvalid = WsErrCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppNameInvalid');
static const WorkspaceErrorCode ViewNameInvalid = WorkspaceErrorCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameInvalid'); static const WsErrCode ViewNameInvalid = WsErrCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameInvalid');
static const WorkspaceErrorCode ViewThumbnailInvalid = WorkspaceErrorCode._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewThumbnailInvalid'); static const WsErrCode ViewThumbnailInvalid = WsErrCode._(21, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewThumbnailInvalid');
static const WorkspaceErrorCode ViewIdInvalid = WorkspaceErrorCode._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewIdInvalid'); static const WsErrCode ViewIdInvalid = WsErrCode._(22, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewIdInvalid');
static const WorkspaceErrorCode ViewDescInvalid = WorkspaceErrorCode._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDescInvalid'); static const WsErrCode ViewDescInvalid = WsErrCode._(23, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDescInvalid');
static const WorkspaceErrorCode DatabaseConnectionFail = WorkspaceErrorCode._(100, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DatabaseConnectionFail'); static const WsErrCode DatabaseConnectionFail = WsErrCode._(100, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DatabaseConnectionFail');
static const WorkspaceErrorCode WorkspaceDatabaseError = WorkspaceErrorCode._(101, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceDatabaseError'); static const WsErrCode WorkspaceDatabaseError = WsErrCode._(101, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceDatabaseError');
static const WorkspaceErrorCode UserInternalError = WorkspaceErrorCode._(102, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserInternalError'); static const WsErrCode UserInternalError = WsErrCode._(102, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserInternalError');
static const WorkspaceErrorCode UserNotLoginYet = WorkspaceErrorCode._(103, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNotLoginYet'); static const WsErrCode UserNotLoginYet = WsErrCode._(103, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNotLoginYet');
static const $core.List<WorkspaceErrorCode> values = <WorkspaceErrorCode> [ static const $core.List<WsErrCode> values = <WsErrCode> [
Unknown, Unknown,
WorkspaceNameInvalid, WorkspaceNameInvalid,
WorkspaceIdInvalid, WorkspaceIdInvalid,
@ -42,9 +42,9 @@ class WorkspaceErrorCode extends $pb.ProtobufEnum {
UserNotLoginYet, UserNotLoginYet,
]; ];
static final $core.Map<$core.int, WorkspaceErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values); static final $core.Map<$core.int, WsErrCode> _byValue = $pb.ProtobufEnum.initByValue(values);
static WorkspaceErrorCode? valueOf($core.int value) => _byValue[value]; static WsErrCode? valueOf($core.int value) => _byValue[value];
const WorkspaceErrorCode._($core.int v, $core.String n) : super(v, n); const WsErrCode._($core.int v, $core.String n) : super(v, n);
} }

View File

@ -8,9 +8,9 @@
import 'dart:core' as $core; import 'dart:core' as $core;
import 'dart:convert' as $convert; import 'dart:convert' as $convert;
import 'dart:typed_data' as $typed_data; import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use workspaceErrorCodeDescriptor instead') @$core.Deprecated('Use wsErrCodeDescriptor instead')
const WorkspaceErrorCode$json = const { const WsErrCode$json = const {
'1': 'WorkspaceErrorCode', '1': 'WsErrCode',
'2': const [ '2': const [
const {'1': 'Unknown', '2': 0}, const {'1': 'Unknown', '2': 0},
const {'1': 'WorkspaceNameInvalid', '2': 1}, const {'1': 'WorkspaceNameInvalid', '2': 1},
@ -29,16 +29,16 @@ const WorkspaceErrorCode$json = const {
], ],
}; };
/// Descriptor for `WorkspaceErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`. /// Descriptor for `WsErrCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List workspaceErrorCodeDescriptor = $convert.base64Decode('ChJXb3Jrc3BhY2VFcnJvckNvZGUSCwoHVW5rbm93bhAAEhgKFFdvcmtzcGFjZU5hbWVJbnZhbGlkEAESFgoSV29ya3NwYWNlSWRJbnZhbGlkEAISGAoUQXBwQ29sb3JTdHlsZUludmFsaWQQAxIQCgxBcHBJZEludmFsaWQQChISCg5BcHBOYW1lSW52YWxpZBALEhMKD1ZpZXdOYW1lSW52YWxpZBAUEhgKFFZpZXdUaHVtYm5haWxJbnZhbGlkEBUSEQoNVmlld0lkSW52YWxpZBAWEhMKD1ZpZXdEZXNjSW52YWxpZBAXEhoKFkRhdGFiYXNlQ29ubmVjdGlvbkZhaWwQZBIaChZXb3Jrc3BhY2VEYXRhYmFzZUVycm9yEGUSFQoRVXNlckludGVybmFsRXJyb3IQZhITCg9Vc2VyTm90TG9naW5ZZXQQZw=='); final $typed_data.Uint8List wsErrCodeDescriptor = $convert.base64Decode('CglXc0VyckNvZGUSCwoHVW5rbm93bhAAEhgKFFdvcmtzcGFjZU5hbWVJbnZhbGlkEAESFgoSV29ya3NwYWNlSWRJbnZhbGlkEAISGAoUQXBwQ29sb3JTdHlsZUludmFsaWQQAxIQCgxBcHBJZEludmFsaWQQChISCg5BcHBOYW1lSW52YWxpZBALEhMKD1ZpZXdOYW1lSW52YWxpZBAUEhgKFFZpZXdUaHVtYm5haWxJbnZhbGlkEBUSEQoNVmlld0lkSW52YWxpZBAWEhMKD1ZpZXdEZXNjSW52YWxpZBAXEhoKFkRhdGFiYXNlQ29ubmVjdGlvbkZhaWwQZBIaChZXb3Jrc3BhY2VEYXRhYmFzZUVycm9yEGUSFQoRVXNlckludGVybmFsRXJyb3IQZhITCg9Vc2VyTm90TG9naW5ZZXQQZw==');
@$core.Deprecated('Use workspaceErrorDescriptor instead') @$core.Deprecated('Use workspaceErrorDescriptor instead')
const WorkspaceError$json = const { const WorkspaceError$json = const {
'1': 'WorkspaceError', '1': 'WorkspaceError',
'2': const [ '2': const [
const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.WorkspaceErrorCode', '10': 'code'}, const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.WsErrCode', '10': 'code'},
const {'1': 'msg', '3': 2, '4': 1, '5': 9, '10': 'msg'}, const {'1': 'msg', '3': 2, '4': 1, '5': 9, '10': 'msg'},
], ],
}; };
/// Descriptor for `WorkspaceError`. Decode as a `google.protobuf.DescriptorProto`. /// Descriptor for `WorkspaceError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List workspaceErrorDescriptor = $convert.base64Decode('Cg5Xb3Jrc3BhY2VFcnJvchInCgRjb2RlGAEgASgOMhMuV29ya3NwYWNlRXJyb3JDb2RlUgRjb2RlEhAKA21zZxgCIAEoCVIDbXNn'); final $typed_data.Uint8List workspaceErrorDescriptor = $convert.base64Decode('Cg5Xb3Jrc3BhY2VFcnJvchIeCgRjb2RlGAEgASgOMgouV3NFcnJDb2RlUgRjb2RlEhAKA21zZxgCIAEoCVIDbXNn');

View File

@ -9,7 +9,7 @@ use crate::{
}; };
use flowy_dispatch::prelude::*; use flowy_dispatch::prelude::*;
use flowy_sdk::*; use flowy_sdk::*;
use lazy_static::lazy_static;
use std::{ffi::CStr, os::raw::c_char}; use std::{ffi::CStr, os::raw::c_char};
#[no_mangle] #[no_mangle]

View File

@ -1,5 +1,5 @@
use flowy_derive::{ProtoBuf, ProtoBuf_Enum}; use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
use flowy_dispatch::prelude::{DispatchError, EventResponse, Payload, StatusCode}; use flowy_dispatch::prelude::{EventResponse, Payload, StatusCode};
#[derive(ProtoBuf_Enum, Clone, Copy)] #[derive(ProtoBuf_Enum, Clone, Copy)]
pub enum FFIStatusCode { pub enum FFIStatusCode {

View File

@ -56,12 +56,12 @@ pub fn category_from_str(type_str: &str) -> TypeCategory {
| "EditorErrorCode" | "EditorErrorCode"
| "ViewType" | "ViewType"
| "WorkspaceEvent" | "WorkspaceEvent"
| "WorkspaceErrorCode" | "WsErrCode"
| "WorkspaceObservable" | "WorkspaceObservable"
| "FFIStatusCode" | "FFIStatusCode"
| "UserStatus" | "UserStatus"
| "UserEvent" | "UserEvent"
| "UserErrorCode" | "UserErrCode"
=> TypeCategory::Enum, => TypeCategory::Enum,
"Option" => TypeCategory::Opt, "Option" => TypeCategory::Opt,

View File

@ -1,7 +1,7 @@
use crate::{ use crate::{
byte_trait::FromBytes, byte_trait::FromBytes,
request::EventRequest, request::EventRequest,
response::{EventResponse, ResponseBuilder, StatusCode}, response::{EventResponse, ResponseBuilder},
}; };
use dyn_clone::DynClone; use dyn_clone::DynClone;
use serde::{Serialize, Serializer}; use serde::{Serialize, Serializer};

View File

@ -1,5 +1,4 @@
use crate::{ use crate::{
errors::DispatchError,
request::Payload, request::Payload,
response::{EventResponse, StatusCode}, response::{EventResponse, StatusCode},
}; };

View File

@ -4,7 +4,7 @@ use crate::{
services::{doc_controller::DocController, file_manager::FileManager}, services::{doc_controller::DocController, file_manager::FileManager},
}; };
use flowy_dispatch::prelude::*; use flowy_dispatch::prelude::*;
use std::{convert::TryInto, path::Path, sync::Arc}; use std::{convert::TryInto, path::Path};
use tokio::sync::RwLock; use tokio::sync::RwLock;
#[tracing::instrument(name = "create_doc", skip(data, controller, manager))] #[tracing::instrument(name = "create_doc", skip(data, controller, manager))]
@ -67,7 +67,8 @@ pub async fn update_doc(
manager manager
.write() .write()
.await .await
.save(Path::new(&doc_desc.path), &s, params.id.clone()); .save(Path::new(&doc_desc.path), &s, params.id.clone())
.unwrap();
} }
if params.name.is_some() || params.desc.is_some() { if params.name.is_some() || params.desc.is_some() {

View File

@ -2,10 +2,7 @@ use crate::{
errors::EditorError, errors::EditorError,
event::EditorEvent, event::EditorEvent,
handlers::*, handlers::*,
services::{ services::{doc_controller::DocController, file_manager::FileManager},
doc_controller::DocController,
file_manager::{create_dir_if_not_exist, FileManager},
},
}; };
use flowy_database::DBConnection; use flowy_database::DBConnection;
use flowy_dispatch::prelude::*; use flowy_dispatch::prelude::*;

View File

@ -1,5 +1,5 @@
use crate::{ use crate::{
entities::doc::{CreateDocParams, DocData, DocInfo, QueryDocParams, UpdateDocParams}, entities::doc::{CreateDocParams, DocInfo, UpdateDocParams},
errors::EditorError, errors::EditorError,
module::EditorDatabase, module::EditorDatabase,
sql_tables::doc::{DocTable, DocTableChangeset, DocTableSql}, sql_tables::doc::{DocTable, DocTableChangeset, DocTableSql},

View File

@ -6,7 +6,6 @@ use std::{
io::{Read, Write}, io::{Read, Write},
path::{Path, PathBuf}, path::{Path, PathBuf},
str, str,
sync::atomic::{AtomicUsize, Ordering},
time::SystemTime, time::SystemTime,
}; };
@ -117,6 +116,7 @@ pub(crate) fn try_decode(
} }
} }
#[allow(dead_code)]
pub(crate) fn create_dir_if_not_exist(dir: &str) -> Result<(), io::Error> { pub(crate) fn create_dir_if_not_exist(dir: &str) -> Result<(), io::Error> {
let _ = fs::create_dir_all(dir)?; let _ = fs::create_dir_all(dir)?;
Ok(()) Ok(())

View File

@ -1,9 +1,8 @@
use crate::{module::EditorUser, services::file_manager::*}; use crate::{module::EditorUser, services::file_manager::*};
use std::{ use std::{
collections::HashMap, collections::HashMap,
io,
path::{Path, PathBuf}, path::{Path, PathBuf},
sync::{Arc, PoisonError, RwLock, RwLockReadGuard}, sync::Arc,
}; };
pub struct FileManager { pub struct FileManager {
@ -49,6 +48,7 @@ impl FileManager {
} }
} }
#[allow(dead_code)]
pub(crate) fn close<T>(&mut self, id: T) pub(crate) fn close<T>(&mut self, id: T)
where where
T: Into<FileId>, T: Into<FileId>,
@ -71,12 +71,15 @@ impl FileManager {
Ok(path) Ok(path)
} }
#[allow(dead_code)]
pub(crate) fn get_info(&self, id: &FileId) -> Option<&FileInfo> { self.file_info.get(id) } pub(crate) fn get_info(&self, id: &FileId) -> Option<&FileInfo> { self.file_info.get(id) }
#[allow(dead_code)]
pub(crate) fn get_file_id(&self, path: &Path) -> Option<FileId> { pub(crate) fn get_file_id(&self, path: &Path) -> Option<FileId> {
self.open_files.get(path).cloned() self.open_files.get(path).cloned()
} }
#[allow(dead_code)]
pub fn check_file(&mut self, path: &Path, id: &FileId) -> bool { pub fn check_file(&mut self, path: &Path, id: &FileId) -> bool {
if let Some(info) = self.file_info.get_mut(&id) { if let Some(info) = self.file_info.get_mut(&id) {
let modified_time = get_modified_time(path); let modified_time = get_modified_time(path);

View File

@ -36,5 +36,5 @@ impl DocTableSql {
Ok(doc_table) Ok(doc_table)
} }
pub(crate) fn delete_doc(&self, view_id: &str) -> Result<(), EditorError> { unimplemented!() } pub(crate) fn delete_doc(&self, _view_id: &str) -> Result<(), EditorError> { unimplemented!() }
} }

View File

@ -1,7 +1,6 @@
use crate::entities::doc::{CreateDocParams, DocInfo, UpdateDocParams}; use crate::entities::doc::{CreateDocParams, DocInfo, UpdateDocParams};
use flowy_database::schema::doc_table; use flowy_database::schema::doc_table;
use flowy_infra::{timestamp, uuid}; use flowy_infra::timestamp;
use std::convert::TryInto;
#[derive(PartialEq, Clone, Debug, Queryable, Identifiable, Insertable, Associations)] #[derive(PartialEq, Clone, Debug, Queryable, Identifiable, Insertable, Associations)]
#[table_name = "doc_table"] #[table_name = "doc_table"]

View File

@ -1,5 +1,5 @@
mod doc_sql; mod doc_sql;
mod doc_table; mod doc_table;
pub use doc_sql::*; pub(crate) use doc_sql::*;
pub use doc_table::*; pub(crate) use doc_table::*;

View File

@ -34,6 +34,7 @@ pub fn save_doc(desc: &DocInfo, content: &str) {
.sync_send(); .sync_send();
} }
#[allow(dead_code)]
pub fn read_doc(doc_id: &str) -> DocInfo { pub fn read_doc(doc_id: &str) -> DocInfo {
let request = QueryDocRequest { let request = QueryDocRequest {
doc_id: doc_id.to_string(), doc_id: doc_id.to_string(),

View File

@ -175,7 +175,7 @@ mod tests {
std::fs::create_dir_all(dir).unwrap(); std::fs::create_dir_all(dir).unwrap();
} }
KVStore::init(dir); KVStore::init(dir).unwrap();
KVStore::set_str("1", "hello".to_string()); KVStore::set_str("1", "hello".to_string());
assert_eq!(KVStore::get_str("1").unwrap(), "hello"); assert_eq!(KVStore::get_str("1").unwrap(), "hello");

View File

@ -18,7 +18,10 @@ pub struct ObservableSubject {
impl std::default::Default for ObservableSubject { impl std::default::Default for ObservableSubject {
fn default() -> Self { fn default() -> Self {
Self { Self {
..Default::default() category: "".to_string(),
ty: 0,
subject_id: "".to_string(),
subject_payload: None,
} }
} }
} }

View File

@ -3,7 +3,7 @@ use flowy_dispatch::prelude::DispatchFuture;
use flowy_user::prelude::UserSession; use flowy_user::prelude::UserSession;
use flowy_workspace::{ use flowy_workspace::{
entities::workspace::CurrentWorkspace, entities::workspace::CurrentWorkspace,
errors::{ErrorBuilder, WorkspaceError, WorkspaceErrorCode}, errors::{ErrorBuilder, WorkspaceError, WsErrCode},
module::{WorkspaceDatabase, WorkspaceUser}, module::{WorkspaceDatabase, WorkspaceUser},
}; };
use std::sync::Arc; use std::sync::Arc;
@ -25,7 +25,7 @@ impl WorkspaceUser for WorkspaceUserImpl {
.set_current_workspace(&workspace_id) .set_current_workspace(&workspace_id)
.await .await
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::UserInternalError) ErrorBuilder::new(WsErrCode::UserInternalError)
.error(e) .error(e)
.build() .build()
})?; })?;
@ -39,7 +39,7 @@ impl WorkspaceUser for WorkspaceUserImpl {
DispatchFuture { DispatchFuture {
fut: Box::pin(async move { fut: Box::pin(async move {
let user_detail = user_session.user_detail().map_err(|e| { let user_detail = user_session.user_detail().map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::UserNotLoginYet) ErrorBuilder::new(WsErrCode::UserNotLoginYet)
.error(e) .error(e)
.build() .build()
})?; })?;
@ -60,7 +60,7 @@ pub struct WorkspaceDatabaseImpl {
impl WorkspaceDatabase for WorkspaceDatabaseImpl { impl WorkspaceDatabase for WorkspaceDatabaseImpl {
fn db_connection(&self) -> Result<DBConnection, WorkspaceError> { fn db_connection(&self) -> Result<DBConnection, WorkspaceError> {
self.user_session.get_db_connection().map_err(|e| { self.user_session.get_db_connection().map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::DatabaseConnectionFail) ErrorBuilder::new(WsErrCode::DatabaseConnectionFail)
.error(e) .error(e)
.build() .build()
}) })

View File

@ -7,13 +7,12 @@ use flowy_dispatch::prelude::{
}; };
use flowy_user::{ use flowy_user::{
entities::{SignInParams, SignUpParams, UserDetail}, entities::{SignInParams, SignUpParams, UserDetail},
errors::{ErrorBuilder, UserError, UserErrorCode}, errors::{ErrorBuilder, UserErrCode, UserError},
prelude::UserServer, prelude::UserServer,
sql_tables::UserTable, sql_tables::UserTable,
}; };
use flowy_workspace::{ use flowy_workspace::{
entities::workspace::{CreateWorkspaceRequest, Workspace}, entities::workspace::{CreateWorkspaceRequest, Workspace},
errors::WorkspaceError,
event::WorkspaceEvent::CreateWorkspace, event::WorkspaceEvent::CreateWorkspace,
}; };
@ -47,11 +46,11 @@ impl UserServer for FlowyServerMocker {
} }
fn sign_out(&self, _user_id: &str) -> Result<(), UserError> { fn sign_out(&self, _user_id: &str) -> Result<(), UserError> {
Err(ErrorBuilder::new(UserErrorCode::Unknown).build()) Err(ErrorBuilder::new(UserErrCode::Unknown).build())
} }
fn get_user_info(&self, _user_id: &str) -> Result<UserDetail, UserError> { fn get_user_info(&self, _user_id: &str) -> Result<UserDetail, UserError> {
Err(ErrorBuilder::new(UserErrorCode::Unknown).build()) Err(ErrorBuilder::new(UserErrCode::Unknown).build())
} }
fn create_workspace( fn create_workspace(
@ -75,13 +74,13 @@ impl UserServer for FlowyServerMocker {
.await .await
.parse::<Workspace, DispatchError>() .parse::<Workspace, DispatchError>()
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(UserErrorCode::CreateDefaultWorkspaceFailed) ErrorBuilder::new(UserErrCode::CreateDefaultWorkspaceFailed)
.error(e) .error(e)
.build() .build()
})?; })?;
let workspace = result.map_err(|e| { let workspace = result.map_err(|e| {
ErrorBuilder::new(UserErrorCode::CreateDefaultWorkspaceFailed) ErrorBuilder::new(UserErrCode::CreateDefaultWorkspaceFailed)
.error(e) .error(e)
.build() .build()
})?; })?;

View File

@ -1,6 +1,6 @@
use crate::flowy_server::{ArcFlowyServer, FlowyServerMocker}; use crate::flowy_server::{ArcFlowyServer, FlowyServerMocker};
use flowy_dispatch::prelude::Module; use flowy_dispatch::prelude::Module;
use flowy_editor::prelude::*;
use flowy_user::prelude::*; use flowy_user::prelude::*;
use crate::deps_resolve::{ use crate::deps_resolve::{

View File

@ -24,13 +24,10 @@ impl TryInto<SignInParams> for SignInRequest {
type Error = UserError; type Error = UserError;
fn try_into(self) -> Result<SignInParams, Self::Error> { fn try_into(self) -> Result<SignInParams, Self::Error> {
let email = UserEmail::parse(self.email).map_err(|e| { let email = UserEmail::parse(self.email)
ErrorBuilder::new(UserErrorCode::EmailInvalid) .map_err(|e| ErrorBuilder::new(UserErrCode::EmailInvalid).msg(e).build())?;
.msg(e)
.build()
})?;
let password = UserPassword::parse(self.password).map_err(|e| { let password = UserPassword::parse(self.password).map_err(|e| {
ErrorBuilder::new(UserErrorCode::PasswordInvalid) ErrorBuilder::new(UserErrCode::PasswordInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::parser::*, entities::parser::*,
errors::{ErrorBuilder, UserError, UserErrorCode}, errors::{ErrorBuilder, UserErrCode, UserError},
}; };
use flowy_derive::ProtoBuf; use flowy_derive::ProtoBuf;
use std::convert::TryInto; use std::convert::TryInto;
@ -20,19 +20,16 @@ impl TryInto<SignUpParams> for SignUpRequest {
type Error = UserError; type Error = UserError;
fn try_into(self) -> Result<SignUpParams, Self::Error> { fn try_into(self) -> Result<SignUpParams, Self::Error> {
let email = UserEmail::parse(self.email).map_err(|e| { let email = UserEmail::parse(self.email)
ErrorBuilder::new(UserErrorCode::EmailInvalid) .map_err(|e| ErrorBuilder::new(UserErrCode::EmailInvalid).msg(e).build())?;
.msg(e)
.build()
})?;
let password = UserPassword::parse(self.password).map_err(|e| { let password = UserPassword::parse(self.password).map_err(|e| {
ErrorBuilder::new(UserErrorCode::PasswordInvalid) ErrorBuilder::new(UserErrCode::PasswordInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;
let name = UserName::parse(self.name).map_err(|e| { let name = UserName::parse(self.name).map_err(|e| {
ErrorBuilder::new(UserErrorCode::UserNameInvalid) ErrorBuilder::new(UserErrCode::UserNameInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::parser::*, entities::parser::*,
errors::{ErrorBuilder, UserError, UserErrorCode}, errors::{ErrorBuilder, UserErrCode, UserError},
}; };
use flowy_derive::ProtoBuf; use flowy_derive::ProtoBuf;
use std::convert::TryInto; use std::convert::TryInto;
@ -65,11 +65,7 @@ impl TryInto<UpdateUserParams> for UpdateUserRequest {
fn try_into(self) -> Result<UpdateUserParams, Self::Error> { fn try_into(self) -> Result<UpdateUserParams, Self::Error> {
let id = UserId::parse(self.id) let id = UserId::parse(self.id)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(UserErrCode::UserIdInvalid).msg(e).build())?
ErrorBuilder::new(UserErrorCode::UserIdInvalid)
.msg(e)
.build()
})?
.0; .0;
let name = match self.name { let name = match self.name {
@ -77,7 +73,7 @@ impl TryInto<UpdateUserParams> for UpdateUserRequest {
Some(name) => Some( Some(name) => Some(
UserName::parse(name) UserName::parse(name)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(UserErrorCode::UserNameInvalid) ErrorBuilder::new(UserErrCode::UserNameInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?
@ -89,11 +85,7 @@ impl TryInto<UpdateUserParams> for UpdateUserRequest {
None => None, None => None,
Some(email) => Some( Some(email) => Some(
UserEmail::parse(email) UserEmail::parse(email)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(UserErrCode::EmailInvalid).msg(e).build())?
ErrorBuilder::new(UserErrorCode::EmailInvalid)
.msg(e)
.build()
})?
.0, .0,
), ),
}; };
@ -103,7 +95,7 @@ impl TryInto<UpdateUserParams> for UpdateUserRequest {
Some(workspace) => Some( Some(workspace) => Some(
UserWorkspace::parse(workspace) UserWorkspace::parse(workspace)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(UserErrorCode::UserWorkspaceInvalid) ErrorBuilder::new(UserErrCode::UserWorkspaceInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?
@ -116,7 +108,7 @@ impl TryInto<UpdateUserParams> for UpdateUserRequest {
Some(password) => Some( Some(password) => Some(
UserPassword::parse(password) UserPassword::parse(password)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(UserErrorCode::PasswordInvalid) ErrorBuilder::new(UserErrCode::PasswordInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?

View File

@ -6,14 +6,14 @@ use std::convert::TryInto;
#[derive(Debug, Default, Clone, ProtoBuf)] #[derive(Debug, Default, Clone, ProtoBuf)]
pub struct UserError { pub struct UserError {
#[pb(index = 1)] #[pb(index = 1)]
pub code: UserErrorCode, pub code: UserErrCode,
#[pb(index = 2)] #[pb(index = 2)]
pub msg: String, pub msg: String,
} }
impl UserError { impl UserError {
fn new(code: UserErrorCode, msg: &str) -> Self { fn new(code: UserErrCode, msg: &str) -> Self {
Self { Self {
code, code,
msg: msg.to_owned(), msg: msg.to_owned(),
@ -22,7 +22,7 @@ impl UserError {
} }
#[derive(Debug, Clone, ProtoBuf_Enum, Display, PartialEq, Eq)] #[derive(Debug, Clone, ProtoBuf_Enum, Display, PartialEq, Eq)]
pub enum UserErrorCode { pub enum UserErrCode {
#[display(fmt = "Unknown")] #[display(fmt = "Unknown")]
Unknown = 0, Unknown = 0,
#[display(fmt = "Database init failed")] #[display(fmt = "Database init failed")]
@ -63,13 +63,13 @@ pub enum UserErrorCode {
DefaultWorkspaceAlreadyExist = 26, DefaultWorkspaceAlreadyExist = 26,
} }
impl std::default::Default for UserErrorCode { impl std::default::Default for UserErrCode {
fn default() -> Self { UserErrorCode::Unknown } fn default() -> Self { UserErrCode::Unknown }
} }
impl std::convert::From<flowy_database::result::Error> for UserError { impl std::convert::From<flowy_database::result::Error> for UserError {
fn from(error: flowy_database::result::Error) -> Self { fn from(error: flowy_database::result::Error) -> Self {
ErrorBuilder::new(UserErrorCode::UserDatabaseInternalError) ErrorBuilder::new(UserErrCode::UserDatabaseInternalError)
.error(error) .error(error)
.build() .build()
} }
@ -106,7 +106,7 @@ impl std::convert::From<flowy_sqlite::Error> for UserError {
// ErrorKind::__Nonexhaustive { .. } => {}, // ErrorKind::__Nonexhaustive { .. } => {},
// } // }
ErrorBuilder::new(UserErrorCode::SqlInternalError) ErrorBuilder::new(UserErrCode::SqlInternalError)
.error(error) .error(error)
.build() .build()
} }
@ -120,12 +120,12 @@ impl flowy_dispatch::Error for UserError {
} }
pub struct ErrorBuilder { pub struct ErrorBuilder {
pub code: UserErrorCode, pub code: UserErrCode,
pub msg: Option<String>, pub msg: Option<String>,
} }
impl ErrorBuilder { impl ErrorBuilder {
pub fn new(code: UserErrorCode) -> Self { ErrorBuilder { code, msg: None } } pub fn new(code: UserErrCode) -> Self { ErrorBuilder { code, msg: None } }
pub fn msg<T>(mut self, msg: T) -> Self pub fn msg<T>(mut self, msg: T) -> Self
where where

View File

@ -3,8 +3,8 @@ use flowy_dispatch::prelude::*;
use std::{convert::TryInto, sync::Arc}; use std::{convert::TryInto, sync::Arc};
// tracing instrument 👉🏻 https://docs.rs/tracing/0.1.26/tracing/attr.instrument.html // tracing instrument 👉🏻 https://docs.rs/tracing/0.1.26/tracing/attr.instrument.html
#[tracing::instrument(name = "user_sign_in", skip(data, session), fields(email = %data.email))] #[tracing::instrument(name = "sign_in", skip(data, session), fields(email = %data.email))]
pub async fn user_sign_in_handler( pub async fn sign_in(
data: Data<SignInRequest>, data: Data<SignInRequest>,
session: Unit<Arc<UserSession>>, session: Unit<Arc<UserSession>>,
) -> ResponseResult<UserDetail, UserError> { ) -> ResponseResult<UserDetail, UserError> {
@ -15,14 +15,14 @@ pub async fn user_sign_in_handler(
} }
#[tracing::instrument( #[tracing::instrument(
name = "user_sign_up", name = "sign_up",
skip(data, session), skip(data, session),
fields( fields(
email = %data.email, email = %data.email,
name = %data.name, name = %data.name,
) )
)] )]
pub async fn user_sign_up_handler( pub async fn sign_up(
data: Data<SignUpRequest>, data: Data<SignUpRequest>,
session: Unit<Arc<UserSession>>, session: Unit<Arc<UserSession>>,
) -> ResponseResult<UserDetail, UserError> { ) -> ResponseResult<UserDetail, UserError> {

View File

@ -2,19 +2,22 @@ use crate::{entities::*, errors::UserError, services::user_session::UserSession}
use flowy_dispatch::prelude::*; use flowy_dispatch::prelude::*;
use std::{convert::TryInto, sync::Arc}; use std::{convert::TryInto, sync::Arc};
pub async fn user_get_status_handler( #[tracing::instrument(name = "get_user_status", skip(session))]
pub async fn get_user_status(
session: Unit<Arc<UserSession>>, session: Unit<Arc<UserSession>>,
) -> ResponseResult<UserDetail, UserError> { ) -> ResponseResult<UserDetail, UserError> {
let user_detail = session.user_detail()?; let user_detail = session.user_detail()?;
response_ok(user_detail) response_ok(user_detail)
} }
pub async fn sign_out_handler(session: Unit<Arc<UserSession>>) -> Result<(), UserError> { #[tracing::instrument(name = "sign_out", skip(session))]
pub async fn sign_out(session: Unit<Arc<UserSession>>) -> Result<(), UserError> {
let _ = session.sign_out()?; let _ = session.sign_out()?;
Ok(()) Ok(())
} }
pub async fn update_user_handler( #[tracing::instrument(name = "update_user", skip(data, session))]
pub async fn update_user(
data: Data<UpdateUserRequest>, data: Data<UpdateUserRequest>,
session: Unit<Arc<UserSession>>, session: Unit<Arc<UserSession>>,
) -> ResponseResult<UserDetail, UserError> { ) -> ResponseResult<UserDetail, UserError> {

View File

@ -7,9 +7,9 @@ pub fn create(user_session: Arc<UserSession>) -> Module {
Module::new() Module::new()
.name("Flowy-User") .name("Flowy-User")
.data(user_session) .data(user_session)
.event(UserEvent::SignIn, user_sign_in_handler) .event(UserEvent::SignIn, sign_in)
.event(UserEvent::SignUp, user_sign_up_handler) .event(UserEvent::SignUp, sign_up)
.event(UserEvent::GetStatus, user_get_status_handler) .event(UserEvent::GetStatus, get_user_status)
.event(UserEvent::SignOut, sign_out_handler) .event(UserEvent::SignOut, sign_out)
.event(UserEvent::UpdateUser, update_user_handler) .event(UserEvent::UpdateUser, update_user)
} }

View File

@ -26,7 +26,7 @@
#[derive(PartialEq,Clone,Default)] #[derive(PartialEq,Clone,Default)]
pub struct UserError { pub struct UserError {
// message fields // message fields
pub code: UserErrorCode, pub code: UserErrCode,
pub msg: ::std::string::String, pub msg: ::std::string::String,
// special fields // special fields
pub unknown_fields: ::protobuf::UnknownFields, pub unknown_fields: ::protobuf::UnknownFields,
@ -44,18 +44,18 @@ impl UserError {
::std::default::Default::default() ::std::default::Default::default()
} }
// .UserErrorCode code = 1; // .UserErrCode code = 1;
pub fn get_code(&self) -> UserErrorCode { pub fn get_code(&self) -> UserErrCode {
self.code self.code
} }
pub fn clear_code(&mut self) { pub fn clear_code(&mut self) {
self.code = UserErrorCode::Unknown; self.code = UserErrCode::Unknown;
} }
// Param is passed by value, moved // Param is passed by value, moved
pub fn set_code(&mut self, v: UserErrorCode) { pub fn set_code(&mut self, v: UserErrCode) {
self.code = v; self.code = v;
} }
@ -113,7 +113,7 @@ impl ::protobuf::Message for UserError {
#[allow(unused_variables)] #[allow(unused_variables)]
fn compute_size(&self) -> u32 { fn compute_size(&self) -> u32 {
let mut my_size = 0; let mut my_size = 0;
if self.code != UserErrorCode::Unknown { if self.code != UserErrCode::Unknown {
my_size += ::protobuf::rt::enum_size(1, self.code); my_size += ::protobuf::rt::enum_size(1, self.code);
} }
if !self.msg.is_empty() { if !self.msg.is_empty() {
@ -125,7 +125,7 @@ impl ::protobuf::Message for UserError {
} }
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> { fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if self.code != UserErrorCode::Unknown { if self.code != UserErrCode::Unknown {
os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.code))?; os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.code))?;
} }
if !self.msg.is_empty() { if !self.msg.is_empty() {
@ -169,7 +169,7 @@ impl ::protobuf::Message for UserError {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT; static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| { descriptor.get(|| {
let mut fields = ::std::vec::Vec::new(); let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<UserErrorCode>>( fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<UserErrCode>>(
"code", "code",
|m: &UserError| { &m.code }, |m: &UserError| { &m.code },
|m: &mut UserError| { &mut m.code }, |m: &mut UserError| { &mut m.code },
@ -195,7 +195,7 @@ impl ::protobuf::Message for UserError {
impl ::protobuf::Clear for UserError { impl ::protobuf::Clear for UserError {
fn clear(&mut self) { fn clear(&mut self) {
self.code = UserErrorCode::Unknown; self.code = UserErrCode::Unknown;
self.msg.clear(); self.msg.clear();
self.unknown_fields.clear(); self.unknown_fields.clear();
} }
@ -214,7 +214,7 @@ impl ::protobuf::reflect::ProtobufValue for UserError {
} }
#[derive(Clone,PartialEq,Eq,Debug,Hash)] #[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum UserErrorCode { pub enum UserErrCode {
Unknown = 0, Unknown = 0,
UserDatabaseInitFailed = 1, UserDatabaseInitFailed = 1,
UserDatabaseWriteLocked = 2, UserDatabaseWriteLocked = 2,
@ -234,53 +234,53 @@ pub enum UserErrorCode {
DefaultWorkspaceAlreadyExist = 26, DefaultWorkspaceAlreadyExist = 26,
} }
impl ::protobuf::ProtobufEnum for UserErrorCode { impl ::protobuf::ProtobufEnum for UserErrCode {
fn value(&self) -> i32 { fn value(&self) -> i32 {
*self as i32 *self as i32
} }
fn from_i32(value: i32) -> ::std::option::Option<UserErrorCode> { fn from_i32(value: i32) -> ::std::option::Option<UserErrCode> {
match value { match value {
0 => ::std::option::Option::Some(UserErrorCode::Unknown), 0 => ::std::option::Option::Some(UserErrCode::Unknown),
1 => ::std::option::Option::Some(UserErrorCode::UserDatabaseInitFailed), 1 => ::std::option::Option::Some(UserErrCode::UserDatabaseInitFailed),
2 => ::std::option::Option::Some(UserErrorCode::UserDatabaseWriteLocked), 2 => ::std::option::Option::Some(UserErrCode::UserDatabaseWriteLocked),
3 => ::std::option::Option::Some(UserErrorCode::UserDatabaseReadLocked), 3 => ::std::option::Option::Some(UserErrCode::UserDatabaseReadLocked),
4 => ::std::option::Option::Some(UserErrorCode::UserDatabaseDidNotMatch), 4 => ::std::option::Option::Some(UserErrCode::UserDatabaseDidNotMatch),
5 => ::std::option::Option::Some(UserErrorCode::UserDatabaseInternalError), 5 => ::std::option::Option::Some(UserErrCode::UserDatabaseInternalError),
6 => ::std::option::Option::Some(UserErrorCode::SqlInternalError), 6 => ::std::option::Option::Some(UserErrCode::SqlInternalError),
10 => ::std::option::Option::Some(UserErrorCode::UserNotLoginYet), 10 => ::std::option::Option::Some(UserErrCode::UserNotLoginYet),
11 => ::std::option::Option::Some(UserErrorCode::ReadCurrentIdFailed), 11 => ::std::option::Option::Some(UserErrCode::ReadCurrentIdFailed),
12 => ::std::option::Option::Some(UserErrorCode::WriteCurrentIdFailed), 12 => ::std::option::Option::Some(UserErrCode::WriteCurrentIdFailed),
20 => ::std::option::Option::Some(UserErrorCode::EmailInvalid), 20 => ::std::option::Option::Some(UserErrCode::EmailInvalid),
21 => ::std::option::Option::Some(UserErrorCode::PasswordInvalid), 21 => ::std::option::Option::Some(UserErrCode::PasswordInvalid),
22 => ::std::option::Option::Some(UserErrorCode::UserNameInvalid), 22 => ::std::option::Option::Some(UserErrCode::UserNameInvalid),
23 => ::std::option::Option::Some(UserErrorCode::UserWorkspaceInvalid), 23 => ::std::option::Option::Some(UserErrCode::UserWorkspaceInvalid),
24 => ::std::option::Option::Some(UserErrorCode::UserIdInvalid), 24 => ::std::option::Option::Some(UserErrCode::UserIdInvalid),
25 => ::std::option::Option::Some(UserErrorCode::CreateDefaultWorkspaceFailed), 25 => ::std::option::Option::Some(UserErrCode::CreateDefaultWorkspaceFailed),
26 => ::std::option::Option::Some(UserErrorCode::DefaultWorkspaceAlreadyExist), 26 => ::std::option::Option::Some(UserErrCode::DefaultWorkspaceAlreadyExist),
_ => ::std::option::Option::None _ => ::std::option::Option::None
} }
} }
fn values() -> &'static [Self] { fn values() -> &'static [Self] {
static values: &'static [UserErrorCode] = &[ static values: &'static [UserErrCode] = &[
UserErrorCode::Unknown, UserErrCode::Unknown,
UserErrorCode::UserDatabaseInitFailed, UserErrCode::UserDatabaseInitFailed,
UserErrorCode::UserDatabaseWriteLocked, UserErrCode::UserDatabaseWriteLocked,
UserErrorCode::UserDatabaseReadLocked, UserErrCode::UserDatabaseReadLocked,
UserErrorCode::UserDatabaseDidNotMatch, UserErrCode::UserDatabaseDidNotMatch,
UserErrorCode::UserDatabaseInternalError, UserErrCode::UserDatabaseInternalError,
UserErrorCode::SqlInternalError, UserErrCode::SqlInternalError,
UserErrorCode::UserNotLoginYet, UserErrCode::UserNotLoginYet,
UserErrorCode::ReadCurrentIdFailed, UserErrCode::ReadCurrentIdFailed,
UserErrorCode::WriteCurrentIdFailed, UserErrCode::WriteCurrentIdFailed,
UserErrorCode::EmailInvalid, UserErrCode::EmailInvalid,
UserErrorCode::PasswordInvalid, UserErrCode::PasswordInvalid,
UserErrorCode::UserNameInvalid, UserErrCode::UserNameInvalid,
UserErrorCode::UserWorkspaceInvalid, UserErrCode::UserWorkspaceInvalid,
UserErrorCode::UserIdInvalid, UserErrCode::UserIdInvalid,
UserErrorCode::CreateDefaultWorkspaceFailed, UserErrCode::CreateDefaultWorkspaceFailed,
UserErrorCode::DefaultWorkspaceAlreadyExist, UserErrCode::DefaultWorkspaceAlreadyExist,
]; ];
values values
} }
@ -288,31 +288,31 @@ impl ::protobuf::ProtobufEnum for UserErrorCode {
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor { fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT; static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| { descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<UserErrorCode>("UserErrorCode", file_descriptor_proto()) ::protobuf::reflect::EnumDescriptor::new_pb_name::<UserErrCode>("UserErrCode", file_descriptor_proto())
}) })
} }
} }
impl ::std::marker::Copy for UserErrorCode { impl ::std::marker::Copy for UserErrCode {
} }
impl ::std::default::Default for UserErrorCode { impl ::std::default::Default for UserErrCode {
fn default() -> Self { fn default() -> Self {
UserErrorCode::Unknown UserErrCode::Unknown
} }
} }
impl ::protobuf::reflect::ProtobufValue for UserErrorCode { impl ::protobuf::reflect::ProtobufValue for UserErrCode {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef { fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self)) ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
} }
} }
static file_descriptor_proto_data: &'static [u8] = b"\ static file_descriptor_proto_data: &'static [u8] = b"\
\n\x0cerrors.proto\"A\n\tUserError\x12\"\n\x04code\x18\x01\x20\x01(\x0e2\ \n\x0cerrors.proto\"?\n\tUserError\x12\x20\n\x04code\x18\x01\x20\x01(\
\x0e.UserErrorCodeR\x04code\x12\x10\n\x03msg\x18\x02\x20\x01(\tR\x03msg*\ \x0e2\x0c.UserErrCodeR\x04code\x12\x10\n\x03msg\x18\x02\x20\x01(\tR\x03m\
\xb8\x03\n\rUserErrorCode\x12\x0b\n\x07Unknown\x10\0\x12\x1a\n\x16UserDa\ sg*\xb6\x03\n\x0bUserErrCode\x12\x0b\n\x07Unknown\x10\0\x12\x1a\n\x16Use\
tabaseInitFailed\x10\x01\x12\x1b\n\x17UserDatabaseWriteLocked\x10\x02\ rDatabaseInitFailed\x10\x01\x12\x1b\n\x17UserDatabaseWriteLocked\x10\x02\
\x12\x1a\n\x16UserDatabaseReadLocked\x10\x03\x12\x1b\n\x17UserDatabaseDi\ \x12\x1a\n\x16UserDatabaseReadLocked\x10\x03\x12\x1b\n\x17UserDatabaseDi\
dNotMatch\x10\x04\x12\x1d\n\x19UserDatabaseInternalError\x10\x05\x12\x14\ dNotMatch\x10\x04\x12\x1d\n\x19UserDatabaseInternalError\x10\x05\x12\x14\
\n\x10SqlInternalError\x10\x06\x12\x13\n\x0fUserNotLoginYet\x10\n\x12\ \n\x10SqlInternalError\x10\x06\x12\x13\n\x0fUserNotLoginYet\x10\n\x12\
@ -323,13 +323,13 @@ static file_descriptor_proto_data: &'static [u8] = b"\
ultWorkspaceFailed\x10\x19\x12\x20\n\x1cDefaultWorkspaceAlreadyExist\x10\ ultWorkspaceFailed\x10\x19\x12\x20\n\x1cDefaultWorkspaceAlreadyExist\x10\
\x1aJ\xe9\x06\n\x06\x12\x04\0\0\x18\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\ \x1aJ\xe9\x06\n\x06\x12\x04\0\0\x18\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\
\n\n\n\x02\x04\0\x12\x04\x02\0\x05\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\ \n\n\n\x02\x04\0\x12\x04\x02\0\x05\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\
\x08\x11\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\x1b\n\x0c\n\x05\x04\0\ \x08\x11\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\x19\n\x0c\n\x05\x04\0\
\x02\0\x06\x12\x03\x03\x04\x11\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\ \x02\0\x06\x12\x03\x03\x04\x0f\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\
\x12\x16\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x19\x1a\n\x0b\n\x04\x04\ \x10\x14\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x17\x18\n\x0b\n\x04\x04\
\0\x02\x01\x12\x03\x04\x04\x13\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x04\ \0\x02\x01\x12\x03\x04\x04\x13\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x04\
\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x04\x0b\x0e\n\x0c\n\x05\x04\ \x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x04\x0b\x0e\n\x0c\n\x05\x04\
\0\x02\x01\x03\x12\x03\x04\x11\x12\n\n\n\x02\x05\0\x12\x04\x06\0\x18\x01\ \0\x02\x01\x03\x12\x03\x04\x11\x12\n\n\n\x02\x05\0\x12\x04\x06\0\x18\x01\
\n\n\n\x03\x05\0\x01\x12\x03\x06\x05\x12\n\x0b\n\x04\x05\0\x02\0\x12\x03\ \n\n\n\x03\x05\0\x01\x12\x03\x06\x05\x10\n\x0b\n\x04\x05\0\x02\0\x12\x03\
\x07\x04\x10\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x07\x04\x0b\n\x0c\n\x05\ \x07\x04\x10\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x07\x04\x0b\n\x0c\n\x05\
\x05\0\x02\0\x02\x12\x03\x07\x0e\x0f\n\x0b\n\x04\x05\0\x02\x01\x12\x03\ \x05\0\x02\0\x02\x12\x03\x07\x0e\x0f\n\x0b\n\x04\x05\0\x02\x01\x12\x03\
\x08\x04\x1f\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x08\x04\x1a\n\x0c\n\ \x08\x04\x1f\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x08\x04\x1a\n\x0c\n\

View File

@ -1,10 +1,10 @@
syntax = "proto3"; syntax = "proto3";
message UserError { message UserError {
UserErrorCode code = 1; UserErrCode code = 1;
string msg = 2; string msg = 2;
} }
enum UserErrorCode { enum UserErrCode {
Unknown = 0; Unknown = 0;
UserDatabaseInitFailed = 1; UserDatabaseInitFailed = 1;
UserDatabaseWriteLocked = 2; UserDatabaseWriteLocked = 2;

View File

@ -1,4 +1,4 @@
use crate::errors::{ErrorBuilder, UserError, UserErrorCode}; use crate::errors::{ErrorBuilder, UserErrCode, UserError};
use flowy_database::{DBConnection, Database}; use flowy_database::{DBConnection, Database};
use lazy_static::lazy_static; use lazy_static::lazy_static;
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
@ -22,7 +22,7 @@ impl UserDB {
fn open_user_db(&self, user_id: &str) -> Result<(), UserError> { fn open_user_db(&self, user_id: &str) -> Result<(), UserError> {
if user_id.is_empty() { if user_id.is_empty() {
return Err(ErrorBuilder::new(UserErrorCode::UserDatabaseInitFailed) return Err(ErrorBuilder::new(UserErrCode::UserDatabaseInitFailed)
.msg("user id is empty") .msg("user id is empty")
.build()); .build());
} }
@ -30,13 +30,13 @@ impl UserDB {
let dir = format!("{}/{}", self.db_dir, user_id); let dir = format!("{}/{}", self.db_dir, user_id);
let db = flowy_database::init(&dir).map_err(|e| { let db = flowy_database::init(&dir).map_err(|e| {
log::error!("flowy_database::init failed, {:?}", e); log::error!("flowy_database::init failed, {:?}", e);
ErrorBuilder::new(UserErrorCode::UserDatabaseInitFailed) ErrorBuilder::new(UserErrCode::UserDatabaseInitFailed)
.error(e) .error(e)
.build() .build()
})?; })?;
let mut db_map = DB_MAP.write().map_err(|e| { let mut db_map = DB_MAP.write().map_err(|e| {
ErrorBuilder::new(UserErrorCode::UserDatabaseWriteLocked) ErrorBuilder::new(UserErrCode::UserDatabaseWriteLocked)
.error(e) .error(e)
.build() .build()
})?; })?;
@ -47,7 +47,7 @@ impl UserDB {
pub(crate) fn close_user_db(&self, user_id: &str) -> Result<(), UserError> { pub(crate) fn close_user_db(&self, user_id: &str) -> Result<(), UserError> {
let mut db_map = DB_MAP.write().map_err(|e| { let mut db_map = DB_MAP.write().map_err(|e| {
ErrorBuilder::new(UserErrorCode::UserDatabaseWriteLocked) ErrorBuilder::new(UserErrCode::UserDatabaseWriteLocked)
.msg(format!("Close user db failed. {:?}", e)) .msg(format!("Close user db failed. {:?}", e))
.build() .build()
})?; })?;
@ -63,13 +63,13 @@ impl UserDB {
} }
let db_map = DB_MAP.read().map_err(|e| { let db_map = DB_MAP.read().map_err(|e| {
ErrorBuilder::new(UserErrorCode::UserDatabaseReadLocked) ErrorBuilder::new(UserErrCode::UserDatabaseReadLocked)
.error(e) .error(e)
.build() .build()
})?; })?;
match db_map.get(user_id) { match db_map.get(user_id) {
None => Err(ErrorBuilder::new(UserErrorCode::UserDatabaseInitFailed) None => Err(ErrorBuilder::new(UserErrCode::UserDatabaseInitFailed)
.msg("Get connection failed. The database is not initialization") .msg("Get connection failed. The database is not initialization")
.build()), .build()),
Some(database) => Ok(database.get_connection()?), Some(database) => Ok(database.get_connection()?),

View File

@ -11,7 +11,7 @@ use std::sync::{Arc, RwLock};
use crate::{ use crate::{
entities::{SignInParams, SignUpParams, UpdateUserParams, UpdateUserRequest, UserDetail}, entities::{SignInParams, SignUpParams, UpdateUserParams, UpdateUserRequest, UserDetail},
errors::{ErrorBuilder, UserError, UserErrorCode}, errors::{ErrorBuilder, UserErrCode, UserError},
event::UserEvent::*, event::UserEvent::*,
services::user_session::{database::UserDB, user_server::UserServer}, services::user_session::{database::UserDB, user_server::UserServer},
sql_tables::{UserTable, UserTableChangeset}, sql_tables::{UserTable, UserTableChangeset},
@ -140,7 +140,7 @@ impl UserSession {
*write_guard = user_id; *write_guard = user_id;
Ok(()) Ok(())
}, },
Err(e) => Err(ErrorBuilder::new(UserErrorCode::WriteCurrentIdFailed) Err(e) => Err(ErrorBuilder::new(UserErrCode::WriteCurrentIdFailed)
.error(e) .error(e)
.build()), .build()),
} }
@ -154,7 +154,7 @@ impl UserSession {
pub fn get_user_id(&self) -> Result<String, UserError> { pub fn get_user_id(&self) -> Result<String, UserError> {
let mut user_id = { let mut user_id = {
let read_guard = self.user_id.read().map_err(|e| { let read_guard = self.user_id.read().map_err(|e| {
ErrorBuilder::new(UserErrorCode::ReadCurrentIdFailed) ErrorBuilder::new(UserErrCode::ReadCurrentIdFailed)
.error(e) .error(e)
.build() .build()
})?; })?;
@ -168,7 +168,7 @@ impl UserSession {
} }
match user_id { match user_id {
None => Err(ErrorBuilder::new(UserErrorCode::UserNotLoginYet).build()), None => Err(ErrorBuilder::new(UserErrCode::UserNotLoginYet).build()),
Some(user_id) => Ok(user_id), Some(user_id) => Ok(user_id),
} }
} }
@ -191,7 +191,7 @@ impl UserSession {
async fn create_default_workspace_if_need(&self, user_id: &str) -> Result<String, UserError> { async fn create_default_workspace_if_need(&self, user_id: &str) -> Result<String, UserError> {
let key = format!("{}{}", user_id, DEFAULT_WORKSPACE); let key = format!("{}{}", user_id, DEFAULT_WORKSPACE);
if KVStore::get_bool(&key).unwrap_or(false) { if KVStore::get_bool(&key).unwrap_or(false) {
return Err(ErrorBuilder::new(UserErrorCode::DefaultWorkspaceAlreadyExist).build()); return Err(ErrorBuilder::new(UserErrCode::DefaultWorkspaceAlreadyExist).build());
} }
KVStore::set_bool(&key, true); KVStore::set_bool(&key, true);
log::debug!("Create user:{} default workspace", user_id); log::debug!("Create user:{} default workspace", user_id);
@ -205,7 +205,7 @@ impl UserSession {
pub fn current_user_id() -> Result<String, UserError> { pub fn current_user_id() -> Result<String, UserError> {
match KVStore::get_str(USER_ID_CACHE_KEY) { match KVStore::get_str(USER_ID_CACHE_KEY) {
None => Err(ErrorBuilder::new(UserErrorCode::UserNotLoginYet).build()), None => Err(ErrorBuilder::new(UserErrCode::UserNotLoginYet).build()),
Some(user_id) => Ok(user_id), Some(user_id) => Ok(user_id),
} }
} }

View File

@ -1,5 +1,5 @@
use crate::helper::*; use crate::helper::*;
use flowy_user::{errors::UserErrorCode, event::UserEvent::*, prelude::*}; use flowy_user::{errors::UserErrCode, event::UserEvent::*, prelude::*};
use serial_test::*; use serial_test::*;
#[test] #[test]
@ -35,7 +35,7 @@ fn sign_in_with_invalid_email() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::EmailInvalid UserErrCode::EmailInvalid
); );
} }
} }
@ -56,7 +56,7 @@ fn sign_in_with_invalid_password() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::PasswordInvalid UserErrCode::PasswordInvalid
); );
} }
} }

View File

@ -35,7 +35,7 @@ fn sign_up_with_invalid_email() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::EmailInvalid UserErrCode::EmailInvalid
); );
} }
} }
@ -56,7 +56,7 @@ fn sign_up_with_invalid_password() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::PasswordInvalid UserErrCode::PasswordInvalid
); );
} }
} }

View File

@ -1,5 +1,5 @@
use crate::helper::*; use crate::helper::*;
use flowy_user::{errors::UserErrorCode, event::UserEvent::*, prelude::*}; use flowy_user::{errors::UserErrCode, event::UserEvent::*, prelude::*};
use serial_test::*; use serial_test::*;
#[test] #[test]
@ -86,7 +86,7 @@ fn user_update_with_invalid_email() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::EmailInvalid UserErrCode::EmailInvalid
); );
} }
} }
@ -111,7 +111,7 @@ fn user_update_with_invalid_password() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::PasswordInvalid UserErrCode::PasswordInvalid
); );
} }
} }
@ -135,6 +135,6 @@ fn user_update_with_invalid_name() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
UserErrorCode::UserNameInvalid UserErrCode::UserNameInvalid
); );
} }

View File

@ -42,20 +42,17 @@ impl TryInto<CreateAppParams> for CreateAppRequest {
type Error = WorkspaceError; type Error = WorkspaceError;
fn try_into(self) -> Result<CreateAppParams, Self::Error> { fn try_into(self) -> Result<CreateAppParams, Self::Error> {
let name = AppName::parse(self.name).map_err(|e| { let name = AppName::parse(self.name)
ErrorBuilder::new(WorkspaceErrorCode::AppNameInvalid) .map_err(|e| ErrorBuilder::new(WsErrCode::AppNameInvalid).msg(e).build())?;
.msg(e)
.build()
})?;
let id = WorkspaceId::parse(self.workspace_id).map_err(|e| { let id = WorkspaceId::parse(self.workspace_id).map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceIdInvalid) ErrorBuilder::new(WsErrCode::WorkspaceIdInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;
let color_style = AppColorStyle::parse(self.color_style).map_err(|e| { let color_style = AppColorStyle::parse(self.color_style).map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::AppColorStyleInvalid) ErrorBuilder::new(WsErrCode::AppColorStyleInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;

View File

@ -21,11 +21,7 @@ impl TryInto<QueryAppParams> for QueryAppRequest {
fn try_into(self) -> Result<QueryAppParams, Self::Error> { fn try_into(self) -> Result<QueryAppParams, Self::Error> {
let app_id = AppId::parse(self.app_id) let app_id = AppId::parse(self.app_id)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::AppIdInvalid)
.msg(e)
.build()
})?
.0; .0;
Ok(QueryAppParams { Ok(QueryAppParams {

View File

@ -6,7 +6,7 @@ use crate::{
}, },
workspace::parser::WorkspaceId, workspace::parser::WorkspaceId,
}, },
errors::{ErrorBuilder, WorkspaceError, WorkspaceErrorCode}, errors::{ErrorBuilder, WorkspaceError, WsErrCode},
}; };
use flowy_derive::ProtoBuf; use flowy_derive::ProtoBuf;
use std::convert::TryInto; use std::convert::TryInto;
@ -42,11 +42,7 @@ impl TryInto<UpdateAppParams> for UpdateAppRequest {
fn try_into(self) -> Result<UpdateAppParams, Self::Error> { fn try_into(self) -> Result<UpdateAppParams, Self::Error> {
let app_id = AppId::parse(self.app_id) let app_id = AppId::parse(self.app_id)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::AppIdInvalid)
.msg(e)
.build()
})?
.0; .0;
let name = match self.name { let name = match self.name {
@ -54,7 +50,7 @@ impl TryInto<UpdateAppParams> for UpdateAppRequest {
Some(name) => Some( Some(name) => Some(
AppName::parse(name) AppName::parse(name)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceNameInvalid) ErrorBuilder::new(WsErrCode::WorkspaceNameInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?
@ -67,7 +63,7 @@ impl TryInto<UpdateAppParams> for UpdateAppRequest {
Some(wid) => Some( Some(wid) => Some(
WorkspaceId::parse(wid) WorkspaceId::parse(wid)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceIdInvalid) ErrorBuilder::new(WsErrCode::WorkspaceIdInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?
@ -80,7 +76,7 @@ impl TryInto<UpdateAppParams> for UpdateAppRequest {
Some(color_style) => Some( Some(color_style) => Some(
AppColorStyle::parse(color_style) AppColorStyle::parse(color_style)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::AppColorStyleInvalid) ErrorBuilder::new(WsErrCode::AppColorStyleInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::{app::parser::AppId, view::parser::*}, entities::{app::parser::AppId, view::parser::*},
errors::{ErrorBuilder, WorkspaceError, WorkspaceErrorCode}, errors::{ErrorBuilder, WorkspaceError, WsErrCode},
impl_def_and_def_mut, impl_def_and_def_mut,
sql_tables::view::ViewTableType, sql_tables::view::ViewTableType,
}; };
@ -48,19 +48,11 @@ impl TryInto<CreateViewParams> for CreateViewRequest {
fn try_into(self) -> Result<CreateViewParams, Self::Error> { fn try_into(self) -> Result<CreateViewParams, Self::Error> {
let name = ViewName::parse(self.name) let name = ViewName::parse(self.name)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::ViewNameInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::ViewNameInvalid)
.msg(e)
.build()
})?
.0; .0;
let app_id = AppId::parse(self.app_id) let app_id = AppId::parse(self.app_id)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::AppIdInvalid)
.msg(e)
.build()
})?
.0; .0;
let thumbnail = match self.thumbnail { let thumbnail = match self.thumbnail {
@ -68,7 +60,7 @@ impl TryInto<CreateViewParams> for CreateViewRequest {
Some(thumbnail) => { Some(thumbnail) => {
ViewThumbnail::parse(thumbnail) ViewThumbnail::parse(thumbnail)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::ViewThumbnailInvalid) ErrorBuilder::new(WsErrCode::ViewThumbnailInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::view::parser::ViewId, entities::view::parser::ViewId,
errors::{ErrorBuilder, WorkspaceError, WorkspaceErrorCode}, errors::{ErrorBuilder, WorkspaceError, WsErrCode},
}; };
use flowy_derive::ProtoBuf; use flowy_derive::ProtoBuf;
use std::convert::TryInto; use std::convert::TryInto;
@ -20,11 +20,7 @@ impl TryInto<QueryViewParams> for QueryViewRequest {
fn try_into(self) -> Result<QueryViewParams, Self::Error> { fn try_into(self) -> Result<QueryViewParams, Self::Error> {
let view_id = ViewId::parse(self.view_id) let view_id = ViewId::parse(self.view_id)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::ViewIdInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::ViewIdInvalid)
.msg(e)
.build()
})?
.0; .0;
Ok(QueryViewParams { view_id }) Ok(QueryViewParams { view_id })

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::view::parser::{ViewId, *}, entities::view::parser::{ViewId, *},
errors::{ErrorBuilder, WorkspaceError, WorkspaceErrorCode}, errors::{ErrorBuilder, WorkspaceError, WsErrCode},
}; };
use flowy_derive::ProtoBuf; use flowy_derive::ProtoBuf;
use std::convert::TryInto; use std::convert::TryInto;
@ -32,22 +32,14 @@ impl TryInto<UpdateViewParams> for UpdateViewRequest {
fn try_into(self) -> Result<UpdateViewParams, Self::Error> { fn try_into(self) -> Result<UpdateViewParams, Self::Error> {
let view_id = ViewId::parse(self.view_id) let view_id = ViewId::parse(self.view_id)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::ViewIdInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::ViewIdInvalid)
.msg(e)
.build()
})?
.0; .0;
let name = match self.name { let name = match self.name {
None => None, None => None,
Some(name) => Some( Some(name) => Some(
ViewName::parse(name) ViewName::parse(name)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::ViewNameInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::ViewNameInvalid)
.msg(e)
.build()
})?
.0, .0,
), ),
}; };
@ -56,11 +48,7 @@ impl TryInto<UpdateViewParams> for UpdateViewRequest {
None => None, None => None,
Some(desc) => Some( Some(desc) => Some(
ViewDesc::parse(desc) ViewDesc::parse(desc)
.map_err(|e| { .map_err(|e| ErrorBuilder::new(WsErrCode::ViewDescInvalid).msg(e).build())?
ErrorBuilder::new(WorkspaceErrorCode::ViewDescInvalid)
.msg(e)
.build()
})?
.0, .0,
), ),
}; };
@ -70,7 +58,7 @@ impl TryInto<UpdateViewParams> for UpdateViewRequest {
Some(thumbnail) => Some( Some(thumbnail) => Some(
ViewThumbnail::parse(thumbnail) ViewThumbnail::parse(thumbnail)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::ViewThumbnailInvalid) ErrorBuilder::new(WsErrCode::ViewThumbnailInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?

View File

@ -1,8 +1,5 @@
use crate::{ use crate::{
entities::{ entities::{app::RepeatedApp, workspace::parser::*},
app::{App, RepeatedApp},
workspace::parser::*,
},
errors::*, errors::*,
}; };
use flowy_derive::ProtoBuf; use flowy_derive::ProtoBuf;
@ -27,7 +24,7 @@ impl TryInto<CreateWorkspaceParams> for CreateWorkspaceRequest {
fn try_into(self) -> Result<CreateWorkspaceParams, Self::Error> { fn try_into(self) -> Result<CreateWorkspaceParams, Self::Error> {
let name = WorkspaceName::parse(self.name).map_err(|e| { let name = WorkspaceName::parse(self.name).map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceNameInvalid) ErrorBuilder::new(WsErrCode::WorkspaceNameInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;

View File

@ -22,7 +22,7 @@ impl TryInto<QueryWorkspaceParams> for QueryWorkspaceRequest {
fn try_into(self) -> Result<QueryWorkspaceParams, Self::Error> { fn try_into(self) -> Result<QueryWorkspaceParams, Self::Error> {
let workspace_id = WorkspaceId::parse(self.workspace_id) let workspace_id = WorkspaceId::parse(self.workspace_id)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceIdInvalid) ErrorBuilder::new(WsErrCode::WorkspaceIdInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?

View File

@ -31,7 +31,7 @@ impl TryInto<UpdateWorkspaceParams> for UpdateWorkspaceRequest {
Some(name) => Some( Some(name) => Some(
WorkspaceName::parse(name) WorkspaceName::parse(name)
.map_err(|e| { .map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceNameInvalid) ErrorBuilder::new(WsErrCode::WorkspaceNameInvalid)
.msg(e) .msg(e)
.build() .build()
})? })?
@ -40,7 +40,7 @@ impl TryInto<UpdateWorkspaceParams> for UpdateWorkspaceRequest {
}; };
let id = WorkspaceId::parse(self.id).map_err(|e| { let id = WorkspaceId::parse(self.id).map_err(|e| {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceIdInvalid) ErrorBuilder::new(WsErrCode::WorkspaceIdInvalid)
.msg(e) .msg(e)
.build() .build()
})?; })?;

View File

@ -6,14 +6,14 @@ use std::convert::TryInto;
#[derive(Debug, Default, Clone, ProtoBuf)] #[derive(Debug, Default, Clone, ProtoBuf)]
pub struct WorkspaceError { pub struct WorkspaceError {
#[pb(index = 1)] #[pb(index = 1)]
pub code: WorkspaceErrorCode, pub code: WsErrCode,
#[pb(index = 2)] #[pb(index = 2)]
pub msg: String, pub msg: String,
} }
impl WorkspaceError { impl WorkspaceError {
pub fn new(code: WorkspaceErrorCode, msg: &str) -> Self { pub fn new(code: WsErrCode, msg: &str) -> Self {
Self { Self {
code, code,
msg: msg.to_owned(), msg: msg.to_owned(),
@ -22,7 +22,7 @@ impl WorkspaceError {
} }
#[derive(Debug, Clone, ProtoBuf_Enum, Display, PartialEq, Eq)] #[derive(Debug, Clone, ProtoBuf_Enum, Display, PartialEq, Eq)]
pub enum WorkspaceErrorCode { pub enum WsErrCode {
#[display(fmt = "Unknown")] #[display(fmt = "Unknown")]
Unknown = 0, Unknown = 0,
@ -66,13 +66,13 @@ pub enum WorkspaceErrorCode {
UserNotLoginYet = 103, UserNotLoginYet = 103,
} }
impl std::default::Default for WorkspaceErrorCode { impl std::default::Default for WsErrCode {
fn default() -> Self { WorkspaceErrorCode::Unknown } fn default() -> Self { WsErrCode::Unknown }
} }
impl std::convert::From<flowy_database::result::Error> for WorkspaceError { impl std::convert::From<flowy_database::result::Error> for WorkspaceError {
fn from(error: flowy_database::result::Error) -> Self { fn from(error: flowy_database::result::Error) -> Self {
ErrorBuilder::new(WorkspaceErrorCode::WorkspaceDatabaseError) ErrorBuilder::new(WsErrCode::WorkspaceDatabaseError)
.error(error) .error(error)
.build() .build()
} }
@ -86,12 +86,12 @@ impl flowy_dispatch::Error for WorkspaceError {
} }
pub struct ErrorBuilder { pub struct ErrorBuilder {
pub code: WorkspaceErrorCode, pub code: WsErrCode,
pub msg: Option<String>, pub msg: Option<String>,
} }
impl ErrorBuilder { impl ErrorBuilder {
pub fn new(code: WorkspaceErrorCode) -> Self { ErrorBuilder { code, msg: None } } pub fn new(code: WsErrCode) -> Self { ErrorBuilder { code, msg: None } }
pub fn msg<T>(mut self, msg: T) -> Self pub fn msg<T>(mut self, msg: T) -> Self
where where

View File

@ -14,8 +14,8 @@ mod services;
#[macro_use] #[macro_use]
extern crate flowy_database; extern crate flowy_database;
#[macro_use] // #[macro_use]
extern crate flowy_dispatch; // extern crate flowy_dispatch;
pub mod prelude { pub mod prelude {
pub use crate::{errors::*, module::*, services::*}; pub use crate::{errors::*, module::*, services::*};

View File

@ -1,3 +1,3 @@
mod observable; mod observable;
pub use observable::*; pub(crate) use observable::*;

View File

@ -35,6 +35,7 @@ impl ObservableSender {
} }
} }
#[allow(dead_code)]
pub(crate) fn payload<T>(mut self, payload: T) -> Self pub(crate) fn payload<T>(mut self, payload: T) -> Self
where where
T: ToBytes, T: ToBytes,
@ -68,6 +69,7 @@ pub(crate) fn send_observable(id: &str, ty: WorkspaceObservable) {
ObservableSender::new(id, ty).send(); ObservableSender::new(id, ty).send();
} }
#[allow(dead_code)]
pub(crate) fn send_observable_with_payload<T>(id: &str, ty: WorkspaceObservable, payload: T) pub(crate) fn send_observable_with_payload<T>(id: &str, ty: WorkspaceObservable, payload: T)
where where
T: ToBytes, T: ToBytes,

View File

@ -26,7 +26,7 @@
#[derive(PartialEq,Clone,Default)] #[derive(PartialEq,Clone,Default)]
pub struct WorkspaceError { pub struct WorkspaceError {
// message fields // message fields
pub code: WorkspaceErrorCode, pub code: WsErrCode,
pub msg: ::std::string::String, pub msg: ::std::string::String,
// special fields // special fields
pub unknown_fields: ::protobuf::UnknownFields, pub unknown_fields: ::protobuf::UnknownFields,
@ -44,18 +44,18 @@ impl WorkspaceError {
::std::default::Default::default() ::std::default::Default::default()
} }
// .WorkspaceErrorCode code = 1; // .WsErrCode code = 1;
pub fn get_code(&self) -> WorkspaceErrorCode { pub fn get_code(&self) -> WsErrCode {
self.code self.code
} }
pub fn clear_code(&mut self) { pub fn clear_code(&mut self) {
self.code = WorkspaceErrorCode::Unknown; self.code = WsErrCode::Unknown;
} }
// Param is passed by value, moved // Param is passed by value, moved
pub fn set_code(&mut self, v: WorkspaceErrorCode) { pub fn set_code(&mut self, v: WsErrCode) {
self.code = v; self.code = v;
} }
@ -113,7 +113,7 @@ impl ::protobuf::Message for WorkspaceError {
#[allow(unused_variables)] #[allow(unused_variables)]
fn compute_size(&self) -> u32 { fn compute_size(&self) -> u32 {
let mut my_size = 0; let mut my_size = 0;
if self.code != WorkspaceErrorCode::Unknown { if self.code != WsErrCode::Unknown {
my_size += ::protobuf::rt::enum_size(1, self.code); my_size += ::protobuf::rt::enum_size(1, self.code);
} }
if !self.msg.is_empty() { if !self.msg.is_empty() {
@ -125,7 +125,7 @@ impl ::protobuf::Message for WorkspaceError {
} }
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> { fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if self.code != WorkspaceErrorCode::Unknown { if self.code != WsErrCode::Unknown {
os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.code))?; os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.code))?;
} }
if !self.msg.is_empty() { if !self.msg.is_empty() {
@ -169,7 +169,7 @@ impl ::protobuf::Message for WorkspaceError {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT; static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| { descriptor.get(|| {
let mut fields = ::std::vec::Vec::new(); let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<WorkspaceErrorCode>>( fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<WsErrCode>>(
"code", "code",
|m: &WorkspaceError| { &m.code }, |m: &WorkspaceError| { &m.code },
|m: &mut WorkspaceError| { &mut m.code }, |m: &mut WorkspaceError| { &mut m.code },
@ -195,7 +195,7 @@ impl ::protobuf::Message for WorkspaceError {
impl ::protobuf::Clear for WorkspaceError { impl ::protobuf::Clear for WorkspaceError {
fn clear(&mut self) { fn clear(&mut self) {
self.code = WorkspaceErrorCode::Unknown; self.code = WsErrCode::Unknown;
self.msg.clear(); self.msg.clear();
self.unknown_fields.clear(); self.unknown_fields.clear();
} }
@ -214,7 +214,7 @@ impl ::protobuf::reflect::ProtobufValue for WorkspaceError {
} }
#[derive(Clone,PartialEq,Eq,Debug,Hash)] #[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum WorkspaceErrorCode { pub enum WsErrCode {
Unknown = 0, Unknown = 0,
WorkspaceNameInvalid = 1, WorkspaceNameInvalid = 1,
WorkspaceIdInvalid = 2, WorkspaceIdInvalid = 2,
@ -231,47 +231,47 @@ pub enum WorkspaceErrorCode {
UserNotLoginYet = 103, UserNotLoginYet = 103,
} }
impl ::protobuf::ProtobufEnum for WorkspaceErrorCode { impl ::protobuf::ProtobufEnum for WsErrCode {
fn value(&self) -> i32 { fn value(&self) -> i32 {
*self as i32 *self as i32
} }
fn from_i32(value: i32) -> ::std::option::Option<WorkspaceErrorCode> { fn from_i32(value: i32) -> ::std::option::Option<WsErrCode> {
match value { match value {
0 => ::std::option::Option::Some(WorkspaceErrorCode::Unknown), 0 => ::std::option::Option::Some(WsErrCode::Unknown),
1 => ::std::option::Option::Some(WorkspaceErrorCode::WorkspaceNameInvalid), 1 => ::std::option::Option::Some(WsErrCode::WorkspaceNameInvalid),
2 => ::std::option::Option::Some(WorkspaceErrorCode::WorkspaceIdInvalid), 2 => ::std::option::Option::Some(WsErrCode::WorkspaceIdInvalid),
3 => ::std::option::Option::Some(WorkspaceErrorCode::AppColorStyleInvalid), 3 => ::std::option::Option::Some(WsErrCode::AppColorStyleInvalid),
10 => ::std::option::Option::Some(WorkspaceErrorCode::AppIdInvalid), 10 => ::std::option::Option::Some(WsErrCode::AppIdInvalid),
11 => ::std::option::Option::Some(WorkspaceErrorCode::AppNameInvalid), 11 => ::std::option::Option::Some(WsErrCode::AppNameInvalid),
20 => ::std::option::Option::Some(WorkspaceErrorCode::ViewNameInvalid), 20 => ::std::option::Option::Some(WsErrCode::ViewNameInvalid),
21 => ::std::option::Option::Some(WorkspaceErrorCode::ViewThumbnailInvalid), 21 => ::std::option::Option::Some(WsErrCode::ViewThumbnailInvalid),
22 => ::std::option::Option::Some(WorkspaceErrorCode::ViewIdInvalid), 22 => ::std::option::Option::Some(WsErrCode::ViewIdInvalid),
23 => ::std::option::Option::Some(WorkspaceErrorCode::ViewDescInvalid), 23 => ::std::option::Option::Some(WsErrCode::ViewDescInvalid),
100 => ::std::option::Option::Some(WorkspaceErrorCode::DatabaseConnectionFail), 100 => ::std::option::Option::Some(WsErrCode::DatabaseConnectionFail),
101 => ::std::option::Option::Some(WorkspaceErrorCode::WorkspaceDatabaseError), 101 => ::std::option::Option::Some(WsErrCode::WorkspaceDatabaseError),
102 => ::std::option::Option::Some(WorkspaceErrorCode::UserInternalError), 102 => ::std::option::Option::Some(WsErrCode::UserInternalError),
103 => ::std::option::Option::Some(WorkspaceErrorCode::UserNotLoginYet), 103 => ::std::option::Option::Some(WsErrCode::UserNotLoginYet),
_ => ::std::option::Option::None _ => ::std::option::Option::None
} }
} }
fn values() -> &'static [Self] { fn values() -> &'static [Self] {
static values: &'static [WorkspaceErrorCode] = &[ static values: &'static [WsErrCode] = &[
WorkspaceErrorCode::Unknown, WsErrCode::Unknown,
WorkspaceErrorCode::WorkspaceNameInvalid, WsErrCode::WorkspaceNameInvalid,
WorkspaceErrorCode::WorkspaceIdInvalid, WsErrCode::WorkspaceIdInvalid,
WorkspaceErrorCode::AppColorStyleInvalid, WsErrCode::AppColorStyleInvalid,
WorkspaceErrorCode::AppIdInvalid, WsErrCode::AppIdInvalid,
WorkspaceErrorCode::AppNameInvalid, WsErrCode::AppNameInvalid,
WorkspaceErrorCode::ViewNameInvalid, WsErrCode::ViewNameInvalid,
WorkspaceErrorCode::ViewThumbnailInvalid, WsErrCode::ViewThumbnailInvalid,
WorkspaceErrorCode::ViewIdInvalid, WsErrCode::ViewIdInvalid,
WorkspaceErrorCode::ViewDescInvalid, WsErrCode::ViewDescInvalid,
WorkspaceErrorCode::DatabaseConnectionFail, WsErrCode::DatabaseConnectionFail,
WorkspaceErrorCode::WorkspaceDatabaseError, WsErrCode::WorkspaceDatabaseError,
WorkspaceErrorCode::UserInternalError, WsErrCode::UserInternalError,
WorkspaceErrorCode::UserNotLoginYet, WsErrCode::UserNotLoginYet,
]; ];
values values
} }
@ -279,74 +279,74 @@ impl ::protobuf::ProtobufEnum for WorkspaceErrorCode {
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor { fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT; static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| { descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<WorkspaceErrorCode>("WorkspaceErrorCode", file_descriptor_proto()) ::protobuf::reflect::EnumDescriptor::new_pb_name::<WsErrCode>("WsErrCode", file_descriptor_proto())
}) })
} }
} }
impl ::std::marker::Copy for WorkspaceErrorCode { impl ::std::marker::Copy for WsErrCode {
} }
impl ::std::default::Default for WorkspaceErrorCode { impl ::std::default::Default for WsErrCode {
fn default() -> Self { fn default() -> Self {
WorkspaceErrorCode::Unknown WsErrCode::Unknown
} }
} }
impl ::protobuf::reflect::ProtobufValue for WorkspaceErrorCode { impl ::protobuf::reflect::ProtobufValue for WsErrCode {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef { fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self)) ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
} }
} }
static file_descriptor_proto_data: &'static [u8] = b"\ static file_descriptor_proto_data: &'static [u8] = b"\
\n\x0cerrors.proto\"K\n\x0eWorkspaceError\x12'\n\x04code\x18\x01\x20\x01\ \n\x0cerrors.proto\"B\n\x0eWorkspaceError\x12\x1e\n\x04code\x18\x01\x20\
(\x0e2\x13.WorkspaceErrorCodeR\x04code\x12\x10\n\x03msg\x18\x02\x20\x01(\ \x01(\x0e2\n.WsErrCodeR\x04code\x12\x10\n\x03msg\x18\x02\x20\x01(\tR\x03\
\tR\x03msg*\xce\x02\n\x12WorkspaceErrorCode\x12\x0b\n\x07Unknown\x10\0\ msg*\xc5\x02\n\tWsErrCode\x12\x0b\n\x07Unknown\x10\0\x12\x18\n\x14Worksp\
\x12\x18\n\x14WorkspaceNameInvalid\x10\x01\x12\x16\n\x12WorkspaceIdInval\ aceNameInvalid\x10\x01\x12\x16\n\x12WorkspaceIdInvalid\x10\x02\x12\x18\n\
id\x10\x02\x12\x18\n\x14AppColorStyleInvalid\x10\x03\x12\x10\n\x0cAppIdI\ \x14AppColorStyleInvalid\x10\x03\x12\x10\n\x0cAppIdInvalid\x10\n\x12\x12\
nvalid\x10\n\x12\x12\n\x0eAppNameInvalid\x10\x0b\x12\x13\n\x0fViewNameIn\ \n\x0eAppNameInvalid\x10\x0b\x12\x13\n\x0fViewNameInvalid\x10\x14\x12\
valid\x10\x14\x12\x18\n\x14ViewThumbnailInvalid\x10\x15\x12\x11\n\rViewI\ \x18\n\x14ViewThumbnailInvalid\x10\x15\x12\x11\n\rViewIdInvalid\x10\x16\
dInvalid\x10\x16\x12\x13\n\x0fViewDescInvalid\x10\x17\x12\x1a\n\x16Datab\ \x12\x13\n\x0fViewDescInvalid\x10\x17\x12\x1a\n\x16DatabaseConnectionFai\
aseConnectionFail\x10d\x12\x1a\n\x16WorkspaceDatabaseError\x10e\x12\x15\ l\x10d\x12\x1a\n\x16WorkspaceDatabaseError\x10e\x12\x15\n\x11UserInterna\
\n\x11UserInternalError\x10f\x12\x13\n\x0fUserNotLoginYet\x10gJ\xee\x05\ lError\x10f\x12\x13\n\x0fUserNotLoginYet\x10gJ\xee\x05\n\x06\x12\x04\0\0\
\n\x06\x12\x04\0\0\x15\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\n\n\x02\x04\ \x15\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\x04\x02\0\
\0\x12\x04\x02\0\x05\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\x08\x16\n\x0b\n\ \x05\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\x08\x16\n\x0b\n\x04\x04\0\x02\0\
\x04\x04\0\x02\0\x12\x03\x03\x04\x20\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\ \x12\x03\x03\x04\x17\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x03\x04\r\n\x0c\
\x03\x04\x16\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\x17\x1b\n\x0c\n\x05\ \n\x05\x04\0\x02\0\x01\x12\x03\x03\x0e\x12\n\x0c\n\x05\x04\0\x02\0\x03\
\x04\0\x02\0\x03\x12\x03\x03\x1e\x1f\n\x0b\n\x04\x04\0\x02\x01\x12\x03\ \x12\x03\x03\x15\x16\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x04\x04\x13\n\x0c\
\x04\x04\x13\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x04\x04\n\n\x0c\n\x05\ \n\x05\x04\0\x02\x01\x05\x12\x03\x04\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\
\x04\0\x02\x01\x01\x12\x03\x04\x0b\x0e\n\x0c\n\x05\x04\0\x02\x01\x03\x12\ \x12\x03\x04\x0b\x0e\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x04\x11\x12\n\
\x03\x04\x11\x12\n\n\n\x02\x05\0\x12\x04\x06\0\x15\x01\n\n\n\x03\x05\0\ \n\n\x02\x05\0\x12\x04\x06\0\x15\x01\n\n\n\x03\x05\0\x01\x12\x03\x06\x05\
\x01\x12\x03\x06\x05\x17\n\x0b\n\x04\x05\0\x02\0\x12\x03\x07\x04\x10\n\ \x0e\n\x0b\n\x04\x05\0\x02\0\x12\x03\x07\x04\x10\n\x0c\n\x05\x05\0\x02\0\
\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x07\x04\x0b\n\x0c\n\x05\x05\0\x02\0\ \x01\x12\x03\x07\x04\x0b\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x07\x0e\x0f\
\x02\x12\x03\x07\x0e\x0f\n\x0b\n\x04\x05\0\x02\x01\x12\x03\x08\x04\x1d\n\ \n\x0b\n\x04\x05\0\x02\x01\x12\x03\x08\x04\x1d\n\x0c\n\x05\x05\0\x02\x01\
\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x08\x04\x18\n\x0c\n\x05\x05\0\x02\ \x01\x12\x03\x08\x04\x18\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x08\x1b\
\x01\x02\x12\x03\x08\x1b\x1c\n\x0b\n\x04\x05\0\x02\x02\x12\x03\t\x04\x1b\ \x1c\n\x0b\n\x04\x05\0\x02\x02\x12\x03\t\x04\x1b\n\x0c\n\x05\x05\0\x02\
\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\t\x04\x16\n\x0c\n\x05\x05\0\x02\ \x02\x01\x12\x03\t\x04\x16\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\t\x19\
\x02\x02\x12\x03\t\x19\x1a\n\x0b\n\x04\x05\0\x02\x03\x12\x03\n\x04\x1d\n\ \x1a\n\x0b\n\x04\x05\0\x02\x03\x12\x03\n\x04\x1d\n\x0c\n\x05\x05\0\x02\
\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\n\x04\x18\n\x0c\n\x05\x05\0\x02\x03\ \x03\x01\x12\x03\n\x04\x18\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\n\x1b\
\x02\x12\x03\n\x1b\x1c\n\x0b\n\x04\x05\0\x02\x04\x12\x03\x0b\x04\x16\n\ \x1c\n\x0b\n\x04\x05\0\x02\x04\x12\x03\x0b\x04\x16\n\x0c\n\x05\x05\0\x02\
\x0c\n\x05\x05\0\x02\x04\x01\x12\x03\x0b\x04\x10\n\x0c\n\x05\x05\0\x02\ \x04\x01\x12\x03\x0b\x04\x10\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03\x0b\
\x04\x02\x12\x03\x0b\x13\x15\n\x0b\n\x04\x05\0\x02\x05\x12\x03\x0c\x04\ \x13\x15\n\x0b\n\x04\x05\0\x02\x05\x12\x03\x0c\x04\x18\n\x0c\n\x05\x05\0\
\x18\n\x0c\n\x05\x05\0\x02\x05\x01\x12\x03\x0c\x04\x12\n\x0c\n\x05\x05\0\ \x02\x05\x01\x12\x03\x0c\x04\x12\n\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\
\x02\x05\x02\x12\x03\x0c\x15\x17\n\x0b\n\x04\x05\0\x02\x06\x12\x03\r\x04\ \x0c\x15\x17\n\x0b\n\x04\x05\0\x02\x06\x12\x03\r\x04\x19\n\x0c\n\x05\x05\
\x19\n\x0c\n\x05\x05\0\x02\x06\x01\x12\x03\r\x04\x13\n\x0c\n\x05\x05\0\ \0\x02\x06\x01\x12\x03\r\x04\x13\n\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\r\
\x02\x06\x02\x12\x03\r\x16\x18\n\x0b\n\x04\x05\0\x02\x07\x12\x03\x0e\x04\ \x16\x18\n\x0b\n\x04\x05\0\x02\x07\x12\x03\x0e\x04\x1e\n\x0c\n\x05\x05\0\
\x1e\n\x0c\n\x05\x05\0\x02\x07\x01\x12\x03\x0e\x04\x18\n\x0c\n\x05\x05\0\ \x02\x07\x01\x12\x03\x0e\x04\x18\n\x0c\n\x05\x05\0\x02\x07\x02\x12\x03\
\x02\x07\x02\x12\x03\x0e\x1b\x1d\n\x0b\n\x04\x05\0\x02\x08\x12\x03\x0f\ \x0e\x1b\x1d\n\x0b\n\x04\x05\0\x02\x08\x12\x03\x0f\x04\x17\n\x0c\n\x05\
\x04\x17\n\x0c\n\x05\x05\0\x02\x08\x01\x12\x03\x0f\x04\x11\n\x0c\n\x05\ \x05\0\x02\x08\x01\x12\x03\x0f\x04\x11\n\x0c\n\x05\x05\0\x02\x08\x02\x12\
\x05\0\x02\x08\x02\x12\x03\x0f\x14\x16\n\x0b\n\x04\x05\0\x02\t\x12\x03\ \x03\x0f\x14\x16\n\x0b\n\x04\x05\0\x02\t\x12\x03\x10\x04\x19\n\x0c\n\x05\
\x10\x04\x19\n\x0c\n\x05\x05\0\x02\t\x01\x12\x03\x10\x04\x13\n\x0c\n\x05\ \x05\0\x02\t\x01\x12\x03\x10\x04\x13\n\x0c\n\x05\x05\0\x02\t\x02\x12\x03\
\x05\0\x02\t\x02\x12\x03\x10\x16\x18\n\x0b\n\x04\x05\0\x02\n\x12\x03\x11\ \x10\x16\x18\n\x0b\n\x04\x05\0\x02\n\x12\x03\x11\x04!\n\x0c\n\x05\x05\0\
\x04!\n\x0c\n\x05\x05\0\x02\n\x01\x12\x03\x11\x04\x1a\n\x0c\n\x05\x05\0\ \x02\n\x01\x12\x03\x11\x04\x1a\n\x0c\n\x05\x05\0\x02\n\x02\x12\x03\x11\
\x02\n\x02\x12\x03\x11\x1d\x20\n\x0b\n\x04\x05\0\x02\x0b\x12\x03\x12\x04\ \x1d\x20\n\x0b\n\x04\x05\0\x02\x0b\x12\x03\x12\x04!\n\x0c\n\x05\x05\0\
!\n\x0c\n\x05\x05\0\x02\x0b\x01\x12\x03\x12\x04\x1a\n\x0c\n\x05\x05\0\ \x02\x0b\x01\x12\x03\x12\x04\x1a\n\x0c\n\x05\x05\0\x02\x0b\x02\x12\x03\
\x02\x0b\x02\x12\x03\x12\x1d\x20\n\x0b\n\x04\x05\0\x02\x0c\x12\x03\x13\ \x12\x1d\x20\n\x0b\n\x04\x05\0\x02\x0c\x12\x03\x13\x04\x1c\n\x0c\n\x05\
\x04\x1c\n\x0c\n\x05\x05\0\x02\x0c\x01\x12\x03\x13\x04\x15\n\x0c\n\x05\ \x05\0\x02\x0c\x01\x12\x03\x13\x04\x15\n\x0c\n\x05\x05\0\x02\x0c\x02\x12\
\x05\0\x02\x0c\x02\x12\x03\x13\x18\x1b\n\x0b\n\x04\x05\0\x02\r\x12\x03\ \x03\x13\x18\x1b\n\x0b\n\x04\x05\0\x02\r\x12\x03\x14\x04\x1a\n\x0c\n\x05\
\x14\x04\x1a\n\x0c\n\x05\x05\0\x02\r\x01\x12\x03\x14\x04\x13\n\x0c\n\x05\ \x05\0\x02\r\x01\x12\x03\x14\x04\x13\n\x0c\n\x05\x05\0\x02\r\x02\x12\x03\
\x05\0\x02\r\x02\x12\x03\x14\x16\x19b\x06proto3\ \x14\x16\x19b\x06proto3\
"; ";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT; static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;

View File

@ -1,10 +1,10 @@
syntax = "proto3"; syntax = "proto3";
message WorkspaceError { message WorkspaceError {
WorkspaceErrorCode code = 1; WsErrCode code = 1;
string msg = 2; string msg = 2;
} }
enum WorkspaceErrorCode { enum WsErrCode {
Unknown = 0; Unknown = 0;
WorkspaceNameInvalid = 1; WorkspaceNameInvalid = 1;
WorkspaceIdInvalid = 2; WorkspaceIdInvalid = 2;

View File

@ -48,7 +48,7 @@ impl WorkspaceController {
Ok(()) Ok(())
} }
pub fn delete_workspace(&self, workspace_id: &str) -> Result<(), WorkspaceError> { pub fn delete_workspace(&self, _workspace_id: &str) -> Result<(), WorkspaceError> {
unimplemented!() unimplemented!()
} }

View File

@ -4,7 +4,6 @@ use crate::{
sql_tables::{ sql_tables::{
app::{AppTable, AppTableChangeset}, app::{AppTable, AppTableChangeset},
view::ViewTable, view::ViewTable,
workspace::WorkspaceTable,
}, },
}; };
use flowy_database::{ use flowy_database::{
@ -40,7 +39,9 @@ impl AppTableSql {
Ok(app_table) Ok(app_table)
} }
pub(crate) fn delete_app(&self, app_id: &str) -> Result<(), WorkspaceError> { unimplemented!() } pub(crate) fn delete_app(&self, _app_id: &str) -> Result<(), WorkspaceError> {
unimplemented!()
}
pub(crate) fn read_views_belong_to_app( pub(crate) fn read_views_belong_to_app(
&self, &self,

View File

@ -36,5 +36,5 @@ impl ViewTableSql {
Ok(()) Ok(())
} }
pub fn delete_view(&self, view_id: &str) -> Result<(), WorkspaceError> { unimplemented!() } pub fn delete_view(&self, _view_id: &str) -> Result<(), WorkspaceError> { unimplemented!() }
} }

View File

@ -41,7 +41,7 @@ impl WorkspaceSql {
Ok(()) Ok(())
} }
pub fn delete_workspace(&self, workspace_id: &str) -> Result<(), WorkspaceError> { pub fn delete_workspace(&self, _workspace_id: &str) -> Result<(), WorkspaceError> {
unimplemented!() unimplemented!()
} }

View File

@ -1,13 +1,6 @@
use crate::helper::*; use crate::helper::*;
use flowy_test::builder::SingleUserTestBuilder;
use flowy_workspace::{ use flowy_workspace::entities::{app::QueryAppRequest, view::*};
entities::{
app::{App, CreateAppRequest, QueryAppRequest},
view::*,
workspace::Workspace,
},
event::WorkspaceEvent::{CreateApp, GetCurWorkspace},
};
#[test] #[test]
fn app_create_success() { fn app_create_success() {

View File

@ -1,13 +1,9 @@
use crate::helper::*; use crate::helper::*;
use flowy_workspace::{ use flowy_workspace::{
entities::{ entities::workspace::{CreateWorkspaceRequest, QueryWorkspaceRequest, Workspace},
app::{App, CreateAppRequest},
workspace::{CreateWorkspaceRequest, QueryWorkspaceRequest, Workspace},
},
event::WorkspaceEvent::*, event::WorkspaceEvent::*,
prelude::*, prelude::*,
}; };
use serial_test::*;
#[test] #[test]
fn workspace_create_success() { let _ = create_workspace("First workspace", ""); } fn workspace_create_success() { let _ = create_workspace("First workspace", ""); }
@ -66,7 +62,7 @@ fn workspace_create_with_invalid_name_test() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
WorkspaceErrorCode::WorkspaceNameInvalid WsErrCode::WorkspaceNameInvalid
) )
} }
} }
@ -86,7 +82,7 @@ fn workspace_update_with_invalid_name_test() {
.sync_send() .sync_send()
.error() .error()
.code, .code,
WorkspaceErrorCode::WorkspaceNameInvalid WsErrCode::WorkspaceNameInvalid
) )
} }
} }

View File

@ -1,7 +1,7 @@
use crate::util::get_tera; use crate::util::get_tera;
use flowy_ast::*; use flowy_ast::*;
use phf::phf_map; use phf::phf_map;
use syn::__private::quote::__private::Ident;
use tera::Context; use tera::Context;
// Protobuf data type : https://developers.google.com/protocol-buffers/docs/proto3 // Protobuf data type : https://developers.google.com/protocol-buffers/docs/proto3