refactor errors

This commit is contained in:
appflowy 2021-12-14 18:04:51 +08:00
parent 72a8f7a9e3
commit 013d8f753a
177 changed files with 1657 additions and 2740 deletions

23
backend/Cargo.lock generated
View File

@ -1151,6 +1151,15 @@ dependencies = [
"backtrace", "backtrace",
] ]
[[package]]
name = "error-code"
version = "0.1.0"
dependencies = [
"derive_more",
"flowy-derive",
"protobuf",
]
[[package]] [[package]]
name = "eyre" name = "eyre"
version = "0.6.5" version = "0.6.5"
@ -1241,6 +1250,7 @@ dependencies = [
"flowy-database", "flowy-database",
"flowy-derive", "flowy-derive",
"flowy-document", "flowy-document",
"flowy-error",
"flowy-net", "flowy-net",
"futures", "futures",
"futures-core", "futures-core",
@ -1267,6 +1277,7 @@ dependencies = [
"bytes", "bytes",
"chrono", "chrono",
"derive_more", "derive_more",
"error-code",
"flowy-collaboration", "flowy-collaboration",
"flowy-derive", "flowy-derive",
"log", "log",
@ -1317,6 +1328,7 @@ dependencies = [
"flowy-collaboration", "flowy-collaboration",
"flowy-database", "flowy-database",
"flowy-derive", "flowy-derive",
"flowy-error",
"futures", "futures",
"futures-core", "futures-core",
"futures-util", "futures-util",
@ -1343,11 +1355,18 @@ dependencies = [
name = "flowy-error" name = "flowy-error"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"backend-service",
"bytes", "bytes",
"derive_more", "error-code",
"flowy-collaboration",
"flowy-database",
"flowy-derive", "flowy-derive",
"lib-dispatch", "lib-dispatch",
"lib-ot",
"lib-sqlite",
"protobuf", "protobuf",
"r2d2",
"serde_json",
] ]
[[package]] [[package]]
@ -1431,6 +1450,7 @@ dependencies = [
"diesel_derives", "diesel_derives",
"flowy-database", "flowy-database",
"flowy-derive", "flowy-derive",
"flowy-error",
"flowy-net", "flowy-net",
"flowy-user-infra", "flowy-user-infra",
"futures-core", "futures-core",
@ -1460,6 +1480,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"bytes", "bytes",
"derive_more", "derive_more",
"error-code",
"fancy-regex", "fancy-regex",
"flowy-derive", "flowy-derive",
"lazy_static", "lazy_static",

View File

@ -8,7 +8,7 @@ use crate::{
use actix_rt::task::spawn_blocking; use actix_rt::task::spawn_blocking;
use actix_web::web::Data; use actix_web::web::Data;
use async_stream::stream; use async_stream::stream;
use backend_service::errors::{internal_error, Result as DocResult, ServerError}; use backend_service::errors::{internal_error, Result, ServerError};
use flowy_collaboration::{ use flowy_collaboration::{
core::sync::ServerDocManager, core::sync::ServerDocManager,
protobuf::{WsDataType, WsDocumentData}, protobuf::{WsDataType, WsDocumentData},
@ -23,7 +23,7 @@ pub enum DocWsMsg {
ClientData { ClientData {
client_data: WsClientData, client_data: WsClientData,
pool: Data<PgPool>, pool: Data<PgPool>,
ret: oneshot::Sender<DocResult<()>>, ret: oneshot::Sender<Result<()>>,
}, },
} }
@ -66,11 +66,11 @@ impl DocWsActor {
} }
} }
async fn handle_client_data(&self, client_data: WsClientData, pool: Data<PgPool>) -> DocResult<()> { async fn handle_client_data(&self, client_data: WsClientData, pool: Data<PgPool>) -> Result<()> {
let WsClientData { user, socket, data } = client_data; let WsClientData { user, socket, data } = client_data;
let document_data = spawn_blocking(move || { let document_data = spawn_blocking(move || {
let document_data: WsDocumentData = parse_from_bytes(&data)?; let document_data: WsDocumentData = parse_from_bytes(&data)?;
DocResult::Ok(document_data) Result::Ok(document_data)
}) })
.await .await
.map_err(internal_error)??; .map_err(internal_error)??;
@ -91,11 +91,11 @@ impl DocWsActor {
socket: Socket, socket: Socket,
data: Vec<u8>, data: Vec<u8>,
pg_pool: Data<PgPool>, pg_pool: Data<PgPool>,
) -> DocResult<()> { ) -> Result<()> {
let mut revision_pb = spawn_blocking(move || { let mut revision_pb = spawn_blocking(move || {
let revision: Revision = parse_from_bytes(&data)?; let revision: Revision = parse_from_bytes(&data)?;
let _ = verify_md5(&revision)?; let _ = verify_md5(&revision)?;
DocResult::Ok(revision) Result::Ok(revision)
}) })
.await .await
.map_err(internal_error)??; .map_err(internal_error)??;
@ -116,7 +116,7 @@ impl DocWsActor {
} }
} }
fn verify_md5(revision: &Revision) -> DocResult<()> { fn verify_md5(revision: &Revision) -> Result<()> {
if md5(&revision.delta_data) != revision.md5 { if md5(&revision.delta_data) != revision.md5 {
return Err(ServerError::internal().context("Revision md5 not match")); return Err(ServerError::internal().context("Revision md5 not match"));
} }

View File

@ -1,7 +1,7 @@
import 'package:app_flowy/user/domain/i_auth.dart'; import 'package:app_flowy/user/domain/i_auth.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile, ErrorCode; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile, ErrorCode;
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
@ -40,7 +40,7 @@ class SignInBloc extends Bloc<SignInEvent, SignInState> {
); );
} }
SignInState stateFromCode(UserError error) { SignInState stateFromCode(FlowyError error) {
switch (ErrorCode.valueOf(error.code)!) { switch (ErrorCode.valueOf(error.code)!) {
case ErrorCode.EmailFormatInvalid: case ErrorCode.EmailFormatInvalid:
return state.copyWith(isSubmitting: false, emailError: some(error.msg), passwordError: none()); return state.copyWith(isSubmitting: false, emailError: some(error.msg), passwordError: none());
@ -67,7 +67,7 @@ abstract class SignInState with _$SignInState {
required bool isSubmitting, required bool isSubmitting,
required Option<String> passwordError, required Option<String> passwordError,
required Option<String> emailError, required Option<String> emailError,
required Option<Either<UserProfile, UserError>> successOrFail, required Option<Either<UserProfile, FlowyError>> successOrFail,
}) = _SignInState; }) = _SignInState;
factory SignInState.initial() => SignInState( factory SignInState.initial() => SignInState(

View File

@ -519,7 +519,7 @@ class _$SignInStateTearOff {
required bool isSubmitting, required bool isSubmitting,
required Option<String> passwordError, required Option<String> passwordError,
required Option<String> emailError, required Option<String> emailError,
required Option<Either<UserProfile, UserError>> successOrFail}) { required Option<Either<UserProfile, FlowyError>> successOrFail}) {
return _SignInState( return _SignInState(
email: email, email: email,
password: password, password: password,
@ -541,7 +541,7 @@ mixin _$SignInState {
bool get isSubmitting => throw _privateConstructorUsedError; bool get isSubmitting => throw _privateConstructorUsedError;
Option<String> get passwordError => throw _privateConstructorUsedError; Option<String> get passwordError => throw _privateConstructorUsedError;
Option<String> get emailError => throw _privateConstructorUsedError; Option<String> get emailError => throw _privateConstructorUsedError;
Option<Either<UserProfile, UserError>> get successOrFail => Option<Either<UserProfile, FlowyError>> get successOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
@ -560,7 +560,7 @@ abstract class $SignInStateCopyWith<$Res> {
bool isSubmitting, bool isSubmitting,
Option<String> passwordError, Option<String> passwordError,
Option<String> emailError, Option<String> emailError,
Option<Either<UserProfile, UserError>> successOrFail}); Option<Either<UserProfile, FlowyError>> successOrFail});
} }
/// @nodoc /// @nodoc
@ -604,7 +604,7 @@ class _$SignInStateCopyWithImpl<$Res> implements $SignInStateCopyWith<$Res> {
successOrFail: successOrFail == freezed successOrFail: successOrFail == freezed
? _value.successOrFail ? _value.successOrFail
: successOrFail // ignore: cast_nullable_to_non_nullable : successOrFail // ignore: cast_nullable_to_non_nullable
as Option<Either<UserProfile, UserError>>, as Option<Either<UserProfile, FlowyError>>,
)); ));
} }
} }
@ -622,7 +622,7 @@ abstract class _$SignInStateCopyWith<$Res>
bool isSubmitting, bool isSubmitting,
Option<String> passwordError, Option<String> passwordError,
Option<String> emailError, Option<String> emailError,
Option<Either<UserProfile, UserError>> successOrFail}); Option<Either<UserProfile, FlowyError>> successOrFail});
} }
/// @nodoc /// @nodoc
@ -668,7 +668,7 @@ class __$SignInStateCopyWithImpl<$Res> extends _$SignInStateCopyWithImpl<$Res>
successOrFail: successOrFail == freezed successOrFail: successOrFail == freezed
? _value.successOrFail ? _value.successOrFail
: successOrFail // ignore: cast_nullable_to_non_nullable : successOrFail // ignore: cast_nullable_to_non_nullable
as Option<Either<UserProfile, UserError>>, as Option<Either<UserProfile, FlowyError>>,
)); ));
} }
} }
@ -695,7 +695,7 @@ class _$_SignInState implements _SignInState {
@override @override
final Option<String> emailError; final Option<String> emailError;
@override @override
final Option<Either<UserProfile, UserError>> successOrFail; final Option<Either<UserProfile, FlowyError>> successOrFail;
@override @override
String toString() { String toString() {
@ -748,7 +748,7 @@ abstract class _SignInState implements SignInState {
required bool isSubmitting, required bool isSubmitting,
required Option<String> passwordError, required Option<String> passwordError,
required Option<String> emailError, required Option<String> emailError,
required Option<Either<UserProfile, UserError>> successOrFail}) = required Option<Either<UserProfile, FlowyError>> successOrFail}) =
_$_SignInState; _$_SignInState;
@override @override
@ -762,7 +762,7 @@ abstract class _SignInState implements SignInState {
@override @override
Option<String> get emailError => throw _privateConstructorUsedError; Option<String> get emailError => throw _privateConstructorUsedError;
@override @override
Option<Either<UserProfile, UserError>> get successOrFail => Option<Either<UserProfile, FlowyError>> get successOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
@JsonKey(ignore: true) @JsonKey(ignore: true)

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/user/domain/i_auth.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile, ErrorCode; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile, ErrorCode;
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:app_flowy/generated/locale_keys.g.dart'; import 'package:app_flowy/generated/locale_keys.g.dart';
@ -78,7 +78,7 @@ class SignUpBloc extends Bloc<SignUpEvent, SignUpState> {
); );
} }
SignUpState stateFromCode(UserError error) { SignUpState stateFromCode(FlowyError error) {
switch (ErrorCode.valueOf(error.code)!) { switch (ErrorCode.valueOf(error.code)!) {
case ErrorCode.EmailFormatInvalid: case ErrorCode.EmailFormatInvalid:
return state.copyWith( return state.copyWith(
@ -118,7 +118,7 @@ class SignUpState with _$SignUpState {
required Option<String> passwordError, required Option<String> passwordError,
required Option<String> repeatPasswordError, required Option<String> repeatPasswordError,
required Option<String> emailError, required Option<String> emailError,
required Option<Either<UserProfile, UserError>> successOrFail, required Option<Either<UserProfile, FlowyError>> successOrFail,
}) = _SignUpState; }) = _SignUpState;
factory SignUpState.initial() => SignUpState( factory SignUpState.initial() => SignUpState(

View File

@ -707,7 +707,7 @@ class _$SignUpStateTearOff {
required Option<String> passwordError, required Option<String> passwordError,
required Option<String> repeatPasswordError, required Option<String> repeatPasswordError,
required Option<String> emailError, required Option<String> emailError,
required Option<Either<UserProfile, UserError>> successOrFail}) { required Option<Either<UserProfile, FlowyError>> successOrFail}) {
return _SignUpState( return _SignUpState(
email: email, email: email,
password: password, password: password,
@ -733,7 +733,7 @@ mixin _$SignUpState {
Option<String> get passwordError => throw _privateConstructorUsedError; Option<String> get passwordError => throw _privateConstructorUsedError;
Option<String> get repeatPasswordError => throw _privateConstructorUsedError; Option<String> get repeatPasswordError => throw _privateConstructorUsedError;
Option<String> get emailError => throw _privateConstructorUsedError; Option<String> get emailError => throw _privateConstructorUsedError;
Option<Either<UserProfile, UserError>> get successOrFail => Option<Either<UserProfile, FlowyError>> get successOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
@ -754,7 +754,7 @@ abstract class $SignUpStateCopyWith<$Res> {
Option<String> passwordError, Option<String> passwordError,
Option<String> repeatPasswordError, Option<String> repeatPasswordError,
Option<String> emailError, Option<String> emailError,
Option<Either<UserProfile, UserError>> successOrFail}); Option<Either<UserProfile, FlowyError>> successOrFail});
} }
/// @nodoc /// @nodoc
@ -808,7 +808,7 @@ class _$SignUpStateCopyWithImpl<$Res> implements $SignUpStateCopyWith<$Res> {
successOrFail: successOrFail == freezed successOrFail: successOrFail == freezed
? _value.successOrFail ? _value.successOrFail
: successOrFail // ignore: cast_nullable_to_non_nullable : successOrFail // ignore: cast_nullable_to_non_nullable
as Option<Either<UserProfile, UserError>>, as Option<Either<UserProfile, FlowyError>>,
)); ));
} }
} }
@ -828,7 +828,7 @@ abstract class _$SignUpStateCopyWith<$Res>
Option<String> passwordError, Option<String> passwordError,
Option<String> repeatPasswordError, Option<String> repeatPasswordError,
Option<String> emailError, Option<String> emailError,
Option<Either<UserProfile, UserError>> successOrFail}); Option<Either<UserProfile, FlowyError>> successOrFail});
} }
/// @nodoc /// @nodoc
@ -884,7 +884,7 @@ class __$SignUpStateCopyWithImpl<$Res> extends _$SignUpStateCopyWithImpl<$Res>
successOrFail: successOrFail == freezed successOrFail: successOrFail == freezed
? _value.successOrFail ? _value.successOrFail
: successOrFail // ignore: cast_nullable_to_non_nullable : successOrFail // ignore: cast_nullable_to_non_nullable
as Option<Either<UserProfile, UserError>>, as Option<Either<UserProfile, FlowyError>>,
)); ));
} }
} }
@ -917,7 +917,7 @@ class _$_SignUpState implements _SignUpState {
@override @override
final Option<String> emailError; final Option<String> emailError;
@override @override
final Option<Either<UserProfile, UserError>> successOrFail; final Option<Either<UserProfile, FlowyError>> successOrFail;
@override @override
String toString() { String toString() {
@ -980,7 +980,7 @@ abstract class _SignUpState implements SignUpState {
required Option<String> passwordError, required Option<String> passwordError,
required Option<String> repeatPasswordError, required Option<String> repeatPasswordError,
required Option<String> emailError, required Option<String> emailError,
required Option<Either<UserProfile, UserError>> successOrFail}) = required Option<Either<UserProfile, FlowyError>> successOrFail}) =
_$_SignUpState; _$_SignUpState;
@override @override
@ -998,7 +998,7 @@ abstract class _SignUpState implements SignUpState {
@override @override
Option<String> get emailError => throw _privateConstructorUsedError; Option<String> get emailError => throw _privateConstructorUsedError;
@override @override
Option<Either<UserProfile, UserError>> get successOrFail => Option<Either<UserProfile, FlowyError>> get successOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
@JsonKey(ignore: true) @JsonKey(ignore: true)

View File

@ -1,11 +1,11 @@
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
part 'auth_state.freezed.dart'; part 'auth_state.freezed.dart';
@freezed @freezed
abstract class AuthState with _$AuthState { abstract class AuthState with _$AuthState {
const factory AuthState.authenticated(UserProfile userProfile) = Authenticated; const factory AuthState.authenticated(UserProfile userProfile) = Authenticated;
const factory AuthState.unauthenticated(UserError error) = Unauthenticated; const factory AuthState.unauthenticated(FlowyError error) = Unauthenticated;
const factory AuthState.initial() = _Initial; const factory AuthState.initial() = _Initial;
} }

View File

@ -23,7 +23,7 @@ class _$AuthStateTearOff {
); );
} }
Unauthenticated unauthenticated(UserError error) { Unauthenticated unauthenticated(FlowyError error) {
return Unauthenticated( return Unauthenticated(
error, error,
); );
@ -42,21 +42,21 @@ mixin _$AuthState {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function(UserProfile userProfile) authenticated, required TResult Function(UserProfile userProfile) authenticated,
required TResult Function(UserError error) unauthenticated, required TResult Function(FlowyError error) unauthenticated,
required TResult Function() initial, required TResult Function() initial,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
required TResult orElse(), required TResult orElse(),
}) => }) =>
@ -166,7 +166,7 @@ class _$Authenticated implements Authenticated {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function(UserProfile userProfile) authenticated, required TResult Function(UserProfile userProfile) authenticated,
required TResult Function(UserError error) unauthenticated, required TResult Function(FlowyError error) unauthenticated,
required TResult Function() initial, required TResult Function() initial,
}) { }) {
return authenticated(userProfile); return authenticated(userProfile);
@ -176,7 +176,7 @@ class _$Authenticated implements Authenticated {
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
}) { }) {
return authenticated?.call(userProfile); return authenticated?.call(userProfile);
@ -186,7 +186,7 @@ class _$Authenticated implements Authenticated {
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -245,7 +245,7 @@ abstract class $UnauthenticatedCopyWith<$Res> {
factory $UnauthenticatedCopyWith( factory $UnauthenticatedCopyWith(
Unauthenticated value, $Res Function(Unauthenticated) then) = Unauthenticated value, $Res Function(Unauthenticated) then) =
_$UnauthenticatedCopyWithImpl<$Res>; _$UnauthenticatedCopyWithImpl<$Res>;
$Res call({UserError error}); $Res call({FlowyError error});
} }
/// @nodoc /// @nodoc
@ -266,7 +266,7 @@ class _$UnauthenticatedCopyWithImpl<$Res> extends _$AuthStateCopyWithImpl<$Res>
error == freezed error == freezed
? _value.error ? _value.error
: error // ignore: cast_nullable_to_non_nullable : error // ignore: cast_nullable_to_non_nullable
as UserError, as FlowyError,
)); ));
} }
} }
@ -277,7 +277,7 @@ class _$Unauthenticated implements Unauthenticated {
const _$Unauthenticated(this.error); const _$Unauthenticated(this.error);
@override @override
final UserError error; final FlowyError error;
@override @override
String toString() { String toString() {
@ -305,7 +305,7 @@ class _$Unauthenticated implements Unauthenticated {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function(UserProfile userProfile) authenticated, required TResult Function(UserProfile userProfile) authenticated,
required TResult Function(UserError error) unauthenticated, required TResult Function(FlowyError error) unauthenticated,
required TResult Function() initial, required TResult Function() initial,
}) { }) {
return unauthenticated(error); return unauthenticated(error);
@ -315,7 +315,7 @@ class _$Unauthenticated implements Unauthenticated {
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
}) { }) {
return unauthenticated?.call(error); return unauthenticated?.call(error);
@ -325,7 +325,7 @@ class _$Unauthenticated implements Unauthenticated {
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -371,9 +371,9 @@ class _$Unauthenticated implements Unauthenticated {
} }
abstract class Unauthenticated implements AuthState { abstract class Unauthenticated implements AuthState {
const factory Unauthenticated(UserError error) = _$Unauthenticated; const factory Unauthenticated(FlowyError error) = _$Unauthenticated;
UserError get error => throw _privateConstructorUsedError; FlowyError get error => throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
$UnauthenticatedCopyWith<Unauthenticated> get copyWith => $UnauthenticatedCopyWith<Unauthenticated> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -417,7 +417,7 @@ class _$_Initial implements _Initial {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function(UserProfile userProfile) authenticated, required TResult Function(UserProfile userProfile) authenticated,
required TResult Function(UserError error) unauthenticated, required TResult Function(FlowyError error) unauthenticated,
required TResult Function() initial, required TResult Function() initial,
}) { }) {
return initial(); return initial();
@ -427,7 +427,7 @@ class _$_Initial implements _Initial {
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
}) { }) {
return initial?.call(); return initial?.call();
@ -437,7 +437,7 @@ class _$_Initial implements _Initial {
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function(UserProfile userProfile)? authenticated, TResult Function(UserProfile userProfile)? authenticated,
TResult Function(UserError error)? unauthenticated, TResult Function(FlowyError error)? unauthenticated,
TResult Function()? initial, TResult Function()? initial,
required TResult orElse(), required TResult orElse(),
}) { }) {

View File

@ -1,5 +1,5 @@
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -14,9 +14,9 @@ class NewUser {
} }
abstract class IAuth { abstract class IAuth {
Future<Either<UserProfile, UserError>> signIn(String? email, String? password); Future<Either<UserProfile, FlowyError>> signIn(String? email, String? password);
Future<Either<UserProfile, UserError>> signUp(String? name, String? password, String? email); Future<Either<UserProfile, FlowyError>> signUp(String? name, String? password, String? email);
Future<Either<Unit, UserError>> signOut(); Future<Either<Unit, FlowyError>> signOut();
} }
abstract class IAuthRouter { abstract class IAuthRouter {

View File

@ -8,7 +8,7 @@ import 'package:flowy_infra_ui/widget/route/animation.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
import 'package:app_flowy/user/domain/i_auth.dart'; import 'package:app_flowy/user/domain/i_auth.dart';
import 'package:app_flowy/user/infrastructure/repos/auth_repo.dart'; import 'package:app_flowy/user/infrastructure/repos/auth_repo.dart';
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -19,17 +19,17 @@ class AuthImpl extends IAuth {
}); });
@override @override
Future<Either<UserProfile, UserError>> signIn(String? email, String? password) { Future<Either<UserProfile, FlowyError>> signIn(String? email, String? password) {
return repo.signIn(email: email, password: password); return repo.signIn(email: email, password: password);
} }
@override @override
Future<Either<UserProfile, UserError>> signUp(String? name, String? password, String? email) { Future<Either<UserProfile, FlowyError>> signUp(String? name, String? password, String? email) {
return repo.signUp(name: name, password: password, email: email); return repo.signUp(name: name, password: password, email: email);
} }
@override @override
Future<Either<Unit, UserError>> signOut() { Future<Either<Unit, FlowyError>> signOut() {
return repo.signOut(); return repo.signOut();
} }
} }

View File

@ -24,8 +24,8 @@ class SplashUserImpl implements ISplashUser {
(userProfile) { (userProfile) {
return AuthState.authenticated(userProfile); return AuthState.authenticated(userProfile);
}, },
(userError) { (FlowyError) {
return AuthState.unauthenticated(userError); return AuthState.unauthenticated(FlowyError);
}, },
); );
}); });

View File

@ -1,10 +1,10 @@
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/dispatch/dispatch.dart'; import 'package:flowy_sdk/dispatch/dispatch.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show SignInRequest, SignUpRequest, UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show SignInRequest, SignUpRequest, UserProfile;
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class AuthRepository { class AuthRepository {
Future<Either<UserProfile, UserError>> signIn({required String? email, required String? password}) { Future<Either<UserProfile, FlowyError>> signIn({required String? email, required String? password}) {
// //
final request = SignInRequest.create() final request = SignInRequest.create()
..email = email ?? '' ..email = email ?? ''
@ -13,7 +13,7 @@ class AuthRepository {
return UserEventSignIn(request).send(); return UserEventSignIn(request).send();
} }
Future<Either<UserProfile, UserError>> signUp( Future<Either<UserProfile, FlowyError>> signUp(
{required String? name, required String? password, required String? email}) { {required String? name, required String? password, required String? email}) {
final request = SignUpRequest.create() final request = SignUpRequest.create()
..email = email ?? '' ..email = email ?? ''
@ -35,7 +35,7 @@ class AuthRepository {
// }); // });
} }
Future<Either<Unit, UserError>> signOut() { Future<Either<Unit, FlowyError>> signOut() {
return UserEventSignOut().send(); return UserEventSignOut().send();
} }
} }

View File

@ -9,7 +9,7 @@ import 'package:flowy_infra_ui/widget/rounded_button.dart';
import 'package:flowy_infra_ui/widget/rounded_input_field.dart'; import 'package:flowy_infra_ui/widget/rounded_input_field.dart';
import 'package:flowy_infra_ui/widget/spacing.dart'; import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flowy_infra_ui/style_widget/snap_bar.dart'; import 'package:flowy_infra_ui/style_widget/snap_bar.dart';
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
@ -39,7 +39,7 @@ class SignInScreen extends StatelessWidget {
); );
} }
void _handleSuccessOrFail(Either<UserProfile, UserError> result, BuildContext context) { void _handleSuccessOrFail(Either<UserProfile, FlowyError> result, BuildContext context) {
result.fold( result.fold(
(user) => router.pushWelcomeScreen(context, user), (user) => router.pushWelcomeScreen(context, user),
(error) => showSnapBar(context, error.msg), (error) => showSnapBar(context, error.msg),

View File

@ -7,7 +7,7 @@ import 'package:flowy_infra/theme.dart';
import 'package:flowy_infra_ui/widget/rounded_button.dart'; import 'package:flowy_infra_ui/widget/rounded_button.dart';
import 'package:flowy_infra_ui/widget/rounded_input_field.dart'; import 'package:flowy_infra_ui/widget/rounded_input_field.dart';
import 'package:flowy_infra_ui/widget/spacing.dart'; import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
import 'package:flowy_infra_ui/style_widget/snap_bar.dart'; import 'package:flowy_infra_ui/style_widget/snap_bar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -36,7 +36,7 @@ class SignUpScreen extends StatelessWidget {
); );
} }
void _handleSuccessOrFail(BuildContext context, Either<UserProfile, UserError> result) { void _handleSuccessOrFail(BuildContext context, Either<UserProfile, FlowyError> result) {
result.fold( result.fold(
(user) => router.pushWelcomeScreen(context, user), (user) => router.pushWelcomeScreen(context, user),
(error) => showSnapBar(context, error.msg), (error) => showSnapBar(context, error.msg),

View File

@ -10,7 +10,7 @@ import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/dispatch/dispatch.dart'; import 'package:flowy_sdk/dispatch/dispatch.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@ -113,7 +113,7 @@ class _SkipLogInScreenState extends State<SkipLogInScreen> {
void _openCurrentWorkspace( void _openCurrentWorkspace(
BuildContext context, BuildContext context,
UserProfile user, UserProfile user,
dartz.Either<CurrentWorkspaceSetting, WorkspaceError> workspacesOrError, dartz.Either<CurrentWorkspaceSetting, FlowyError> workspacesOrError,
) { ) {
workspacesOrError.fold( workspacesOrError.fold(
(workspaceSetting) { (workspaceSetting) {

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/i_app.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
@ -61,7 +61,7 @@ class AppBloc extends Bloc<AppEvent, AppState> {
return super.close(); return super.close();
} }
void _handleViewsChanged(Either<List<View>, WorkspaceError> result) { void _handleViewsChanged(Either<List<View>, FlowyError> result) {
result.fold( result.fold(
(views) => add(AppEvent.didReceiveViews(views)), (views) => add(AppEvent.didReceiveViews(views)),
(error) { (error) {
@ -112,7 +112,7 @@ class AppState with _$AppState {
required bool isLoading, required bool isLoading,
required List<View>? views, required List<View>? views,
View? latestCreatedView, View? latestCreatedView,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
}) = _AppState; }) = _AppState;
factory AppState.initial(App app) => AppState( factory AppState.initial(App app) => AppState(

View File

@ -1051,7 +1051,7 @@ class _$AppStateTearOff {
required bool isLoading, required bool isLoading,
required List<View>? views, required List<View>? views,
View? latestCreatedView, View? latestCreatedView,
required Either<Unit, WorkspaceError> successOrFailure}) { required Either<Unit, FlowyError> successOrFailure}) {
return _AppState( return _AppState(
app: app, app: app,
isLoading: isLoading, isLoading: isLoading,
@ -1071,7 +1071,7 @@ mixin _$AppState {
bool get isLoading => throw _privateConstructorUsedError; bool get isLoading => throw _privateConstructorUsedError;
List<View>? get views => throw _privateConstructorUsedError; List<View>? get views => throw _privateConstructorUsedError;
View? get latestCreatedView => throw _privateConstructorUsedError; View? get latestCreatedView => throw _privateConstructorUsedError;
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
@ -1088,7 +1088,7 @@ abstract class $AppStateCopyWith<$Res> {
bool isLoading, bool isLoading,
List<View>? views, List<View>? views,
View? latestCreatedView, View? latestCreatedView,
Either<Unit, WorkspaceError> successOrFailure}); Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -1127,7 +1127,7 @@ class _$AppStateCopyWithImpl<$Res> implements $AppStateCopyWith<$Res> {
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1142,7 +1142,7 @@ abstract class _$AppStateCopyWith<$Res> implements $AppStateCopyWith<$Res> {
bool isLoading, bool isLoading,
List<View>? views, List<View>? views,
View? latestCreatedView, View? latestCreatedView,
Either<Unit, WorkspaceError> successOrFailure}); Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -1182,7 +1182,7 @@ class __$AppStateCopyWithImpl<$Res> extends _$AppStateCopyWithImpl<$Res>
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1206,7 +1206,7 @@ class _$_AppState implements _AppState {
@override @override
final View? latestCreatedView; final View? latestCreatedView;
@override @override
final Either<Unit, WorkspaceError> successOrFailure; final Either<Unit, FlowyError> successOrFailure;
@override @override
String toString() { String toString() {
@ -1253,7 +1253,7 @@ abstract class _AppState implements AppState {
required bool isLoading, required bool isLoading,
required List<View>? views, required List<View>? views,
View? latestCreatedView, View? latestCreatedView,
required Either<Unit, WorkspaceError> successOrFailure}) = _$_AppState; required Either<Unit, FlowyError> successOrFailure}) = _$_AppState;
@override @override
App get app => throw _privateConstructorUsedError; App get app => throw _privateConstructorUsedError;
@ -1264,7 +1264,7 @@ abstract class _AppState implements AppState {
@override @override
View? get latestCreatedView => throw _privateConstructorUsedError; View? get latestCreatedView => throw _privateConstructorUsedError;
@override @override
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
@JsonKey(ignore: true) @JsonKey(ignore: true)

View File

@ -4,7 +4,7 @@ import 'package:app_flowy/workspace/domain/i_trash.dart';
import 'package:app_flowy/workspace/domain/i_view.dart'; import 'package:app_flowy/workspace/domain/i_view.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flutter_quill/flutter_quill.dart'; import 'package:flutter_quill/flutter_quill.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
@ -155,5 +155,5 @@ class DocState with _$DocState {
@freezed @freezed
class DocLoadState with _$DocLoadState { class DocLoadState with _$DocLoadState {
const factory DocLoadState.loading() = _Loading; const factory DocLoadState.loading() = _Loading;
const factory DocLoadState.finish(Either<Unit, WorkspaceError> successOrFail) = _Finish; const factory DocLoadState.finish(Either<Unit, FlowyError> successOrFail) = _Finish;
} }

View File

@ -909,7 +909,7 @@ class _$DocLoadStateTearOff {
return const _Loading(); return const _Loading();
} }
_Finish finish(Either<Unit, WorkspaceError> successOrFail) { _Finish finish(Either<Unit, FlowyError> successOrFail) {
return _Finish( return _Finish(
successOrFail, successOrFail,
); );
@ -924,20 +924,20 @@ mixin _$DocLoadState {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<Unit, WorkspaceError> successOrFail) required TResult Function(Either<Unit, FlowyError> successOrFail)
finish, finish,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<Unit, WorkspaceError> successOrFail)? finish, TResult Function(Either<Unit, FlowyError> successOrFail)? finish,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<Unit, WorkspaceError> successOrFail)? finish, TResult Function(Either<Unit, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -1016,7 +1016,7 @@ class _$_Loading implements _Loading {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<Unit, WorkspaceError> successOrFail) required TResult Function(Either<Unit, FlowyError> successOrFail)
finish, finish,
}) { }) {
return loading(); return loading();
@ -1026,7 +1026,7 @@ class _$_Loading implements _Loading {
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<Unit, WorkspaceError> successOrFail)? finish, TResult Function(Either<Unit, FlowyError> successOrFail)? finish,
}) { }) {
return loading?.call(); return loading?.call();
} }
@ -1035,7 +1035,7 @@ class _$_Loading implements _Loading {
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<Unit, WorkspaceError> successOrFail)? finish, TResult Function(Either<Unit, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (loading != null) { if (loading != null) {
@ -1084,7 +1084,7 @@ abstract class _Loading implements DocLoadState {
abstract class _$FinishCopyWith<$Res> { abstract class _$FinishCopyWith<$Res> {
factory _$FinishCopyWith(_Finish value, $Res Function(_Finish) then) = factory _$FinishCopyWith(_Finish value, $Res Function(_Finish) then) =
__$FinishCopyWithImpl<$Res>; __$FinishCopyWithImpl<$Res>;
$Res call({Either<Unit, WorkspaceError> successOrFail}); $Res call({Either<Unit, FlowyError> successOrFail});
} }
/// @nodoc /// @nodoc
@ -1104,7 +1104,7 @@ class __$FinishCopyWithImpl<$Res> extends _$DocLoadStateCopyWithImpl<$Res>
successOrFail == freezed successOrFail == freezed
? _value.successOrFail ? _value.successOrFail
: successOrFail // ignore: cast_nullable_to_non_nullable : successOrFail // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1115,7 +1115,7 @@ class _$_Finish implements _Finish {
const _$_Finish(this.successOrFail); const _$_Finish(this.successOrFail);
@override @override
final Either<Unit, WorkspaceError> successOrFail; final Either<Unit, FlowyError> successOrFail;
@override @override
String toString() { String toString() {
@ -1144,7 +1144,7 @@ class _$_Finish implements _Finish {
@optionalTypeArgs @optionalTypeArgs
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<Unit, WorkspaceError> successOrFail) required TResult Function(Either<Unit, FlowyError> successOrFail)
finish, finish,
}) { }) {
return finish(successOrFail); return finish(successOrFail);
@ -1154,7 +1154,7 @@ class _$_Finish implements _Finish {
@optionalTypeArgs @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<Unit, WorkspaceError> successOrFail)? finish, TResult Function(Either<Unit, FlowyError> successOrFail)? finish,
}) { }) {
return finish?.call(successOrFail); return finish?.call(successOrFail);
} }
@ -1163,7 +1163,7 @@ class _$_Finish implements _Finish {
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<Unit, WorkspaceError> successOrFail)? finish, TResult Function(Either<Unit, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (finish != null) { if (finish != null) {
@ -1205,9 +1205,9 @@ class _$_Finish implements _Finish {
} }
abstract class _Finish implements DocLoadState { abstract class _Finish implements DocLoadState {
const factory _Finish(Either<Unit, WorkspaceError> successOrFail) = _$_Finish; const factory _Finish(Either<Unit, FlowyError> successOrFail) = _$_Finish;
Either<Unit, WorkspaceError> get successOrFail => Either<Unit, FlowyError> get successOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
_$FinishCopyWith<_Finish> get copyWith => throw _privateConstructorUsedError; _$FinishCopyWith<_Finish> get copyWith => throw _privateConstructorUsedError;

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/i_share.dart';
import 'package:app_flowy/workspace/infrastructure/markdown/delta_markdown.dart'; import 'package:app_flowy/workspace/infrastructure/markdown/delta_markdown.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/export.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/export.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
@ -48,5 +48,5 @@ class DocShareEvent with _$DocShareEvent {
class DocShareState with _$DocShareState { class DocShareState with _$DocShareState {
const factory DocShareState.initial() = _Initial; const factory DocShareState.initial() = _Initial;
const factory DocShareState.loading() = _Loading; const factory DocShareState.loading() = _Loading;
const factory DocShareState.finish(Either<ExportData, WorkspaceError> successOrFail) = _Finish; const factory DocShareState.finish(Either<ExportData, FlowyError> successOrFail) = _Finish;
} }

View File

@ -434,7 +434,7 @@ class _$DocShareStateTearOff {
return const _Loading(); return const _Loading();
} }
_Finish finish(Either<ExportData, WorkspaceError> successOrFail) { _Finish finish(Either<ExportData, FlowyError> successOrFail) {
return _Finish( return _Finish(
successOrFail, successOrFail,
); );
@ -450,7 +450,7 @@ mixin _$DocShareState {
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() initial, required TResult Function() initial,
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<ExportData, WorkspaceError> successOrFail) required TResult Function(Either<ExportData, FlowyError> successOrFail)
finish, finish,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -458,14 +458,14 @@ mixin _$DocShareState {
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -549,7 +549,7 @@ class _$_Initial implements _Initial {
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() initial, required TResult Function() initial,
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<ExportData, WorkspaceError> successOrFail) required TResult Function(Either<ExportData, FlowyError> successOrFail)
finish, finish,
}) { }) {
return initial(); return initial();
@ -560,7 +560,7 @@ class _$_Initial implements _Initial {
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
}) { }) {
return initial?.call(); return initial?.call();
} }
@ -570,7 +570,7 @@ class _$_Initial implements _Initial {
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (initial != null) { if (initial != null) {
@ -657,7 +657,7 @@ class _$_Loading implements _Loading {
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() initial, required TResult Function() initial,
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<ExportData, WorkspaceError> successOrFail) required TResult Function(Either<ExportData, FlowyError> successOrFail)
finish, finish,
}) { }) {
return loading(); return loading();
@ -668,7 +668,7 @@ class _$_Loading implements _Loading {
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
}) { }) {
return loading?.call(); return loading?.call();
} }
@ -678,7 +678,7 @@ class _$_Loading implements _Loading {
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (loading != null) { if (loading != null) {
@ -730,7 +730,7 @@ abstract class _Loading implements DocShareState {
abstract class _$FinishCopyWith<$Res> { abstract class _$FinishCopyWith<$Res> {
factory _$FinishCopyWith(_Finish value, $Res Function(_Finish) then) = factory _$FinishCopyWith(_Finish value, $Res Function(_Finish) then) =
__$FinishCopyWithImpl<$Res>; __$FinishCopyWithImpl<$Res>;
$Res call({Either<ExportData, WorkspaceError> successOrFail}); $Res call({Either<ExportData, FlowyError> successOrFail});
} }
/// @nodoc /// @nodoc
@ -750,7 +750,7 @@ class __$FinishCopyWithImpl<$Res> extends _$DocShareStateCopyWithImpl<$Res>
successOrFail == freezed successOrFail == freezed
? _value.successOrFail ? _value.successOrFail
: successOrFail // ignore: cast_nullable_to_non_nullable : successOrFail // ignore: cast_nullable_to_non_nullable
as Either<ExportData, WorkspaceError>, as Either<ExportData, FlowyError>,
)); ));
} }
} }
@ -761,7 +761,7 @@ class _$_Finish implements _Finish {
const _$_Finish(this.successOrFail); const _$_Finish(this.successOrFail);
@override @override
final Either<ExportData, WorkspaceError> successOrFail; final Either<ExportData, FlowyError> successOrFail;
@override @override
String toString() { String toString() {
@ -791,7 +791,7 @@ class _$_Finish implements _Finish {
TResult when<TResult extends Object?>({ TResult when<TResult extends Object?>({
required TResult Function() initial, required TResult Function() initial,
required TResult Function() loading, required TResult Function() loading,
required TResult Function(Either<ExportData, WorkspaceError> successOrFail) required TResult Function(Either<ExportData, FlowyError> successOrFail)
finish, finish,
}) { }) {
return finish(successOrFail); return finish(successOrFail);
@ -802,7 +802,7 @@ class _$_Finish implements _Finish {
TResult? whenOrNull<TResult extends Object?>({ TResult? whenOrNull<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
}) { }) {
return finish?.call(successOrFail); return finish?.call(successOrFail);
} }
@ -812,7 +812,7 @@ class _$_Finish implements _Finish {
TResult maybeWhen<TResult extends Object?>({ TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial, TResult Function()? initial,
TResult Function()? loading, TResult Function()? loading,
TResult Function(Either<ExportData, WorkspaceError> successOrFail)? finish, TResult Function(Either<ExportData, FlowyError> successOrFail)? finish,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (finish != null) { if (finish != null) {
@ -857,10 +857,10 @@ class _$_Finish implements _Finish {
} }
abstract class _Finish implements DocShareState { abstract class _Finish implements DocShareState {
const factory _Finish(Either<ExportData, WorkspaceError> successOrFail) = const factory _Finish(Either<ExportData, FlowyError> successOrFail) =
_$_Finish; _$_Finish;
Either<ExportData, WorkspaceError> get successOrFail => Either<ExportData, FlowyError> get successOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
_$FinishCopyWith<_Finish> get copyWith => throw _privateConstructorUsedError; _$FinishCopyWith<_Finish> get copyWith => throw _privateConstructorUsedError;

View File

@ -1,5 +1,6 @@
import 'package:app_flowy/workspace/domain/i_user.dart'; import 'package:app_flowy/workspace/domain/i_user.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
@ -31,7 +32,7 @@ class HomeListenBloc extends Bloc<HomeListenEvent, HomeListenState> {
super.close(); super.close();
} }
void _authDidChanged(Either<Unit, UserError> errorOrNothing) { void _authDidChanged(Either<Unit, FlowyError> errorOrNothing) {
errorOrNothing.fold((_) {}, (error) { errorOrNothing.fold((_) {}, (error) {
if (error.code == ErrorCode.UserUnauthorized.value) { if (error.code == ErrorCode.UserUnauthorized.value) {
add(HomeListenEvent.unauthorized(error.msg)); add(HomeListenEvent.unauthorized(error.msg));

View File

@ -5,7 +5,7 @@ import 'package:app_flowy/workspace/presentation/stack_page/blank/blank_page.dar
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
@ -77,7 +77,7 @@ class MenuBloc extends Bloc<MenuEvent, MenuState> {
); );
} }
void _handleAppsOrFail(Either<List<App>, WorkspaceError> appsOrFail) { void _handleAppsOrFail(Either<List<App>, FlowyError> appsOrFail) {
appsOrFail.fold( appsOrFail.fold(
(apps) => add(MenuEvent.didReceiveApps(left(apps))), (apps) => add(MenuEvent.didReceiveApps(left(apps))),
(error) => add(MenuEvent.didReceiveApps(right(error))), (error) => add(MenuEvent.didReceiveApps(right(error))),
@ -91,7 +91,7 @@ class MenuEvent with _$MenuEvent {
const factory MenuEvent.collapse() = Collapse; const factory MenuEvent.collapse() = Collapse;
const factory MenuEvent.openPage(HomeStackContext context) = OpenPage; const factory MenuEvent.openPage(HomeStackContext context) = OpenPage;
const factory MenuEvent.createApp(String name, {String? desc}) = CreateApp; const factory MenuEvent.createApp(String name, {String? desc}) = CreateApp;
const factory MenuEvent.didReceiveApps(Either<List<App>, WorkspaceError> appsOrFail) = ReceiveApps; const factory MenuEvent.didReceiveApps(Either<List<App>, FlowyError> appsOrFail) = ReceiveApps;
} }
@freezed @freezed
@ -99,7 +99,7 @@ class MenuState with _$MenuState {
const factory MenuState({ const factory MenuState({
required bool isCollapse, required bool isCollapse,
required Option<List<App>> apps, required Option<List<App>> apps,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
required HomeStackContext stackContext, required HomeStackContext stackContext,
}) = _MenuState; }) = _MenuState;

View File

@ -38,7 +38,7 @@ class _$MenuEventTearOff {
); );
} }
ReceiveApps didReceiveApps(Either<List<App>, WorkspaceError> appsOrFail) { ReceiveApps didReceiveApps(Either<List<App>, FlowyError> appsOrFail) {
return ReceiveApps( return ReceiveApps(
appsOrFail, appsOrFail,
); );
@ -57,7 +57,7 @@ mixin _$MenuEvent {
required TResult Function(HomeStackContext<dynamic, dynamic> context) required TResult Function(HomeStackContext<dynamic, dynamic> context)
openPage, openPage,
required TResult Function(String name, String? desc) createApp, required TResult Function(String name, String? desc) createApp,
required TResult Function(Either<List<App>, WorkspaceError> appsOrFail) required TResult Function(Either<List<App>, FlowyError> appsOrFail)
didReceiveApps, didReceiveApps,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -67,7 +67,7 @@ mixin _$MenuEvent {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -77,7 +77,7 @@ mixin _$MenuEvent {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
required TResult orElse(), required TResult orElse(),
}) => }) =>
@ -169,7 +169,7 @@ class _$_Initial implements _Initial {
required TResult Function(HomeStackContext<dynamic, dynamic> context) required TResult Function(HomeStackContext<dynamic, dynamic> context)
openPage, openPage,
required TResult Function(String name, String? desc) createApp, required TResult Function(String name, String? desc) createApp,
required TResult Function(Either<List<App>, WorkspaceError> appsOrFail) required TResult Function(Either<List<App>, FlowyError> appsOrFail)
didReceiveApps, didReceiveApps,
}) { }) {
return initial(); return initial();
@ -182,7 +182,7 @@ class _$_Initial implements _Initial {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
}) { }) {
return initial?.call(); return initial?.call();
@ -195,7 +195,7 @@ class _$_Initial implements _Initial {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -292,7 +292,7 @@ class _$Collapse implements Collapse {
required TResult Function(HomeStackContext<dynamic, dynamic> context) required TResult Function(HomeStackContext<dynamic, dynamic> context)
openPage, openPage,
required TResult Function(String name, String? desc) createApp, required TResult Function(String name, String? desc) createApp,
required TResult Function(Either<List<App>, WorkspaceError> appsOrFail) required TResult Function(Either<List<App>, FlowyError> appsOrFail)
didReceiveApps, didReceiveApps,
}) { }) {
return collapse(); return collapse();
@ -305,7 +305,7 @@ class _$Collapse implements Collapse {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
}) { }) {
return collapse?.call(); return collapse?.call();
@ -318,7 +318,7 @@ class _$Collapse implements Collapse {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -440,7 +440,7 @@ class _$OpenPage implements OpenPage {
required TResult Function(HomeStackContext<dynamic, dynamic> context) required TResult Function(HomeStackContext<dynamic, dynamic> context)
openPage, openPage,
required TResult Function(String name, String? desc) createApp, required TResult Function(String name, String? desc) createApp,
required TResult Function(Either<List<App>, WorkspaceError> appsOrFail) required TResult Function(Either<List<App>, FlowyError> appsOrFail)
didReceiveApps, didReceiveApps,
}) { }) {
return openPage(context); return openPage(context);
@ -453,7 +453,7 @@ class _$OpenPage implements OpenPage {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
}) { }) {
return openPage?.call(context); return openPage?.call(context);
@ -466,7 +466,7 @@ class _$OpenPage implements OpenPage {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -606,7 +606,7 @@ class _$CreateApp implements CreateApp {
required TResult Function(HomeStackContext<dynamic, dynamic> context) required TResult Function(HomeStackContext<dynamic, dynamic> context)
openPage, openPage,
required TResult Function(String name, String? desc) createApp, required TResult Function(String name, String? desc) createApp,
required TResult Function(Either<List<App>, WorkspaceError> appsOrFail) required TResult Function(Either<List<App>, FlowyError> appsOrFail)
didReceiveApps, didReceiveApps,
}) { }) {
return createApp(name, desc); return createApp(name, desc);
@ -619,7 +619,7 @@ class _$CreateApp implements CreateApp {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
}) { }) {
return createApp?.call(name, desc); return createApp?.call(name, desc);
@ -632,7 +632,7 @@ class _$CreateApp implements CreateApp {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -698,7 +698,7 @@ abstract class $ReceiveAppsCopyWith<$Res> {
factory $ReceiveAppsCopyWith( factory $ReceiveAppsCopyWith(
ReceiveApps value, $Res Function(ReceiveApps) then) = ReceiveApps value, $Res Function(ReceiveApps) then) =
_$ReceiveAppsCopyWithImpl<$Res>; _$ReceiveAppsCopyWithImpl<$Res>;
$Res call({Either<List<App>, WorkspaceError> appsOrFail}); $Res call({Either<List<App>, FlowyError> appsOrFail});
} }
/// @nodoc /// @nodoc
@ -719,7 +719,7 @@ class _$ReceiveAppsCopyWithImpl<$Res> extends _$MenuEventCopyWithImpl<$Res>
appsOrFail == freezed appsOrFail == freezed
? _value.appsOrFail ? _value.appsOrFail
: appsOrFail // ignore: cast_nullable_to_non_nullable : appsOrFail // ignore: cast_nullable_to_non_nullable
as Either<List<App>, WorkspaceError>, as Either<List<App>, FlowyError>,
)); ));
} }
} }
@ -730,7 +730,7 @@ class _$ReceiveApps implements ReceiveApps {
const _$ReceiveApps(this.appsOrFail); const _$ReceiveApps(this.appsOrFail);
@override @override
final Either<List<App>, WorkspaceError> appsOrFail; final Either<List<App>, FlowyError> appsOrFail;
@override @override
String toString() { String toString() {
@ -763,7 +763,7 @@ class _$ReceiveApps implements ReceiveApps {
required TResult Function(HomeStackContext<dynamic, dynamic> context) required TResult Function(HomeStackContext<dynamic, dynamic> context)
openPage, openPage,
required TResult Function(String name, String? desc) createApp, required TResult Function(String name, String? desc) createApp,
required TResult Function(Either<List<App>, WorkspaceError> appsOrFail) required TResult Function(Either<List<App>, FlowyError> appsOrFail)
didReceiveApps, didReceiveApps,
}) { }) {
return didReceiveApps(appsOrFail); return didReceiveApps(appsOrFail);
@ -776,7 +776,7 @@ class _$ReceiveApps implements ReceiveApps {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
}) { }) {
return didReceiveApps?.call(appsOrFail); return didReceiveApps?.call(appsOrFail);
@ -789,7 +789,7 @@ class _$ReceiveApps implements ReceiveApps {
TResult Function()? collapse, TResult Function()? collapse,
TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage, TResult Function(HomeStackContext<dynamic, dynamic> context)? openPage,
TResult Function(String name, String? desc)? createApp, TResult Function(String name, String? desc)? createApp,
TResult Function(Either<List<App>, WorkspaceError> appsOrFail)? TResult Function(Either<List<App>, FlowyError> appsOrFail)?
didReceiveApps, didReceiveApps,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -841,10 +841,10 @@ class _$ReceiveApps implements ReceiveApps {
} }
abstract class ReceiveApps implements MenuEvent { abstract class ReceiveApps implements MenuEvent {
const factory ReceiveApps(Either<List<App>, WorkspaceError> appsOrFail) = const factory ReceiveApps(Either<List<App>, FlowyError> appsOrFail) =
_$ReceiveApps; _$ReceiveApps;
Either<List<App>, WorkspaceError> get appsOrFail => Either<List<App>, FlowyError> get appsOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
$ReceiveAppsCopyWith<ReceiveApps> get copyWith => $ReceiveAppsCopyWith<ReceiveApps> get copyWith =>
@ -858,7 +858,7 @@ class _$MenuStateTearOff {
_MenuState call( _MenuState call(
{required bool isCollapse, {required bool isCollapse,
required Option<List<App>> apps, required Option<List<App>> apps,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
required HomeStackContext<dynamic, dynamic> stackContext}) { required HomeStackContext<dynamic, dynamic> stackContext}) {
return _MenuState( return _MenuState(
isCollapse: isCollapse, isCollapse: isCollapse,
@ -876,7 +876,7 @@ const $MenuState = _$MenuStateTearOff();
mixin _$MenuState { mixin _$MenuState {
bool get isCollapse => throw _privateConstructorUsedError; bool get isCollapse => throw _privateConstructorUsedError;
Option<List<App>> get apps => throw _privateConstructorUsedError; Option<List<App>> get apps => throw _privateConstructorUsedError;
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
HomeStackContext<dynamic, dynamic> get stackContext => HomeStackContext<dynamic, dynamic> get stackContext =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -893,7 +893,7 @@ abstract class $MenuStateCopyWith<$Res> {
$Res call( $Res call(
{bool isCollapse, {bool isCollapse,
Option<List<App>> apps, Option<List<App>> apps,
Either<Unit, WorkspaceError> successOrFailure, Either<Unit, FlowyError> successOrFailure,
HomeStackContext<dynamic, dynamic> stackContext}); HomeStackContext<dynamic, dynamic> stackContext});
} }
@ -924,7 +924,7 @@ class _$MenuStateCopyWithImpl<$Res> implements $MenuStateCopyWith<$Res> {
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
stackContext: stackContext == freezed stackContext: stackContext == freezed
? _value.stackContext ? _value.stackContext
: stackContext // ignore: cast_nullable_to_non_nullable : stackContext // ignore: cast_nullable_to_non_nullable
@ -942,7 +942,7 @@ abstract class _$MenuStateCopyWith<$Res> implements $MenuStateCopyWith<$Res> {
$Res call( $Res call(
{bool isCollapse, {bool isCollapse,
Option<List<App>> apps, Option<List<App>> apps,
Either<Unit, WorkspaceError> successOrFailure, Either<Unit, FlowyError> successOrFailure,
HomeStackContext<dynamic, dynamic> stackContext}); HomeStackContext<dynamic, dynamic> stackContext});
} }
@ -974,7 +974,7 @@ class __$MenuStateCopyWithImpl<$Res> extends _$MenuStateCopyWithImpl<$Res>
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
stackContext: stackContext == freezed stackContext: stackContext == freezed
? _value.stackContext ? _value.stackContext
: stackContext // ignore: cast_nullable_to_non_nullable : stackContext // ignore: cast_nullable_to_non_nullable
@ -997,7 +997,7 @@ class _$_MenuState implements _MenuState {
@override @override
final Option<List<App>> apps; final Option<List<App>> apps;
@override @override
final Either<Unit, WorkspaceError> successOrFailure; final Either<Unit, FlowyError> successOrFailure;
@override @override
final HomeStackContext<dynamic, dynamic> stackContext; final HomeStackContext<dynamic, dynamic> stackContext;
@ -1041,7 +1041,7 @@ abstract class _MenuState implements MenuState {
const factory _MenuState( const factory _MenuState(
{required bool isCollapse, {required bool isCollapse,
required Option<List<App>> apps, required Option<List<App>> apps,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
required HomeStackContext<dynamic, dynamic> stackContext}) = _$_MenuState; required HomeStackContext<dynamic, dynamic> stackContext}) = _$_MenuState;
@override @override
@ -1049,7 +1049,7 @@ abstract class _MenuState implements MenuState {
@override @override
Option<List<App>> get apps => throw _privateConstructorUsedError; Option<List<App>> get apps => throw _privateConstructorUsedError;
@override @override
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
HomeStackContext<dynamic, dynamic> get stackContext => HomeStackContext<dynamic, dynamic> get stackContext =>

View File

@ -1,7 +1,7 @@
import 'package:app_flowy/workspace/domain/i_user.dart'; import 'package:app_flowy/workspace/domain/i_user.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
@ -39,8 +39,8 @@ class MenuUserBloc extends Bloc<MenuUserEvent, MenuUserState> {
result.fold((l) => null, (error) => Log.error(error)); result.fold((l) => null, (error) => Log.error(error));
} }
void _profileUpdated(Either<UserProfile, UserError> userOrFailed) {} void _profileUpdated(Either<UserProfile, FlowyError> userOrFailed) {}
void _workspacesUpdated(Either<List<Workspace>, WorkspaceError> workspacesOrFailed) { void _workspacesUpdated(Either<List<Workspace>, FlowyError> workspacesOrFailed) {
// fetch workspaces // fetch workspaces
// iUserImpl.fetchWorkspaces().then((result) { // iUserImpl.fetchWorkspaces().then((result) {
// result.fold( // result.fold(

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/i_trash.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
part 'trash_bloc.freezed.dart'; part 'trash_bloc.freezed.dart';
@ -45,14 +45,14 @@ class TrashBloc extends Bloc<TrashEvent, TrashState> {
); );
} }
Stream<TrashState> _handleResult(Either<dynamic, WorkspaceError> result) async* { Stream<TrashState> _handleResult(Either<dynamic, FlowyError> result) async* {
yield result.fold( yield result.fold(
(l) => state.copyWith(successOrFailure: left(unit)), (l) => state.copyWith(successOrFailure: left(unit)),
(error) => state.copyWith(successOrFailure: right(error)), (error) => state.copyWith(successOrFailure: right(error)),
); );
} }
void _listenTrashUpdated(Either<List<Trash>, WorkspaceError> trashOrFailed) { void _listenTrashUpdated(Either<List<Trash>, FlowyError> trashOrFailed) {
trashOrFailed.fold( trashOrFailed.fold(
(trash) { (trash) {
add(TrashEvent.didReceiveTrash(trash)); add(TrashEvent.didReceiveTrash(trash));
@ -84,7 +84,7 @@ class TrashEvent with _$TrashEvent {
class TrashState with _$TrashState { class TrashState with _$TrashState {
const factory TrashState({ const factory TrashState({
required List<Trash> objects, required List<Trash> objects,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
}) = _TrashState; }) = _TrashState;
factory TrashState.init() => TrashState( factory TrashState.init() => TrashState(

View File

@ -980,7 +980,7 @@ class _$TrashStateTearOff {
_TrashState call( _TrashState call(
{required List<Trash> objects, {required List<Trash> objects,
required Either<Unit, WorkspaceError> successOrFailure}) { required Either<Unit, FlowyError> successOrFailure}) {
return _TrashState( return _TrashState(
objects: objects, objects: objects,
successOrFailure: successOrFailure, successOrFailure: successOrFailure,
@ -994,7 +994,7 @@ const $TrashState = _$TrashStateTearOff();
/// @nodoc /// @nodoc
mixin _$TrashState { mixin _$TrashState {
List<Trash> get objects => throw _privateConstructorUsedError; List<Trash> get objects => throw _privateConstructorUsedError;
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
@ -1008,7 +1008,7 @@ abstract class $TrashStateCopyWith<$Res> {
TrashState value, $Res Function(TrashState) then) = TrashState value, $Res Function(TrashState) then) =
_$TrashStateCopyWithImpl<$Res>; _$TrashStateCopyWithImpl<$Res>;
$Res call( $Res call(
{List<Trash> objects, Either<Unit, WorkspaceError> successOrFailure}); {List<Trash> objects, Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -1032,7 +1032,7 @@ class _$TrashStateCopyWithImpl<$Res> implements $TrashStateCopyWith<$Res> {
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1044,7 +1044,7 @@ abstract class _$TrashStateCopyWith<$Res> implements $TrashStateCopyWith<$Res> {
__$TrashStateCopyWithImpl<$Res>; __$TrashStateCopyWithImpl<$Res>;
@override @override
$Res call( $Res call(
{List<Trash> objects, Either<Unit, WorkspaceError> successOrFailure}); {List<Trash> objects, Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -1070,7 +1070,7 @@ class __$TrashStateCopyWithImpl<$Res> extends _$TrashStateCopyWithImpl<$Res>
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1083,7 +1083,7 @@ class _$_TrashState implements _TrashState {
@override @override
final List<Trash> objects; final List<Trash> objects;
@override @override
final Either<Unit, WorkspaceError> successOrFailure; final Either<Unit, FlowyError> successOrFailure;
@override @override
String toString() { String toString() {
@ -1117,12 +1117,12 @@ class _$_TrashState implements _TrashState {
abstract class _TrashState implements TrashState { abstract class _TrashState implements TrashState {
const factory _TrashState( const factory _TrashState(
{required List<Trash> objects, {required List<Trash> objects,
required Either<Unit, WorkspaceError> successOrFailure}) = _$_TrashState; required Either<Unit, FlowyError> successOrFailure}) = _$_TrashState;
@override @override
List<Trash> get objects => throw _privateConstructorUsedError; List<Trash> get objects => throw _privateConstructorUsedError;
@override @override
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
@JsonKey(ignore: true) @JsonKey(ignore: true)

View File

@ -1,6 +1,6 @@
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:app_flowy/workspace/domain/i_view.dart'; import 'package:app_flowy/workspace/domain/i_view.dart';
@ -56,7 +56,7 @@ class ViewBloc extends Bloc<ViewEvent, ViewState> {
); );
} }
Stream<ViewState> _handleViewDidUpdate(Either<View, WorkspaceError> result) async* { Stream<ViewState> _handleViewDidUpdate(Either<View, FlowyError> result) async* {
yield result.fold( yield result.fold(
(view) => state.copyWith(view: view, successOrFailure: left(unit)), (view) => state.copyWith(view: view, successOrFailure: left(unit)),
(error) => state.copyWith(successOrFailure: right(error)), (error) => state.copyWith(successOrFailure: right(error)),
@ -77,7 +77,7 @@ class ViewEvent with _$ViewEvent {
const factory ViewEvent.rename(String newName) = Rename; const factory ViewEvent.rename(String newName) = Rename;
const factory ViewEvent.delete() = Delete; const factory ViewEvent.delete() = Delete;
const factory ViewEvent.duplicate() = Duplicate; const factory ViewEvent.duplicate() = Duplicate;
const factory ViewEvent.viewDidUpdate(Either<View, WorkspaceError> result) = ViewDidUpdate; const factory ViewEvent.viewDidUpdate(Either<View, FlowyError> result) = ViewDidUpdate;
} }
@freezed @freezed
@ -85,7 +85,7 @@ class ViewState with _$ViewState {
const factory ViewState({ const factory ViewState({
required View view, required View view,
required bool isEditing, required bool isEditing,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
}) = _ViewState; }) = _ViewState;
factory ViewState.init(View view) => ViewState( factory ViewState.init(View view) => ViewState(

View File

@ -41,7 +41,7 @@ class _$ViewEventTearOff {
return const Duplicate(); return const Duplicate();
} }
ViewDidUpdate viewDidUpdate(Either<View, WorkspaceError> result) { ViewDidUpdate viewDidUpdate(Either<View, FlowyError> result) {
return ViewDidUpdate( return ViewDidUpdate(
result, result,
); );
@ -60,7 +60,7 @@ mixin _$ViewEvent {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -71,7 +71,7 @@ mixin _$ViewEvent {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
@ -81,7 +81,7 @@ mixin _$ViewEvent {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -175,7 +175,7 @@ class _$Initial implements Initial {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) { }) {
return initial(); return initial();
@ -189,7 +189,7 @@ class _$Initial implements Initial {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) { }) {
return initial?.call(); return initial?.call();
} }
@ -202,7 +202,7 @@ class _$Initial implements Initial {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (initial != null) { if (initial != null) {
@ -328,7 +328,7 @@ class _$SetEditing implements SetEditing {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) { }) {
return setIsEditing(isEditing); return setIsEditing(isEditing);
@ -342,7 +342,7 @@ class _$SetEditing implements SetEditing {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) { }) {
return setIsEditing?.call(isEditing); return setIsEditing?.call(isEditing);
} }
@ -355,7 +355,7 @@ class _$SetEditing implements SetEditing {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (setIsEditing != null) { if (setIsEditing != null) {
@ -484,7 +484,7 @@ class _$Rename implements Rename {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) { }) {
return rename(newName); return rename(newName);
@ -498,7 +498,7 @@ class _$Rename implements Rename {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) { }) {
return rename?.call(newName); return rename?.call(newName);
} }
@ -511,7 +511,7 @@ class _$Rename implements Rename {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (rename != null) { if (rename != null) {
@ -614,7 +614,7 @@ class _$Delete implements Delete {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) { }) {
return delete(); return delete();
@ -628,7 +628,7 @@ class _$Delete implements Delete {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) { }) {
return delete?.call(); return delete?.call();
} }
@ -641,7 +641,7 @@ class _$Delete implements Delete {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (delete != null) { if (delete != null) {
@ -740,7 +740,7 @@ class _$Duplicate implements Duplicate {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) { }) {
return duplicate(); return duplicate();
@ -754,7 +754,7 @@ class _$Duplicate implements Duplicate {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) { }) {
return duplicate?.call(); return duplicate?.call();
} }
@ -767,7 +767,7 @@ class _$Duplicate implements Duplicate {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (duplicate != null) { if (duplicate != null) {
@ -829,7 +829,7 @@ abstract class $ViewDidUpdateCopyWith<$Res> {
factory $ViewDidUpdateCopyWith( factory $ViewDidUpdateCopyWith(
ViewDidUpdate value, $Res Function(ViewDidUpdate) then) = ViewDidUpdate value, $Res Function(ViewDidUpdate) then) =
_$ViewDidUpdateCopyWithImpl<$Res>; _$ViewDidUpdateCopyWithImpl<$Res>;
$Res call({Either<View, WorkspaceError> result}); $Res call({Either<View, FlowyError> result});
} }
/// @nodoc /// @nodoc
@ -850,7 +850,7 @@ class _$ViewDidUpdateCopyWithImpl<$Res> extends _$ViewEventCopyWithImpl<$Res>
result == freezed result == freezed
? _value.result ? _value.result
: result // ignore: cast_nullable_to_non_nullable : result // ignore: cast_nullable_to_non_nullable
as Either<View, WorkspaceError>, as Either<View, FlowyError>,
)); ));
} }
} }
@ -861,7 +861,7 @@ class _$ViewDidUpdate implements ViewDidUpdate {
const _$ViewDidUpdate(this.result); const _$ViewDidUpdate(this.result);
@override @override
final Either<View, WorkspaceError> result; final Either<View, FlowyError> result;
@override @override
String toString() { String toString() {
@ -893,7 +893,7 @@ class _$ViewDidUpdate implements ViewDidUpdate {
required TResult Function(String newName) rename, required TResult Function(String newName) rename,
required TResult Function() delete, required TResult Function() delete,
required TResult Function() duplicate, required TResult Function() duplicate,
required TResult Function(Either<View, WorkspaceError> result) required TResult Function(Either<View, FlowyError> result)
viewDidUpdate, viewDidUpdate,
}) { }) {
return viewDidUpdate(result); return viewDidUpdate(result);
@ -907,7 +907,7 @@ class _$ViewDidUpdate implements ViewDidUpdate {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
}) { }) {
return viewDidUpdate?.call(result); return viewDidUpdate?.call(result);
} }
@ -920,7 +920,7 @@ class _$ViewDidUpdate implements ViewDidUpdate {
TResult Function(String newName)? rename, TResult Function(String newName)? rename,
TResult Function()? delete, TResult Function()? delete,
TResult Function()? duplicate, TResult Function()? duplicate,
TResult Function(Either<View, WorkspaceError> result)? viewDidUpdate, TResult Function(Either<View, FlowyError> result)? viewDidUpdate,
required TResult orElse(), required TResult orElse(),
}) { }) {
if (viewDidUpdate != null) { if (viewDidUpdate != null) {
@ -974,10 +974,10 @@ class _$ViewDidUpdate implements ViewDidUpdate {
} }
abstract class ViewDidUpdate implements ViewEvent { abstract class ViewDidUpdate implements ViewEvent {
const factory ViewDidUpdate(Either<View, WorkspaceError> result) = const factory ViewDidUpdate(Either<View, FlowyError> result) =
_$ViewDidUpdate; _$ViewDidUpdate;
Either<View, WorkspaceError> get result => throw _privateConstructorUsedError; Either<View, FlowyError> get result => throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
$ViewDidUpdateCopyWith<ViewDidUpdate> get copyWith => $ViewDidUpdateCopyWith<ViewDidUpdate> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -990,7 +990,7 @@ class _$ViewStateTearOff {
_ViewState call( _ViewState call(
{required View view, {required View view,
required bool isEditing, required bool isEditing,
required Either<Unit, WorkspaceError> successOrFailure}) { required Either<Unit, FlowyError> successOrFailure}) {
return _ViewState( return _ViewState(
view: view, view: view,
isEditing: isEditing, isEditing: isEditing,
@ -1006,7 +1006,7 @@ const $ViewState = _$ViewStateTearOff();
mixin _$ViewState { mixin _$ViewState {
View get view => throw _privateConstructorUsedError; View get view => throw _privateConstructorUsedError;
bool get isEditing => throw _privateConstructorUsedError; bool get isEditing => throw _privateConstructorUsedError;
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
@ -1021,7 +1021,7 @@ abstract class $ViewStateCopyWith<$Res> {
$Res call( $Res call(
{View view, {View view,
bool isEditing, bool isEditing,
Either<Unit, WorkspaceError> successOrFailure}); Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -1050,7 +1050,7 @@ class _$ViewStateCopyWithImpl<$Res> implements $ViewStateCopyWith<$Res> {
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1064,7 +1064,7 @@ abstract class _$ViewStateCopyWith<$Res> implements $ViewStateCopyWith<$Res> {
$Res call( $Res call(
{View view, {View view,
bool isEditing, bool isEditing,
Either<Unit, WorkspaceError> successOrFailure}); Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -1094,7 +1094,7 @@ class __$ViewStateCopyWithImpl<$Res> extends _$ViewStateCopyWithImpl<$Res>
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -1112,7 +1112,7 @@ class _$_ViewState implements _ViewState {
@override @override
final bool isEditing; final bool isEditing;
@override @override
final Either<Unit, WorkspaceError> successOrFailure; final Either<Unit, FlowyError> successOrFailure;
@override @override
String toString() { String toString() {
@ -1150,14 +1150,14 @@ abstract class _ViewState implements ViewState {
const factory _ViewState( const factory _ViewState(
{required View view, {required View view,
required bool isEditing, required bool isEditing,
required Either<Unit, WorkspaceError> successOrFailure}) = _$_ViewState; required Either<Unit, FlowyError> successOrFailure}) = _$_ViewState;
@override @override
View get view => throw _privateConstructorUsedError; View get view => throw _privateConstructorUsedError;
@override @override
bool get isEditing => throw _privateConstructorUsedError; bool get isEditing => throw _privateConstructorUsedError;
@override @override
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
@JsonKey(ignore: true) @JsonKey(ignore: true)

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/i_user.dart';
import 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
@ -76,7 +76,7 @@ class WelcomeBloc extends Bloc<WelcomeEvent, WelcomeState> {
); );
} }
void _workspacesUpdated(Either<List<Workspace>, WorkspaceError> workspacesOrFail) { void _workspacesUpdated(Either<List<Workspace>, FlowyError> workspacesOrFail) {
add(WelcomeEvent.workspacesReveived(workspacesOrFail)); add(WelcomeEvent.workspacesReveived(workspacesOrFail));
} }
} }
@ -87,7 +87,7 @@ class WelcomeEvent with _$WelcomeEvent {
// const factory WelcomeEvent.fetchWorkspaces() = FetchWorkspace; // const factory WelcomeEvent.fetchWorkspaces() = FetchWorkspace;
const factory WelcomeEvent.createWorkspace(String name, String desc) = CreateWorkspace; const factory WelcomeEvent.createWorkspace(String name, String desc) = CreateWorkspace;
const factory WelcomeEvent.openWorkspace(Workspace workspace) = OpenWorkspace; const factory WelcomeEvent.openWorkspace(Workspace workspace) = OpenWorkspace;
const factory WelcomeEvent.workspacesReveived(Either<List<Workspace>, WorkspaceError> workspacesOrFail) = const factory WelcomeEvent.workspacesReveived(Either<List<Workspace>, FlowyError> workspacesOrFail) =
WorkspacesReceived; WorkspacesReceived;
} }
@ -96,7 +96,7 @@ class WelcomeState with _$WelcomeState {
const factory WelcomeState({ const factory WelcomeState({
required bool isLoading, required bool isLoading,
required List<Workspace> workspaces, required List<Workspace> workspaces,
required Either<Unit, WorkspaceError> successOrFailure, required Either<Unit, FlowyError> successOrFailure,
}) = _WelcomeState; }) = _WelcomeState;
factory WelcomeState.initial() => WelcomeState( factory WelcomeState.initial() => WelcomeState(

View File

@ -35,7 +35,7 @@ class _$WelcomeEventTearOff {
} }
WorkspacesReceived workspacesReveived( WorkspacesReceived workspacesReveived(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) { Either<List<Workspace>, FlowyError> workspacesOrFail) {
return WorkspacesReceived( return WorkspacesReceived(
workspacesOrFail, workspacesOrFail,
); );
@ -53,7 +53,7 @@ mixin _$WelcomeEvent {
required TResult Function(String name, String desc) createWorkspace, required TResult Function(String name, String desc) createWorkspace,
required TResult Function(Workspace workspace) openWorkspace, required TResult Function(Workspace workspace) openWorkspace,
required TResult Function( required TResult Function(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) Either<List<Workspace>, FlowyError> workspacesOrFail)
workspacesReveived, workspacesReveived,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -62,7 +62,7 @@ mixin _$WelcomeEvent {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@ -71,7 +71,7 @@ mixin _$WelcomeEvent {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
required TResult orElse(), required TResult orElse(),
}) => }) =>
@ -160,7 +160,7 @@ class _$Initial implements Initial {
required TResult Function(String name, String desc) createWorkspace, required TResult Function(String name, String desc) createWorkspace,
required TResult Function(Workspace workspace) openWorkspace, required TResult Function(Workspace workspace) openWorkspace,
required TResult Function( required TResult Function(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) Either<List<Workspace>, FlowyError> workspacesOrFail)
workspacesReveived, workspacesReveived,
}) { }) {
return initial(); return initial();
@ -172,7 +172,7 @@ class _$Initial implements Initial {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
}) { }) {
return initial?.call(); return initial?.call();
@ -184,7 +184,7 @@ class _$Initial implements Initial {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -316,7 +316,7 @@ class _$CreateWorkspace implements CreateWorkspace {
required TResult Function(String name, String desc) createWorkspace, required TResult Function(String name, String desc) createWorkspace,
required TResult Function(Workspace workspace) openWorkspace, required TResult Function(Workspace workspace) openWorkspace,
required TResult Function( required TResult Function(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) Either<List<Workspace>, FlowyError> workspacesOrFail)
workspacesReveived, workspacesReveived,
}) { }) {
return createWorkspace(name, desc); return createWorkspace(name, desc);
@ -328,7 +328,7 @@ class _$CreateWorkspace implements CreateWorkspace {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
}) { }) {
return createWorkspace?.call(name, desc); return createWorkspace?.call(name, desc);
@ -340,7 +340,7 @@ class _$CreateWorkspace implements CreateWorkspace {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -467,7 +467,7 @@ class _$OpenWorkspace implements OpenWorkspace {
required TResult Function(String name, String desc) createWorkspace, required TResult Function(String name, String desc) createWorkspace,
required TResult Function(Workspace workspace) openWorkspace, required TResult Function(Workspace workspace) openWorkspace,
required TResult Function( required TResult Function(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) Either<List<Workspace>, FlowyError> workspacesOrFail)
workspacesReveived, workspacesReveived,
}) { }) {
return openWorkspace(workspace); return openWorkspace(workspace);
@ -479,7 +479,7 @@ class _$OpenWorkspace implements OpenWorkspace {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
}) { }) {
return openWorkspace?.call(workspace); return openWorkspace?.call(workspace);
@ -491,7 +491,7 @@ class _$OpenWorkspace implements OpenWorkspace {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -553,7 +553,7 @@ abstract class $WorkspacesReceivedCopyWith<$Res> {
factory $WorkspacesReceivedCopyWith( factory $WorkspacesReceivedCopyWith(
WorkspacesReceived value, $Res Function(WorkspacesReceived) then) = WorkspacesReceived value, $Res Function(WorkspacesReceived) then) =
_$WorkspacesReceivedCopyWithImpl<$Res>; _$WorkspacesReceivedCopyWithImpl<$Res>;
$Res call({Either<List<Workspace>, WorkspaceError> workspacesOrFail}); $Res call({Either<List<Workspace>, FlowyError> workspacesOrFail});
} }
/// @nodoc /// @nodoc
@ -575,7 +575,7 @@ class _$WorkspacesReceivedCopyWithImpl<$Res>
workspacesOrFail == freezed workspacesOrFail == freezed
? _value.workspacesOrFail ? _value.workspacesOrFail
: workspacesOrFail // ignore: cast_nullable_to_non_nullable : workspacesOrFail // ignore: cast_nullable_to_non_nullable
as Either<List<Workspace>, WorkspaceError>, as Either<List<Workspace>, FlowyError>,
)); ));
} }
} }
@ -586,7 +586,7 @@ class _$WorkspacesReceived implements WorkspacesReceived {
const _$WorkspacesReceived(this.workspacesOrFail); const _$WorkspacesReceived(this.workspacesOrFail);
@override @override
final Either<List<Workspace>, WorkspaceError> workspacesOrFail; final Either<List<Workspace>, FlowyError> workspacesOrFail;
@override @override
String toString() { String toString() {
@ -619,7 +619,7 @@ class _$WorkspacesReceived implements WorkspacesReceived {
required TResult Function(String name, String desc) createWorkspace, required TResult Function(String name, String desc) createWorkspace,
required TResult Function(Workspace workspace) openWorkspace, required TResult Function(Workspace workspace) openWorkspace,
required TResult Function( required TResult Function(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) Either<List<Workspace>, FlowyError> workspacesOrFail)
workspacesReveived, workspacesReveived,
}) { }) {
return workspacesReveived(workspacesOrFail); return workspacesReveived(workspacesOrFail);
@ -631,7 +631,7 @@ class _$WorkspacesReceived implements WorkspacesReceived {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
}) { }) {
return workspacesReveived?.call(workspacesOrFail); return workspacesReveived?.call(workspacesOrFail);
@ -643,7 +643,7 @@ class _$WorkspacesReceived implements WorkspacesReceived {
TResult Function()? initial, TResult Function()? initial,
TResult Function(String name, String desc)? createWorkspace, TResult Function(String name, String desc)? createWorkspace,
TResult Function(Workspace workspace)? openWorkspace, TResult Function(Workspace workspace)? openWorkspace,
TResult Function(Either<List<Workspace>, WorkspaceError> workspacesOrFail)? TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
workspacesReveived, workspacesReveived,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -693,10 +693,10 @@ class _$WorkspacesReceived implements WorkspacesReceived {
abstract class WorkspacesReceived implements WelcomeEvent { abstract class WorkspacesReceived implements WelcomeEvent {
const factory WorkspacesReceived( const factory WorkspacesReceived(
Either<List<Workspace>, WorkspaceError> workspacesOrFail) = Either<List<Workspace>, FlowyError> workspacesOrFail) =
_$WorkspacesReceived; _$WorkspacesReceived;
Either<List<Workspace>, WorkspaceError> get workspacesOrFail => Either<List<Workspace>, FlowyError> get workspacesOrFail =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
$WorkspacesReceivedCopyWith<WorkspacesReceived> get copyWith => $WorkspacesReceivedCopyWith<WorkspacesReceived> get copyWith =>
@ -710,7 +710,7 @@ class _$WelcomeStateTearOff {
_WelcomeState call( _WelcomeState call(
{required bool isLoading, {required bool isLoading,
required List<Workspace> workspaces, required List<Workspace> workspaces,
required Either<Unit, WorkspaceError> successOrFailure}) { required Either<Unit, FlowyError> successOrFailure}) {
return _WelcomeState( return _WelcomeState(
isLoading: isLoading, isLoading: isLoading,
workspaces: workspaces, workspaces: workspaces,
@ -726,7 +726,7 @@ const $WelcomeState = _$WelcomeStateTearOff();
mixin _$WelcomeState { mixin _$WelcomeState {
bool get isLoading => throw _privateConstructorUsedError; bool get isLoading => throw _privateConstructorUsedError;
List<Workspace> get workspaces => throw _privateConstructorUsedError; List<Workspace> get workspaces => throw _privateConstructorUsedError;
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@JsonKey(ignore: true) @JsonKey(ignore: true)
@ -742,7 +742,7 @@ abstract class $WelcomeStateCopyWith<$Res> {
$Res call( $Res call(
{bool isLoading, {bool isLoading,
List<Workspace> workspaces, List<Workspace> workspaces,
Either<Unit, WorkspaceError> successOrFailure}); Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -771,7 +771,7 @@ class _$WelcomeStateCopyWithImpl<$Res> implements $WelcomeStateCopyWith<$Res> {
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -786,7 +786,7 @@ abstract class _$WelcomeStateCopyWith<$Res>
$Res call( $Res call(
{bool isLoading, {bool isLoading,
List<Workspace> workspaces, List<Workspace> workspaces,
Either<Unit, WorkspaceError> successOrFailure}); Either<Unit, FlowyError> successOrFailure});
} }
/// @nodoc /// @nodoc
@ -817,7 +817,7 @@ class __$WelcomeStateCopyWithImpl<$Res> extends _$WelcomeStateCopyWithImpl<$Res>
successOrFailure: successOrFailure == freezed successOrFailure: successOrFailure == freezed
? _value.successOrFailure ? _value.successOrFailure
: successOrFailure // ignore: cast_nullable_to_non_nullable : successOrFailure // ignore: cast_nullable_to_non_nullable
as Either<Unit, WorkspaceError>, as Either<Unit, FlowyError>,
)); ));
} }
} }
@ -835,7 +835,7 @@ class _$_WelcomeState implements _WelcomeState {
@override @override
final List<Workspace> workspaces; final List<Workspace> workspaces;
@override @override
final Either<Unit, WorkspaceError> successOrFailure; final Either<Unit, FlowyError> successOrFailure;
@override @override
String toString() { String toString() {
@ -874,7 +874,7 @@ abstract class _WelcomeState implements WelcomeState {
const factory _WelcomeState( const factory _WelcomeState(
{required bool isLoading, {required bool isLoading,
required List<Workspace> workspaces, required List<Workspace> workspaces,
required Either<Unit, WorkspaceError> successOrFailure}) = required Either<Unit, FlowyError> successOrFailure}) =
_$_WelcomeState; _$_WelcomeState;
@override @override
@ -882,7 +882,7 @@ abstract class _WelcomeState implements WelcomeState {
@override @override
List<Workspace> get workspaces => throw _privateConstructorUsedError; List<Workspace> get workspaces => throw _privateConstructorUsedError;
@override @override
Either<Unit, WorkspaceError> get successOrFailure => Either<Unit, FlowyError> get successOrFailure =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
@override @override
@JsonKey(ignore: true) @JsonKey(ignore: true)

View File

@ -1,18 +1,18 @@
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
typedef AppUpdatedCallback = void Function(App app); typedef AppUpdatedCallback = void Function(App app);
typedef AppViewsChangeCallback = void Function(Either<List<View>, WorkspaceError> viewsOrFailed); typedef AppViewsChangeCallback = void Function(Either<List<View>, FlowyError> viewsOrFailed);
abstract class IApp { abstract class IApp {
Future<Either<List<View>, WorkspaceError>> getViews(); Future<Either<List<View>, FlowyError>> getViews();
Future<Either<View, WorkspaceError>> createView({required String name, String? desc, required ViewType viewType}); Future<Either<View, FlowyError>> createView({required String name, String? desc, required ViewType viewType});
Future<Either<Unit, WorkspaceError>> delete(); Future<Either<Unit, FlowyError>> delete();
Future<Either<Unit, WorkspaceError>> rename(String newName); Future<Either<Unit, FlowyError>> rename(String newName);
} }
abstract class IAppListenr { abstract class IAppListenr {

View File

@ -1,10 +1,10 @@
import 'dart:async'; import 'dart:async';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-collaboration/doc.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-collaboration/doc.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
abstract class IDoc { abstract class IDoc {
Future<Either<DocDelta, WorkspaceError>> readDoc(); Future<Either<DocDelta, FlowyError>> readDoc();
Future<Either<DocDelta, WorkspaceError>> composeDelta({required String json}); Future<Either<DocDelta, FlowyError>> composeDelta({required String json});
Future<Either<Unit, WorkspaceError>> closeDoc(); Future<Either<Unit, FlowyError>> closeDoc();
} }

View File

@ -1,12 +1,12 @@
import 'dart:async'; import 'dart:async';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
abstract class IShare { abstract class IShare {
Future<Either<ExportData, WorkspaceError>> exportText(String docId); Future<Either<ExportData, FlowyError>> exportText(String docId);
Future<Either<ExportData, WorkspaceError>> exportMarkdown(String docId); Future<Either<ExportData, FlowyError>> exportMarkdown(String docId);
Future<Either<ExportData, WorkspaceError>> exportURL(String docId); Future<Either<ExportData, FlowyError>> exportURL(String docId);
} }

View File

@ -1,21 +1,21 @@
import 'dart:async'; import 'dart:async';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
abstract class ITrash { abstract class ITrash {
Future<Either<List<Trash>, WorkspaceError>> readTrash(); Future<Either<List<Trash>, FlowyError>> readTrash();
Future<Either<Unit, WorkspaceError>> putback(String trashId); Future<Either<Unit, FlowyError>> putback(String trashId);
Future<Either<Unit, WorkspaceError>> deleteViews(List<Tuple2<String, TrashType>> trashList); Future<Either<Unit, FlowyError>> deleteViews(List<Tuple2<String, TrashType>> trashList);
Future<Either<Unit, WorkspaceError>> restoreAll(); Future<Either<Unit, FlowyError>> restoreAll();
Future<Either<Unit, WorkspaceError>> deleteAll(); Future<Either<Unit, FlowyError>> deleteAll();
} }
typedef TrashUpdatedCallback = void Function(Either<List<Trash>, WorkspaceError> trashOrFailed); typedef TrashUpdatedCallback = void Function(Either<List<Trash>, FlowyError> trashOrFailed);
abstract class ITrashListener { abstract class ITrashListener {
void start(TrashUpdatedCallback updateCallback); void start(TrashUpdatedCallback updateCallback);

View File

@ -1,24 +1,22 @@
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_infra/notifier.dart'; import 'package:flowy_infra/notifier.dart';
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart';
export 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart';
export 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile; export 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProfile;
abstract class IUser { abstract class IUser {
UserProfile get user; UserProfile get user;
Future<Either<UserProfile, UserError>> fetchUserProfile(String userId); Future<Either<UserProfile, FlowyError>> fetchUserProfile(String userId);
Future<Either<List<Workspace>, WorkspaceError>> fetchWorkspaces(); Future<Either<List<Workspace>, FlowyError>> fetchWorkspaces();
Future<Either<Unit, WorkspaceError>> deleteWorkspace(String workspaceId); Future<Either<Unit, FlowyError>> deleteWorkspace(String workspaceId);
Future<Either<Unit, UserError>> signOut(); Future<Either<Unit, FlowyError>> signOut();
Future<Either<Unit, UserError>> initUser(); Future<Either<Unit, FlowyError>> initUser();
} }
typedef UserProfileUpdatedNotifierValue = Either<UserProfile, UserError>; typedef UserProfileUpdatedNotifierValue = Either<UserProfile, FlowyError>;
typedef AuthNotifierValue = Either<Unit, UserError>; typedef AuthNotifierValue = Either<Unit, FlowyError>;
typedef WorkspaceUpdatedNotifierValue = Either<List<Workspace>, WorkspaceError>; typedef WorkspaceUpdatedNotifierValue = Either<List<Workspace>, FlowyError>;
abstract class IUserListener { abstract class IUserListener {
void start(); void start();

View File

@ -1,22 +1,22 @@
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_infra/notifier.dart'; import 'package:flowy_infra/notifier.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
typedef ViewUpdatedCallback = void Function(Either<View, WorkspaceError>); typedef ViewUpdatedCallback = void Function(Either<View, FlowyError>);
typedef DeleteNotifierValue = Either<View, WorkspaceError>; typedef DeleteNotifierValue = Either<View, FlowyError>;
typedef UpdateNotifierValue = Either<View, WorkspaceError>; typedef UpdateNotifierValue = Either<View, FlowyError>;
typedef RestoreNotifierValue = Either<View, WorkspaceError>; typedef RestoreNotifierValue = Either<View, FlowyError>;
abstract class IView { abstract class IView {
View get view; View get view;
Future<Either<Unit, WorkspaceError>> delete(); Future<Either<Unit, FlowyError>> delete();
Future<Either<View, WorkspaceError>> rename(String newName); Future<Either<View, FlowyError>> rename(String newName);
Future<Either<Unit, WorkspaceError>> duplicate(); Future<Either<Unit, FlowyError>> duplicate();
} }
abstract class IViewListener { abstract class IViewListener {

View File

@ -1,15 +1,15 @@
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
typedef WorkspaceAppsChangedCallback = void Function(Either<List<App>, WorkspaceError> appsOrFail); typedef WorkspaceAppsChangedCallback = void Function(Either<List<App>, FlowyError> appsOrFail);
typedef WorkspaceUpdatedCallback = void Function(String name, String desc); typedef WorkspaceUpdatedCallback = void Function(String name, String desc);
abstract class IWorkspace { abstract class IWorkspace {
Future<Either<App, WorkspaceError>> createApp({required String name, String? desc}); Future<Either<App, FlowyError>> createApp({required String name, String? desc});
Future<Either<List<App>, WorkspaceError>> getApps(); Future<Either<List<App>, FlowyError>> getApps();
} }
abstract class IWorkspaceListener { abstract class IWorkspaceListener {

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/infrastructure/repos/app_repo.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:app_flowy/workspace/domain/i_app.dart'; import 'package:app_flowy/workspace/domain/i_app.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
export 'package:app_flowy/workspace/domain/i_app.dart'; export 'package:app_flowy/workspace/domain/i_app.dart';
class IAppImpl extends IApp { class IAppImpl extends IApp {
@ -12,12 +12,12 @@ class IAppImpl extends IApp {
}); });
@override @override
Future<Either<List<View>, WorkspaceError>> getViews() { Future<Either<List<View>, FlowyError>> getViews() {
return repo.getViews(); return repo.getViews();
} }
@override @override
Future<Either<View, WorkspaceError>> createView({required String name, String? desc, required ViewType viewType}) { Future<Either<View, FlowyError>> createView({required String name, String? desc, required ViewType viewType}) {
return repo.createView(name, desc ?? "", viewType).then((result) { return repo.createView(name, desc ?? "", viewType).then((result) {
return result.fold( return result.fold(
(view) => left(view), (view) => left(view),
@ -27,12 +27,12 @@ class IAppImpl extends IApp {
} }
@override @override
Future<Either<Unit, WorkspaceError>> delete() { Future<Either<Unit, FlowyError>> delete() {
return repo.delete(); return repo.delete();
} }
@override @override
Future<Either<Unit, WorkspaceError>> rename(String newName) { Future<Either<Unit, FlowyError>> rename(String newName) {
return repo.updateApp(name: newName); return repo.updateApp(name: newName);
} }
} }

View File

@ -5,7 +5,7 @@ import 'package:dartz/dartz.dart';
import 'package:app_flowy/workspace/domain/i_doc.dart'; import 'package:app_flowy/workspace/domain/i_doc.dart';
import 'package:app_flowy/workspace/infrastructure/repos/doc_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/doc_repo.dart';
import 'package:flowy_sdk/protobuf/flowy-collaboration/doc.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-collaboration/doc.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class IDocImpl extends IDoc { class IDocImpl extends IDoc {
DocRepository repo; DocRepository repo;
@ -13,18 +13,18 @@ class IDocImpl extends IDoc {
IDocImpl({required this.repo}); IDocImpl({required this.repo});
@override @override
Future<Either<Unit, WorkspaceError>> closeDoc() { Future<Either<Unit, FlowyError>> closeDoc() {
return repo.closeDoc(); return repo.closeDoc();
} }
@override @override
Future<Either<DocDelta, WorkspaceError>> readDoc() async { Future<Either<DocDelta, FlowyError>> readDoc() async {
final docOrFail = await repo.readDoc(); final docOrFail = await repo.readDoc();
return docOrFail; return docOrFail;
} }
@override @override
Future<Either<DocDelta, WorkspaceError>> composeDelta({required String json}) { Future<Either<DocDelta, FlowyError>> composeDelta({required String json}) {
return repo.composeDelta(data: json); return repo.composeDelta(data: json);
} }
} }

View File

@ -1,6 +1,6 @@
import 'package:app_flowy/workspace/domain/i_share.dart'; import 'package:app_flowy/workspace/domain/i_share.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'repos/share_repo.dart'; import 'repos/share_repo.dart';
@ -11,17 +11,17 @@ class IShareImpl extends IShare {
IShareImpl({required this.repo}); IShareImpl({required this.repo});
@override @override
Future<Either<ExportData, WorkspaceError>> exportText(String docId) { Future<Either<ExportData, FlowyError>> exportText(String docId) {
return repo.export(docId, ExportType.Text); return repo.export(docId, ExportType.Text);
} }
@override @override
Future<Either<ExportData, WorkspaceError>> exportMarkdown(String docId) { Future<Either<ExportData, FlowyError>> exportMarkdown(String docId) {
return repo.export(docId, ExportType.Markdown); return repo.export(docId, ExportType.Markdown);
} }
@override @override
Future<Either<ExportData, WorkspaceError>> exportURL(String docId) { Future<Either<ExportData, FlowyError>> exportURL(String docId) {
return repo.export(docId, ExportType.Link); return repo.export(docId, ExportType.Link);
} }
} }

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/i_trash.dart';
import 'package:app_flowy/workspace/infrastructure/repos/trash_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/trash_repo.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class ITrashImpl implements ITrash { class ITrashImpl implements ITrash {
TrashRepo repo; TrashRepo repo;
@ -10,7 +10,7 @@ class ITrashImpl implements ITrash {
ITrashImpl({required this.repo}); ITrashImpl({required this.repo});
@override @override
Future<Either<List<Trash>, WorkspaceError>> readTrash() { Future<Either<List<Trash>, FlowyError>> readTrash() {
return repo.readTrash().then((result) { return repo.readTrash().then((result) {
return result.fold( return result.fold(
(repeatedTrash) => left(repeatedTrash.items), (repeatedTrash) => left(repeatedTrash.items),
@ -20,22 +20,22 @@ class ITrashImpl implements ITrash {
} }
@override @override
Future<Either<Unit, WorkspaceError>> putback(String trashId) { Future<Either<Unit, FlowyError>> putback(String trashId) {
return repo.putback(trashId); return repo.putback(trashId);
} }
@override @override
Future<Either<Unit, WorkspaceError>> deleteAll() { Future<Either<Unit, FlowyError>> deleteAll() {
return repo.deleteAll(); return repo.deleteAll();
} }
@override @override
Future<Either<Unit, WorkspaceError>> restoreAll() { Future<Either<Unit, FlowyError>> restoreAll() {
return repo.restoreAll(); return repo.restoreAll();
} }
@override @override
Future<Either<Unit, WorkspaceError>> deleteViews(List<Tuple2<String, TrashType>> trashList) { Future<Either<Unit, FlowyError>> deleteViews(List<Tuple2<String, TrashType>> trashList) {
return repo.deleteViews(trashList); return repo.deleteViews(trashList);
} }
} }

View File

@ -10,7 +10,7 @@ import 'package:flowy_sdk/protobuf/flowy-user-infra/errors.pb.dart';
// import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart' as user_error; // import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart' as user_error;
import 'package:flowy_sdk/protobuf/flowy-user/observable.pb.dart' as user; import 'package:flowy_sdk/protobuf/flowy-user/observable.pb.dart' as user;
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart';
export 'package:app_flowy/workspace/domain/i_user.dart'; export 'package:app_flowy/workspace/domain/i_user.dart';
export 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart'; export 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart';
@ -24,17 +24,17 @@ class IUserImpl extends IUser {
}); });
@override @override
Future<Either<Unit, WorkspaceError>> deleteWorkspace(String workspaceId) { Future<Either<Unit, FlowyError>> deleteWorkspace(String workspaceId) {
return repo.deleteWorkspace(workspaceId: workspaceId); return repo.deleteWorkspace(workspaceId: workspaceId);
} }
@override @override
Future<Either<UserProfile, UserError>> fetchUserProfile(String userId) { Future<Either<UserProfile, FlowyError>> fetchUserProfile(String userId) {
return repo.fetchUserProfile(userId: userId); return repo.fetchUserProfile(userId: userId);
} }
@override @override
Future<Either<Unit, UserError>> signOut() { Future<Either<Unit, FlowyError>> signOut() {
return repo.signOut(); return repo.signOut();
} }
@ -42,12 +42,12 @@ class IUserImpl extends IUser {
UserProfile get user => repo.user; UserProfile get user => repo.user;
@override @override
Future<Either<List<Workspace>, WorkspaceError>> fetchWorkspaces() { Future<Either<List<Workspace>, FlowyError>> fetchWorkspaces() {
return repo.getWorkspaces(); return repo.getWorkspaces();
} }
@override @override
Future<Either<Unit, UserError>> initUser() { Future<Either<Unit, FlowyError>> initUser() {
return repo.initUser(); return repo.initUser();
} }
} }
@ -88,7 +88,7 @@ class IUserListenerImpl extends IUserListener {
await _subscription?.cancel(); await _subscription?.cancel();
} }
void _notificationCallback(WorkspaceNotification ty, Either<Uint8List, WorkspaceError> result) { void _notificationCallback(WorkspaceNotification ty, Either<Uint8List, FlowyError> result) {
switch (ty) { switch (ty) {
case WorkspaceNotification.UserCreateWorkspace: case WorkspaceNotification.UserCreateWorkspace:
case WorkspaceNotification.UserDeleteWorkspace: case WorkspaceNotification.UserDeleteWorkspace:
@ -101,7 +101,7 @@ class IUserListenerImpl extends IUserListener {
case WorkspaceNotification.UserUnauthorized: case WorkspaceNotification.UserUnauthorized:
result.fold( result.fold(
(_) {}, (_) {},
(error) => authDidChangedNotifier.value = right(UserError.create()..code = ErrorCode.UserUnauthorized.value), (error) => authDidChangedNotifier.value = right(FlowyError.create()..code = ErrorCode.UserUnauthorized.value),
); );
break; break;
default: default:
@ -109,7 +109,7 @@ class IUserListenerImpl extends IUserListener {
} }
} }
void _userNotificationCallback(user.UserNotification ty, Either<Uint8List, UserError> result) { void _userNotificationCallback(user.UserNotification ty, Either<Uint8List, FlowyError> result) {
switch (ty) { switch (ty) {
case user.UserNotification.UserUnauthorized: case user.UserNotification.UserUnauthorized:
result.fold( result.fold(

View File

@ -3,7 +3,7 @@ import 'package:app_flowy/workspace/infrastructure/repos/view_repo.dart';
import 'package:flowy_infra/notifier.dart'; import 'package:flowy_infra/notifier.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class IViewImpl extends IView { class IViewImpl extends IView {
ViewRepository repo; ViewRepository repo;
@ -14,7 +14,7 @@ class IViewImpl extends IView {
View get view => repo.view; View get view => repo.view;
@override @override
Future<Either<Unit, WorkspaceError>> delete() { Future<Either<Unit, FlowyError>> delete() {
return repo.delete().then((result) { return repo.delete().then((result) {
return result.fold( return result.fold(
(_) => left(unit), (_) => left(unit),
@ -24,12 +24,12 @@ class IViewImpl extends IView {
} }
@override @override
Future<Either<View, WorkspaceError>> rename(String newName) { Future<Either<View, FlowyError>> rename(String newName) {
return repo.updateView(name: newName); return repo.updateView(name: newName);
} }
@override @override
Future<Either<Unit, WorkspaceError>> duplicate() { Future<Either<Unit, FlowyError>> duplicate() {
return repo.duplicate(); return repo.duplicate();
} }
} }

View File

@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/i_workspace.dart';
import 'package:app_flowy/workspace/infrastructure/repos/workspace_repo.dart'; import 'package:app_flowy/workspace/infrastructure/repos/workspace_repo.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
export 'package:app_flowy/workspace/domain/i_workspace.dart'; export 'package:app_flowy/workspace/domain/i_workspace.dart';
@ -13,12 +13,12 @@ class IWorkspaceImpl extends IWorkspace {
}); });
@override @override
Future<Either<App, WorkspaceError>> createApp({required String name, String? desc}) { Future<Either<App, FlowyError>> createApp({required String name, String? desc}) {
return repo.createApp(name, desc ?? ""); return repo.createApp(name, desc ?? "");
} }
@override @override
Future<Either<List<App>, WorkspaceError>> getApps() { Future<Either<List<App>, FlowyError>> getApps() {
return repo.getApps().then((result) { return repo.getApps().then((result) {
return result.fold( return result.fold(
(apps) => left(apps), (apps) => left(apps),

View File

@ -9,7 +9,7 @@ import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/app_query.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/app_query.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/app_update.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/app_update.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart';
import 'package:flowy_sdk/rust_stream.dart'; import 'package:flowy_sdk/rust_stream.dart';
import 'helper.dart'; import 'helper.dart';
@ -20,13 +20,13 @@ class AppRepository {
required this.appId, required this.appId,
}); });
Future<Either<App, WorkspaceError>> getAppDesc() { Future<Either<App, FlowyError>> getAppDesc() {
final request = QueryAppRequest.create()..appIds.add(appId); final request = QueryAppRequest.create()..appIds.add(appId);
return WorkspaceEventReadApp(request).send(); return WorkspaceEventReadApp(request).send();
} }
Future<Either<View, WorkspaceError>> createView(String name, String desc, ViewType viewType) { Future<Either<View, FlowyError>> createView(String name, String desc, ViewType viewType) {
final request = CreateViewRequest.create() final request = CreateViewRequest.create()
..belongToId = appId ..belongToId = appId
..name = name ..name = name
@ -36,7 +36,7 @@ class AppRepository {
return WorkspaceEventCreateView(request).send(); return WorkspaceEventCreateView(request).send();
} }
Future<Either<List<View>, WorkspaceError>> getViews() { Future<Either<List<View>, FlowyError>> getViews() {
final request = QueryAppRequest.create()..appIds.add(appId); final request = QueryAppRequest.create()..appIds.add(appId);
return WorkspaceEventReadApp(request).send().then((result) { return WorkspaceEventReadApp(request).send().then((result) {
@ -47,12 +47,12 @@ class AppRepository {
}); });
} }
Future<Either<Unit, WorkspaceError>> delete() { Future<Either<Unit, FlowyError>> delete() {
final request = QueryAppRequest.create()..appIds.add(appId); final request = QueryAppRequest.create()..appIds.add(appId);
return WorkspaceEventDeleteApp(request).send(); return WorkspaceEventDeleteApp(request).send();
} }
Future<Either<Unit, WorkspaceError>> updateApp({String? name}) { Future<Either<Unit, FlowyError>> updateApp({String? name}) {
UpdateAppRequest request = UpdateAppRequest.create()..appId = appId; UpdateAppRequest request = UpdateAppRequest.create()..appId = appId;
if (name != null) { if (name != null) {
@ -80,7 +80,7 @@ class AppListenerRepository {
_subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable)); _subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable));
} }
void _bservableCallback(WorkspaceNotification ty, Either<Uint8List, WorkspaceError> result) { void _bservableCallback(WorkspaceNotification ty, Either<Uint8List, FlowyError> result) {
switch (ty) { switch (ty) {
case WorkspaceNotification.AppViewsChanged: case WorkspaceNotification.AppViewsChanged:
if (_viewsChanged != null) { if (_viewsChanged != null) {

View File

@ -2,7 +2,7 @@ import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/dispatch/dispatch.dart'; import 'package:flowy_sdk/dispatch/dispatch.dart';
import 'package:flowy_sdk/protobuf/flowy-collaboration/doc.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-collaboration/doc.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_query.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_query.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class DocRepository { class DocRepository {
final String docId; final String docId;
@ -10,19 +10,19 @@ class DocRepository {
required this.docId, required this.docId,
}); });
Future<Either<DocDelta, WorkspaceError>> readDoc() { Future<Either<DocDelta, FlowyError>> readDoc() {
final request = QueryViewRequest(viewIds: [docId]); final request = QueryViewRequest(viewIds: [docId]);
return WorkspaceEventOpenView(request).send(); return WorkspaceEventOpenView(request).send();
} }
Future<Either<DocDelta, WorkspaceError>> composeDelta({required String data}) { Future<Either<DocDelta, FlowyError>> composeDelta({required String data}) {
final request = DocDelta.create() final request = DocDelta.create()
..docId = docId ..docId = docId
..data = data; ..data = data;
return WorkspaceEventApplyDocDelta(request).send(); return WorkspaceEventApplyDocDelta(request).send();
} }
Future<Either<Unit, WorkspaceError>> closeDoc() { Future<Either<Unit, FlowyError>> closeDoc() {
final request = QueryViewRequest(viewIds: [docId]); final request = QueryViewRequest(viewIds: [docId]);
return WorkspaceEventCloseView(request).send(); return WorkspaceEventCloseView(request).send();
} }

View File

@ -2,30 +2,30 @@ import 'dart:typed_data';
import 'package:flowy_sdk/protobuf/dart-notify/protobuf.dart'; import 'package:flowy_sdk/protobuf/dart-notify/protobuf.dart';
import 'package:flowy_sdk/protobuf/flowy-user/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-user/protobuf.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart';
typedef UserNotificationCallback = void Function(UserNotification, Either<Uint8List, UserError>); typedef UserNotificationCallback = void Function(UserNotification, Either<Uint8List, FlowyError>);
class UserNotificationParser extends NotificationParser<UserNotification, UserError> { class UserNotificationParser extends NotificationParser<UserNotification, FlowyError> {
UserNotificationParser({required String id, required UserNotificationCallback callback}) UserNotificationParser({required String id, required UserNotificationCallback callback})
: super( : super(
id: id, id: id,
callback: callback, callback: callback,
tyParser: (ty) => UserNotification.valueOf(ty), tyParser: (ty) => UserNotification.valueOf(ty),
errorParser: (bytes) => UserError.fromBuffer(bytes), errorParser: (bytes) => FlowyError.fromBuffer(bytes),
); );
} }
typedef NotificationCallback = void Function(WorkspaceNotification, Either<Uint8List, WorkspaceError>); typedef NotificationCallback = void Function(WorkspaceNotification, Either<Uint8List, FlowyError>);
class WorkspaceNotificationParser extends NotificationParser<WorkspaceNotification, WorkspaceError> { class WorkspaceNotificationParser extends NotificationParser<WorkspaceNotification, FlowyError> {
WorkspaceNotificationParser({String? id, required NotificationCallback callback}) WorkspaceNotificationParser({String? id, required NotificationCallback callback})
: super( : super(
id: id, id: id,
callback: callback, callback: callback,
tyParser: (ty) => WorkspaceNotification.valueOf(ty), tyParser: (ty) => WorkspaceNotification.valueOf(ty),
errorParser: (bytes) => WorkspaceError.fromBuffer(bytes), errorParser: (bytes) => FlowyError.fromBuffer(bytes),
); );
} }

View File

@ -2,10 +2,10 @@ import 'dart:async';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/dispatch/dispatch.dart'; import 'package:flowy_sdk/dispatch/dispatch.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/protobuf.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class ShareRepo { class ShareRepo {
Future<Either<ExportData, WorkspaceError>> export(String docId, ExportType type) { Future<Either<ExportData, FlowyError>> export(String docId, ExportType type) {
final request = ExportRequest.create() final request = ExportRequest.create()
..docId = docId ..docId = docId
..exportType = type; ..exportType = type;

View File

@ -6,22 +6,22 @@ import 'package:dartz/dartz.dart';
import 'package:flowy_sdk/dispatch/dispatch.dart'; import 'package:flowy_sdk/dispatch/dispatch.dart';
import 'package:flowy_sdk/protobuf/dart-notify/subject.pb.dart'; import 'package:flowy_sdk/protobuf/dart-notify/subject.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/trash_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart';
import 'package:flowy_sdk/rust_stream.dart'; import 'package:flowy_sdk/rust_stream.dart';
class TrashRepo { class TrashRepo {
Future<Either<RepeatedTrash, WorkspaceError>> readTrash() { Future<Either<RepeatedTrash, FlowyError>> readTrash() {
return WorkspaceEventReadTrash().send(); return WorkspaceEventReadTrash().send();
} }
Future<Either<Unit, WorkspaceError>> putback(String trashId) { Future<Either<Unit, FlowyError>> putback(String trashId) {
final id = TrashIdentifier.create()..id = trashId; final id = TrashIdentifier.create()..id = trashId;
return WorkspaceEventPutbackTrash(id).send(); return WorkspaceEventPutbackTrash(id).send();
} }
Future<Either<Unit, WorkspaceError>> deleteViews(List<Tuple2<String, TrashType>> trashList) { Future<Either<Unit, FlowyError>> deleteViews(List<Tuple2<String, TrashType>> trashList) {
final items = trashList.map((trash) { final items = trashList.map((trash) {
return TrashIdentifier.create() return TrashIdentifier.create()
..id = trash.value1 ..id = trash.value1
@ -32,11 +32,11 @@ class TrashRepo {
return WorkspaceEventDeleteTrash(trashIdentifiers).send(); return WorkspaceEventDeleteTrash(trashIdentifiers).send();
} }
Future<Either<Unit, WorkspaceError>> restoreAll() { Future<Either<Unit, FlowyError>> restoreAll() {
return WorkspaceEventRestoreAll().send(); return WorkspaceEventRestoreAll().send();
} }
Future<Either<Unit, WorkspaceError>> deleteAll() { Future<Either<Unit, FlowyError>> deleteAll() {
return WorkspaceEventDeleteAll().send(); return WorkspaceEventDeleteAll().send();
} }
} }
@ -52,7 +52,7 @@ class TrashListenerRepo {
_subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable)); _subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable));
} }
void _bservableCallback(WorkspaceNotification ty, Either<Uint8List, WorkspaceError> result) { void _bservableCallback(WorkspaceNotification ty, Either<Uint8List, FlowyError> result) {
switch (ty) { switch (ty) {
case WorkspaceNotification.TrashUpdated: case WorkspaceNotification.TrashUpdated:
if (_trashUpdated != null) { if (_trashUpdated != null) {

View File

@ -4,7 +4,7 @@ import 'package:flowy_sdk/dispatch/dispatch.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_query.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_query.pb.dart';
import 'package:app_flowy/workspace/domain/i_user.dart'; import 'package:app_flowy/workspace/domain/i_user.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
class UserRepo { class UserRepo {
final UserProfile user; final UserProfile user;
@ -12,23 +12,23 @@ class UserRepo {
required this.user, required this.user,
}); });
Future<Either<UserProfile, UserError>> fetchUserProfile({required String userId}) { Future<Either<UserProfile, FlowyError>> fetchUserProfile({required String userId}) {
return UserEventGetUserProfile().send(); return UserEventGetUserProfile().send();
} }
Future<Either<Unit, WorkspaceError>> deleteWorkspace({required String workspaceId}) { Future<Either<Unit, FlowyError>> deleteWorkspace({required String workspaceId}) {
throw UnimplementedError(); throw UnimplementedError();
} }
Future<Either<Unit, UserError>> signOut() { Future<Either<Unit, FlowyError>> signOut() {
return UserEventSignOut().send(); return UserEventSignOut().send();
} }
Future<Either<Unit, UserError>> initUser() async { Future<Either<Unit, FlowyError>> initUser() async {
return UserEventInitUser().send(); return UserEventInitUser().send();
} }
Future<Either<List<Workspace>, WorkspaceError>> getWorkspaces() { Future<Either<List<Workspace>, FlowyError>> getWorkspaces() {
final request = QueryWorkspaceRequest.create(); final request = QueryWorkspaceRequest.create();
return WorkspaceEventReadWorkspaces(request).send().then((result) { return WorkspaceEventReadWorkspaces(request).send().then((result) {
@ -39,7 +39,7 @@ class UserRepo {
}); });
} }
Future<Either<Workspace, WorkspaceError>> openWorkspace(String workspaceId) { Future<Either<Workspace, FlowyError>> openWorkspace(String workspaceId) {
final request = QueryWorkspaceRequest.create()..workspaceId = workspaceId; final request = QueryWorkspaceRequest.create()..workspaceId = workspaceId;
return WorkspaceEventOpenWorkspace(request).send().then((result) { return WorkspaceEventOpenWorkspace(request).send().then((result) {
return result.fold( return result.fold(
@ -49,7 +49,7 @@ class UserRepo {
}); });
} }
Future<Either<Workspace, WorkspaceError>> createWorkspace(String name, String desc) { Future<Either<Workspace, FlowyError>> createWorkspace(String name, String desc) {
final request = CreateWorkspaceRequest.create() final request = CreateWorkspaceRequest.create()
..name = name ..name = name
..desc = desc; ..desc = desc;

View File

@ -6,7 +6,7 @@ import 'package:flowy_sdk/protobuf/dart-notify/subject.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_query.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_query.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_update.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_update.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart';
import 'package:flowy_sdk/rust_stream.dart'; import 'package:flowy_sdk/rust_stream.dart';
@ -21,12 +21,12 @@ class ViewRepository {
required this.view, required this.view,
}); });
Future<Either<View, WorkspaceError>> readView() { Future<Either<View, FlowyError>> readView() {
final request = QueryViewRequest(viewIds: [view.id]); final request = QueryViewRequest(viewIds: [view.id]);
return WorkspaceEventReadView(request).send(); return WorkspaceEventReadView(request).send();
} }
Future<Either<View, WorkspaceError>> updateView({String? name, String? desc}) { Future<Either<View, FlowyError>> updateView({String? name, String? desc}) {
final request = UpdateViewRequest.create()..viewId = view.id; final request = UpdateViewRequest.create()..viewId = view.id;
if (name != null) { if (name != null) {
@ -40,12 +40,12 @@ class ViewRepository {
return WorkspaceEventUpdateView(request).send(); return WorkspaceEventUpdateView(request).send();
} }
Future<Either<Unit, WorkspaceError>> delete() { Future<Either<Unit, FlowyError>> delete() {
final request = QueryViewRequest.create()..viewIds.add(view.id); final request = QueryViewRequest.create()..viewIds.add(view.id);
return WorkspaceEventDeleteView(request).send(); return WorkspaceEventDeleteView(request).send();
} }
Future<Either<Unit, WorkspaceError>> duplicate() { Future<Either<Unit, FlowyError>> duplicate() {
final request = QueryViewRequest.create()..viewIds.add(view.id); final request = QueryViewRequest.create()..viewIds.add(view.id);
return WorkspaceEventDuplicateView(request).send(); return WorkspaceEventDuplicateView(request).send();
} }
@ -74,7 +74,7 @@ class ViewListenerRepository {
_subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable)); _subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable));
} }
void _handleObservableType(WorkspaceNotification ty, Either<Uint8List, WorkspaceError> result) { void _handleObservableType(WorkspaceNotification ty, Either<Uint8List, FlowyError> result) {
switch (ty) { switch (ty) {
case WorkspaceNotification.ViewUpdated: case WorkspaceNotification.ViewUpdated:
result.fold( result.fold(

View File

@ -10,7 +10,7 @@ import 'package:flowy_sdk/protobuf/flowy-user-infra/protobuf.dart' show UserProf
import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/app_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_query.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/workspace_query.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/observable.pb.dart';
import 'package:flowy_sdk/rust_stream.dart'; import 'package:flowy_sdk/rust_stream.dart';
@ -27,7 +27,7 @@ class WorkspaceRepo {
required this.workspaceId, required this.workspaceId,
}); });
Future<Either<App, WorkspaceError>> createApp(String appName, String desc) { Future<Either<App, FlowyError>> createApp(String appName, String desc) {
final request = CreateAppRequest.create() final request = CreateAppRequest.create()
..name = appName ..name = appName
..workspaceId = workspaceId ..workspaceId = workspaceId
@ -35,7 +35,7 @@ class WorkspaceRepo {
return WorkspaceEventCreateApp(request).send(); return WorkspaceEventCreateApp(request).send();
} }
Future<Either<Workspace, WorkspaceError>> getWorkspace() { Future<Either<Workspace, FlowyError>> getWorkspace() {
final request = QueryWorkspaceRequest.create()..workspaceId = workspaceId; final request = QueryWorkspaceRequest.create()..workspaceId = workspaceId;
return WorkspaceEventReadWorkspaces(request).send().then((result) { return WorkspaceEventReadWorkspaces(request).send().then((result) {
return result.fold( return result.fold(
@ -43,7 +43,7 @@ class WorkspaceRepo {
assert(workspaces.items.length == 1); assert(workspaces.items.length == 1);
if (workspaces.items.isEmpty) { if (workspaces.items.isEmpty) {
return right(WorkspaceError.create()..msg = LocaleKeys.workspace_notFoundError.tr()); return right(FlowyError.create()..msg = LocaleKeys.workspace_notFoundError.tr());
} else { } else {
return left(workspaces.items[0]); return left(workspaces.items[0]);
} }
@ -53,7 +53,7 @@ class WorkspaceRepo {
}); });
} }
Future<Either<List<App>, WorkspaceError>> getApps() { Future<Either<List<App>, FlowyError>> getApps() {
final request = QueryWorkspaceRequest.create()..workspaceId = workspaceId; final request = QueryWorkspaceRequest.create()..workspaceId = workspaceId;
return WorkspaceEventReadWorkspaceApps(request).send().then((result) { return WorkspaceEventReadWorkspaceApps(request).send().then((result) {
return result.fold( return result.fold(
@ -94,7 +94,7 @@ class WorkspaceListenerRepo {
_subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable)); _subscription = RustStreamReceiver.listen((observable) => _parser.parse(observable));
} }
void _handleObservableType(WorkspaceNotification ty, Either<Uint8List, WorkspaceError> result) { void _handleObservableType(WorkspaceNotification ty, Either<Uint8List, FlowyError> result) {
switch (ty) { switch (ty) {
case WorkspaceNotification.WorkspaceUpdated: case WorkspaceNotification.WorkspaceUpdated:
if (_update != null) { if (_update != null) {

View File

@ -14,7 +14,7 @@ import 'package:flowy_infra_ui/widget/rounded_button.dart';
import 'package:flowy_log/flowy_log.dart'; import 'package:flowy_log/flowy_log.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/export.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/export.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core-infra/view_create.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:dartz/dartz.dart' as dartz; import 'package:dartz/dartz.dart' as dartz;
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
@ -200,7 +200,7 @@ class DocShareButton extends StatelessWidget {
} }
} }
void _handleExportError(WorkspaceError error) {} void _handleExportError(FlowyError error) {}
void _showActionList(BuildContext context, Offset offset) { void _showActionList(BuildContext context, Offset offset) {
final actionList = ShareActions(onSelected: (result) { final actionList = ShareActions(onSelected: (result) {

View File

@ -6,7 +6,7 @@ class WorkspaceEventCreateWorkspace {
CreateWorkspaceRequest request; CreateWorkspaceRequest request;
WorkspaceEventCreateWorkspace(this.request); WorkspaceEventCreateWorkspace(this.request);
Future<Either<Workspace, WorkspaceError>> send() { Future<Either<Workspace, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.CreateWorkspace.toString() ..event = WorkspaceEvent.CreateWorkspace.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -14,7 +14,7 @@ class WorkspaceEventCreateWorkspace {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(Workspace.fromBuffer(okBytes)), (okBytes) => left(Workspace.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -22,13 +22,13 @@ class WorkspaceEventCreateWorkspace {
class WorkspaceEventReadCurWorkspace { class WorkspaceEventReadCurWorkspace {
WorkspaceEventReadCurWorkspace(); WorkspaceEventReadCurWorkspace();
Future<Either<CurrentWorkspaceSetting, WorkspaceError>> send() { Future<Either<CurrentWorkspaceSetting, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ReadCurWorkspace.toString(); ..event = WorkspaceEvent.ReadCurWorkspace.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(okBytes) => left(CurrentWorkspaceSetting.fromBuffer(okBytes)), (okBytes) => left(CurrentWorkspaceSetting.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -37,7 +37,7 @@ class WorkspaceEventReadWorkspaces {
QueryWorkspaceRequest request; QueryWorkspaceRequest request;
WorkspaceEventReadWorkspaces(this.request); WorkspaceEventReadWorkspaces(this.request);
Future<Either<RepeatedWorkspace, WorkspaceError>> send() { Future<Either<RepeatedWorkspace, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ReadWorkspaces.toString() ..event = WorkspaceEvent.ReadWorkspaces.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -45,7 +45,7 @@ class WorkspaceEventReadWorkspaces {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(RepeatedWorkspace.fromBuffer(okBytes)), (okBytes) => left(RepeatedWorkspace.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -54,7 +54,7 @@ class WorkspaceEventDeleteWorkspace {
QueryWorkspaceRequest request; QueryWorkspaceRequest request;
WorkspaceEventDeleteWorkspace(this.request); WorkspaceEventDeleteWorkspace(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.DeleteWorkspace.toString() ..event = WorkspaceEvent.DeleteWorkspace.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -62,7 +62,7 @@ class WorkspaceEventDeleteWorkspace {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -71,7 +71,7 @@ class WorkspaceEventOpenWorkspace {
QueryWorkspaceRequest request; QueryWorkspaceRequest request;
WorkspaceEventOpenWorkspace(this.request); WorkspaceEventOpenWorkspace(this.request);
Future<Either<Workspace, WorkspaceError>> send() { Future<Either<Workspace, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.OpenWorkspace.toString() ..event = WorkspaceEvent.OpenWorkspace.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -79,7 +79,7 @@ class WorkspaceEventOpenWorkspace {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(Workspace.fromBuffer(okBytes)), (okBytes) => left(Workspace.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -88,7 +88,7 @@ class WorkspaceEventReadWorkspaceApps {
QueryWorkspaceRequest request; QueryWorkspaceRequest request;
WorkspaceEventReadWorkspaceApps(this.request); WorkspaceEventReadWorkspaceApps(this.request);
Future<Either<RepeatedApp, WorkspaceError>> send() { Future<Either<RepeatedApp, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ReadWorkspaceApps.toString() ..event = WorkspaceEvent.ReadWorkspaceApps.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -96,7 +96,7 @@ class WorkspaceEventReadWorkspaceApps {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(RepeatedApp.fromBuffer(okBytes)), (okBytes) => left(RepeatedApp.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -105,7 +105,7 @@ class WorkspaceEventCreateApp {
CreateAppRequest request; CreateAppRequest request;
WorkspaceEventCreateApp(this.request); WorkspaceEventCreateApp(this.request);
Future<Either<App, WorkspaceError>> send() { Future<Either<App, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.CreateApp.toString() ..event = WorkspaceEvent.CreateApp.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -113,7 +113,7 @@ class WorkspaceEventCreateApp {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(App.fromBuffer(okBytes)), (okBytes) => left(App.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -122,7 +122,7 @@ class WorkspaceEventDeleteApp {
QueryAppRequest request; QueryAppRequest request;
WorkspaceEventDeleteApp(this.request); WorkspaceEventDeleteApp(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.DeleteApp.toString() ..event = WorkspaceEvent.DeleteApp.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -130,7 +130,7 @@ class WorkspaceEventDeleteApp {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -139,7 +139,7 @@ class WorkspaceEventReadApp {
QueryAppRequest request; QueryAppRequest request;
WorkspaceEventReadApp(this.request); WorkspaceEventReadApp(this.request);
Future<Either<App, WorkspaceError>> send() { Future<Either<App, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ReadApp.toString() ..event = WorkspaceEvent.ReadApp.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -147,7 +147,7 @@ class WorkspaceEventReadApp {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(App.fromBuffer(okBytes)), (okBytes) => left(App.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -156,7 +156,7 @@ class WorkspaceEventUpdateApp {
UpdateAppRequest request; UpdateAppRequest request;
WorkspaceEventUpdateApp(this.request); WorkspaceEventUpdateApp(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.UpdateApp.toString() ..event = WorkspaceEvent.UpdateApp.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -164,7 +164,7 @@ class WorkspaceEventUpdateApp {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -173,7 +173,7 @@ class WorkspaceEventCreateView {
CreateViewRequest request; CreateViewRequest request;
WorkspaceEventCreateView(this.request); WorkspaceEventCreateView(this.request);
Future<Either<View, WorkspaceError>> send() { Future<Either<View, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.CreateView.toString() ..event = WorkspaceEvent.CreateView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -181,7 +181,7 @@ class WorkspaceEventCreateView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(View.fromBuffer(okBytes)), (okBytes) => left(View.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -190,7 +190,7 @@ class WorkspaceEventReadView {
QueryViewRequest request; QueryViewRequest request;
WorkspaceEventReadView(this.request); WorkspaceEventReadView(this.request);
Future<Either<View, WorkspaceError>> send() { Future<Either<View, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ReadView.toString() ..event = WorkspaceEvent.ReadView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -198,7 +198,7 @@ class WorkspaceEventReadView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(View.fromBuffer(okBytes)), (okBytes) => left(View.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -207,7 +207,7 @@ class WorkspaceEventUpdateView {
UpdateViewRequest request; UpdateViewRequest request;
WorkspaceEventUpdateView(this.request); WorkspaceEventUpdateView(this.request);
Future<Either<View, WorkspaceError>> send() { Future<Either<View, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.UpdateView.toString() ..event = WorkspaceEvent.UpdateView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -215,7 +215,7 @@ class WorkspaceEventUpdateView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(View.fromBuffer(okBytes)), (okBytes) => left(View.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -224,7 +224,7 @@ class WorkspaceEventDeleteView {
QueryViewRequest request; QueryViewRequest request;
WorkspaceEventDeleteView(this.request); WorkspaceEventDeleteView(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.DeleteView.toString() ..event = WorkspaceEvent.DeleteView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -232,7 +232,7 @@ class WorkspaceEventDeleteView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -241,7 +241,7 @@ class WorkspaceEventDuplicateView {
QueryViewRequest request; QueryViewRequest request;
WorkspaceEventDuplicateView(this.request); WorkspaceEventDuplicateView(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.DuplicateView.toString() ..event = WorkspaceEvent.DuplicateView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -249,7 +249,7 @@ class WorkspaceEventDuplicateView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -257,13 +257,13 @@ class WorkspaceEventDuplicateView {
class WorkspaceEventCopyLink { class WorkspaceEventCopyLink {
WorkspaceEventCopyLink(); WorkspaceEventCopyLink();
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.CopyLink.toString(); ..event = WorkspaceEvent.CopyLink.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -272,7 +272,7 @@ class WorkspaceEventOpenView {
QueryViewRequest request; QueryViewRequest request;
WorkspaceEventOpenView(this.request); WorkspaceEventOpenView(this.request);
Future<Either<DocDelta, WorkspaceError>> send() { Future<Either<DocDelta, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.OpenView.toString() ..event = WorkspaceEvent.OpenView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -280,7 +280,7 @@ class WorkspaceEventOpenView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(DocDelta.fromBuffer(okBytes)), (okBytes) => left(DocDelta.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -289,7 +289,7 @@ class WorkspaceEventCloseView {
QueryViewRequest request; QueryViewRequest request;
WorkspaceEventCloseView(this.request); WorkspaceEventCloseView(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.CloseView.toString() ..event = WorkspaceEvent.CloseView.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -297,7 +297,7 @@ class WorkspaceEventCloseView {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -305,13 +305,13 @@ class WorkspaceEventCloseView {
class WorkspaceEventReadTrash { class WorkspaceEventReadTrash {
WorkspaceEventReadTrash(); WorkspaceEventReadTrash();
Future<Either<RepeatedTrash, WorkspaceError>> send() { Future<Either<RepeatedTrash, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ReadTrash.toString(); ..event = WorkspaceEvent.ReadTrash.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(okBytes) => left(RepeatedTrash.fromBuffer(okBytes)), (okBytes) => left(RepeatedTrash.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -320,7 +320,7 @@ class WorkspaceEventPutbackTrash {
TrashIdentifier request; TrashIdentifier request;
WorkspaceEventPutbackTrash(this.request); WorkspaceEventPutbackTrash(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.PutbackTrash.toString() ..event = WorkspaceEvent.PutbackTrash.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -328,7 +328,7 @@ class WorkspaceEventPutbackTrash {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -337,7 +337,7 @@ class WorkspaceEventDeleteTrash {
TrashIdentifiers request; TrashIdentifiers request;
WorkspaceEventDeleteTrash(this.request); WorkspaceEventDeleteTrash(this.request);
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.DeleteTrash.toString() ..event = WorkspaceEvent.DeleteTrash.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -345,7 +345,7 @@ class WorkspaceEventDeleteTrash {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -353,13 +353,13 @@ class WorkspaceEventDeleteTrash {
class WorkspaceEventRestoreAll { class WorkspaceEventRestoreAll {
WorkspaceEventRestoreAll(); WorkspaceEventRestoreAll();
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.RestoreAll.toString(); ..event = WorkspaceEvent.RestoreAll.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -367,13 +367,13 @@ class WorkspaceEventRestoreAll {
class WorkspaceEventDeleteAll { class WorkspaceEventDeleteAll {
WorkspaceEventDeleteAll(); WorkspaceEventDeleteAll();
Future<Either<Unit, WorkspaceError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.DeleteAll.toString(); ..event = WorkspaceEvent.DeleteAll.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -382,7 +382,7 @@ class WorkspaceEventApplyDocDelta {
DocDelta request; DocDelta request;
WorkspaceEventApplyDocDelta(this.request); WorkspaceEventApplyDocDelta(this.request);
Future<Either<DocDelta, WorkspaceError>> send() { Future<Either<DocDelta, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ApplyDocDelta.toString() ..event = WorkspaceEvent.ApplyDocDelta.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -390,7 +390,7 @@ class WorkspaceEventApplyDocDelta {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(DocDelta.fromBuffer(okBytes)), (okBytes) => left(DocDelta.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -399,7 +399,7 @@ class WorkspaceEventExportDocument {
ExportRequest request; ExportRequest request;
WorkspaceEventExportDocument(this.request); WorkspaceEventExportDocument(this.request);
Future<Either<ExportData, WorkspaceError>> send() { Future<Either<ExportData, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = WorkspaceEvent.ExportDocument.toString() ..event = WorkspaceEvent.ExportDocument.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -407,7 +407,7 @@ class WorkspaceEventExportDocument {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(ExportData.fromBuffer(okBytes)), (okBytes) => left(ExportData.fromBuffer(okBytes)),
(errBytes) => right(WorkspaceError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -432,13 +432,13 @@ class NetworkEventUpdateNetworkType {
class UserEventInitUser { class UserEventInitUser {
UserEventInitUser(); UserEventInitUser();
Future<Either<Unit, UserError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.InitUser.toString(); ..event = UserEvent.InitUser.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -447,7 +447,7 @@ class UserEventSignIn {
SignInRequest request; SignInRequest request;
UserEventSignIn(this.request); UserEventSignIn(this.request);
Future<Either<UserProfile, UserError>> send() { Future<Either<UserProfile, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.SignIn.toString() ..event = UserEvent.SignIn.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -455,7 +455,7 @@ class UserEventSignIn {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(UserProfile.fromBuffer(okBytes)), (okBytes) => left(UserProfile.fromBuffer(okBytes)),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -464,7 +464,7 @@ class UserEventSignUp {
SignUpRequest request; SignUpRequest request;
UserEventSignUp(this.request); UserEventSignUp(this.request);
Future<Either<UserProfile, UserError>> send() { Future<Either<UserProfile, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.SignUp.toString() ..event = UserEvent.SignUp.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -472,7 +472,7 @@ class UserEventSignUp {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(okBytes) => left(UserProfile.fromBuffer(okBytes)), (okBytes) => left(UserProfile.fromBuffer(okBytes)),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -480,13 +480,13 @@ class UserEventSignUp {
class UserEventSignOut { class UserEventSignOut {
UserEventSignOut(); UserEventSignOut();
Future<Either<Unit, UserError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.SignOut.toString(); ..event = UserEvent.SignOut.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -495,7 +495,7 @@ class UserEventUpdateUser {
UpdateUserRequest request; UpdateUserRequest request;
UserEventUpdateUser(this.request); UserEventUpdateUser(this.request);
Future<Either<Unit, UserError>> send() { Future<Either<Unit, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.UpdateUser.toString() ..event = UserEvent.UpdateUser.toString()
..payload = requestToBytes(this.request); ..payload = requestToBytes(this.request);
@ -503,7 +503,7 @@ class UserEventUpdateUser {
return Dispatch.asyncRequest(request) return Dispatch.asyncRequest(request)
.then((bytesResult) => bytesResult.fold( .then((bytesResult) => bytesResult.fold(
(bytes) => left(unit), (bytes) => left(unit),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -511,13 +511,13 @@ class UserEventUpdateUser {
class UserEventGetUserProfile { class UserEventGetUserProfile {
UserEventGetUserProfile(); UserEventGetUserProfile();
Future<Either<UserProfile, UserError>> send() { Future<Either<UserProfile, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.GetUserProfile.toString(); ..event = UserEvent.GetUserProfile.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(okBytes) => left(UserProfile.fromBuffer(okBytes)), (okBytes) => left(UserProfile.fromBuffer(okBytes)),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }
@ -525,13 +525,13 @@ class UserEventGetUserProfile {
class UserEventCheckUser { class UserEventCheckUser {
UserEventCheckUser(); UserEventCheckUser();
Future<Either<UserProfile, UserError>> send() { Future<Either<UserProfile, FlowyError>> send() {
final request = FFIRequest.create() final request = FFIRequest.create()
..event = UserEvent.CheckUser.toString(); ..event = UserEvent.CheckUser.toString();
return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold( return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
(okBytes) => left(UserProfile.fromBuffer(okBytes)), (okBytes) => left(UserProfile.fromBuffer(okBytes)),
(errBytes) => right(UserError.fromBuffer(errBytes)), (errBytes) => right(FlowyError.fromBuffer(errBytes)),
)); ));
} }
} }

View File

@ -6,9 +6,7 @@ import 'package:flowy_sdk/protobuf/dart-ffi/ffi_response.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-net/event.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-net/event.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-net/network_state.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-net/network_state.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-user/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-user/event.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-user/event.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/errors.pb.dart';
import 'package:flowy_sdk/protobuf/flowy-core/event.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-core/event.pb.dart';
import 'package:isolates/isolates.dart'; import 'package:isolates/isolates.dart';
import 'package:isolates/ports.dart'; import 'package:isolates/ports.dart';

View File

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

View File

@ -0,0 +1,82 @@
///
// Generated code. Do not modify.
// source: error_code.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
// ignore_for_file: UNDEFINED_SHOWN_NAME
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class ErrorCode extends $pb.ProtobufEnum {
static const ErrorCode Internal = ErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'Internal');
static const ErrorCode UserUnauthorized = ErrorCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserUnauthorized');
static const ErrorCode RecordNotFound = ErrorCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'RecordNotFound');
static const ErrorCode WorkspaceNameInvalid = ErrorCode._(100, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameInvalid');
static const ErrorCode WorkspaceIdInvalid = ErrorCode._(101, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceIdInvalid');
static const ErrorCode AppColorStyleInvalid = ErrorCode._(102, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppColorStyleInvalid');
static const ErrorCode WorkspaceDescTooLong = ErrorCode._(103, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceDescTooLong');
static const ErrorCode WorkspaceNameTooLong = ErrorCode._(104, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameTooLong');
static const ErrorCode AppIdInvalid = ErrorCode._(110, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppIdInvalid');
static const ErrorCode AppNameInvalid = ErrorCode._(111, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppNameInvalid');
static const ErrorCode ViewNameInvalid = ErrorCode._(120, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameInvalid');
static const ErrorCode ViewThumbnailInvalid = ErrorCode._(121, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewThumbnailInvalid');
static const ErrorCode ViewIdInvalid = ErrorCode._(122, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewIdInvalid');
static const ErrorCode ViewDescTooLong = ErrorCode._(123, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDescTooLong');
static const ErrorCode ViewDataInvalid = ErrorCode._(124, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewDataInvalid');
static const ErrorCode ViewNameTooLong = ErrorCode._(125, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameTooLong');
static const ErrorCode ConnectError = ErrorCode._(200, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ConnectError');
static const ErrorCode EmailIsEmpty = ErrorCode._(300, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'EmailIsEmpty');
static const ErrorCode EmailFormatInvalid = ErrorCode._(301, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'EmailFormatInvalid');
static const ErrorCode EmailAlreadyExists = ErrorCode._(302, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'EmailAlreadyExists');
static const ErrorCode PasswordIsEmpty = ErrorCode._(303, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordIsEmpty');
static const ErrorCode PasswordTooLong = ErrorCode._(304, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordTooLong');
static const ErrorCode PasswordContainsForbidCharacters = ErrorCode._(305, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordContainsForbidCharacters');
static const ErrorCode PasswordFormatInvalid = ErrorCode._(306, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordFormatInvalid');
static const ErrorCode PasswordNotMatch = ErrorCode._(307, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PasswordNotMatch');
static const ErrorCode UserNameTooLong = ErrorCode._(308, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNameTooLong');
static const ErrorCode UserNameContainForbiddenCharacters = ErrorCode._(309, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNameContainForbiddenCharacters');
static const ErrorCode UserNameIsEmpty = ErrorCode._(310, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNameIsEmpty');
static const ErrorCode UserIdInvalid = ErrorCode._(311, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserIdInvalid');
static const ErrorCode UserNotExist = ErrorCode._(312, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNotExist');
static const $core.List<ErrorCode> values = <ErrorCode> [
Internal,
UserUnauthorized,
RecordNotFound,
WorkspaceNameInvalid,
WorkspaceIdInvalid,
AppColorStyleInvalid,
WorkspaceDescTooLong,
WorkspaceNameTooLong,
AppIdInvalid,
AppNameInvalid,
ViewNameInvalid,
ViewThumbnailInvalid,
ViewIdInvalid,
ViewDescTooLong,
ViewDataInvalid,
ViewNameTooLong,
ConnectError,
EmailIsEmpty,
EmailFormatInvalid,
EmailAlreadyExists,
PasswordIsEmpty,
PasswordTooLong,
PasswordContainsForbidCharacters,
PasswordFormatInvalid,
PasswordNotMatch,
UserNameTooLong,
UserNameContainForbiddenCharacters,
UserNameIsEmpty,
UserIdInvalid,
UserNotExist,
];
static final $core.Map<$core.int, ErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values);
static ErrorCode? valueOf($core.int value) => _byValue[value];
const ErrorCode._($core.int v, $core.String n) : super(v, n);
}

View File

@ -0,0 +1,49 @@
///
// Generated code. Do not modify.
// source: error_code.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
import 'dart:core' as $core;
import 'dart:convert' as $convert;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use errorCodeDescriptor instead')
const ErrorCode$json = const {
'1': 'ErrorCode',
'2': const [
const {'1': 'Internal', '2': 0},
const {'1': 'UserUnauthorized', '2': 2},
const {'1': 'RecordNotFound', '2': 3},
const {'1': 'WorkspaceNameInvalid', '2': 100},
const {'1': 'WorkspaceIdInvalid', '2': 101},
const {'1': 'AppColorStyleInvalid', '2': 102},
const {'1': 'WorkspaceDescTooLong', '2': 103},
const {'1': 'WorkspaceNameTooLong', '2': 104},
const {'1': 'AppIdInvalid', '2': 110},
const {'1': 'AppNameInvalid', '2': 111},
const {'1': 'ViewNameInvalid', '2': 120},
const {'1': 'ViewThumbnailInvalid', '2': 121},
const {'1': 'ViewIdInvalid', '2': 122},
const {'1': 'ViewDescTooLong', '2': 123},
const {'1': 'ViewDataInvalid', '2': 124},
const {'1': 'ViewNameTooLong', '2': 125},
const {'1': 'ConnectError', '2': 200},
const {'1': 'EmailIsEmpty', '2': 300},
const {'1': 'EmailFormatInvalid', '2': 301},
const {'1': 'EmailAlreadyExists', '2': 302},
const {'1': 'PasswordIsEmpty', '2': 303},
const {'1': 'PasswordTooLong', '2': 304},
const {'1': 'PasswordContainsForbidCharacters', '2': 305},
const {'1': 'PasswordFormatInvalid', '2': 306},
const {'1': 'PasswordNotMatch', '2': 307},
const {'1': 'UserNameTooLong', '2': 308},
const {'1': 'UserNameContainForbiddenCharacters', '2': 309},
const {'1': 'UserNameIsEmpty', '2': 310},
const {'1': 'UserIdInvalid', '2': 311},
const {'1': 'UserNotExist', '2': 312},
],
};
/// Descriptor for `ErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List errorCodeDescriptor = $convert.base64Decode('CglFcnJvckNvZGUSDAoISW50ZXJuYWwQABIUChBVc2VyVW5hdXRob3JpemVkEAISEgoOUmVjb3JkTm90Rm91bmQQAxIYChRXb3Jrc3BhY2VOYW1lSW52YWxpZBBkEhYKEldvcmtzcGFjZUlkSW52YWxpZBBlEhgKFEFwcENvbG9yU3R5bGVJbnZhbGlkEGYSGAoUV29ya3NwYWNlRGVzY1Rvb0xvbmcQZxIYChRXb3Jrc3BhY2VOYW1lVG9vTG9uZxBoEhAKDEFwcElkSW52YWxpZBBuEhIKDkFwcE5hbWVJbnZhbGlkEG8SEwoPVmlld05hbWVJbnZhbGlkEHgSGAoUVmlld1RodW1ibmFpbEludmFsaWQQeRIRCg1WaWV3SWRJbnZhbGlkEHoSEwoPVmlld0Rlc2NUb29Mb25nEHsSEwoPVmlld0RhdGFJbnZhbGlkEHwSEwoPVmlld05hbWVUb29Mb25nEH0SEQoMQ29ubmVjdEVycm9yEMgBEhEKDEVtYWlsSXNFbXB0eRCsAhIXChJFbWFpbEZvcm1hdEludmFsaWQQrQISFwoSRW1haWxBbHJlYWR5RXhpc3RzEK4CEhQKD1Bhc3N3b3JkSXNFbXB0eRCvAhIUCg9QYXNzd29yZFRvb0xvbmcQsAISJQogUGFzc3dvcmRDb250YWluc0ZvcmJpZENoYXJhY3RlcnMQsQISGgoVUGFzc3dvcmRGb3JtYXRJbnZhbGlkELICEhUKEFBhc3N3b3JkTm90TWF0Y2gQswISFAoPVXNlck5hbWVUb29Mb25nELQCEicKIlVzZXJOYW1lQ29udGFpbkZvcmJpZGRlbkNoYXJhY3RlcnMQtQISFAoPVXNlck5hbWVJc0VtcHR5ELYCEhIKDVVzZXJJZEludmFsaWQQtwISEQoMVXNlck5vdEV4aXN0ELgC');

View File

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

View File

@ -0,0 +1,2 @@
// Auto-generated, do not edit
export './error_code.pb.dart';

View File

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

View File

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

View File

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

View File

@ -1,4 +1,3 @@
// Auto-generated, do not edit // Auto-generated, do not edit
export './observable.pb.dart'; export './observable.pb.dart';
export './errors.pb.dart';
export './event.pb.dart'; export './event.pb.dart';

View File

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

View File

@ -1,32 +0,0 @@
///
// Generated code. Do not modify.
// source: errors.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
// ignore_for_file: UNDEFINED_SHOWN_NAME
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class ErrorCode extends $pb.ProtobufEnum {
static const ErrorCode WsConnectError = ErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WsConnectError');
static const ErrorCode DocNotfound = ErrorCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DocNotfound');
static const ErrorCode DuplicateRevision = ErrorCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DuplicateRevision');
static const ErrorCode UserUnauthorized = ErrorCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserUnauthorized');
static const ErrorCode InternalError = ErrorCode._(1000, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'InternalError');
static const $core.List<ErrorCode> values = <ErrorCode> [
WsConnectError,
DocNotfound,
DuplicateRevision,
UserUnauthorized,
InternalError,
];
static final $core.Map<$core.int, ErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values);
static ErrorCode? valueOf($core.int value) => _byValue[value];
const ErrorCode._($core.int v, $core.String n) : super(v, n);
}

View File

@ -1,35 +0,0 @@
///
// Generated code. Do not modify.
// source: errors.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
import 'dart:core' as $core;
import 'dart:convert' as $convert;
import 'dart:typed_data' as $typed_data;
@$core.Deprecated('Use errorCodeDescriptor instead')
const ErrorCode$json = const {
'1': 'ErrorCode',
'2': const [
const {'1': 'WsConnectError', '2': 0},
const {'1': 'DocNotfound', '2': 1},
const {'1': 'DuplicateRevision', '2': 2},
const {'1': 'UserUnauthorized', '2': 10},
const {'1': 'InternalError', '2': 1000},
],
};
/// Descriptor for `ErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List errorCodeDescriptor = $convert.base64Decode('CglFcnJvckNvZGUSEgoOV3NDb25uZWN0RXJyb3IQABIPCgtEb2NOb3Rmb3VuZBABEhUKEUR1cGxpY2F0ZVJldmlzaW9uEAISFAoQVXNlclVuYXV0aG9yaXplZBAKEhIKDUludGVybmFsRXJyb3IQ6Ac=');
@$core.Deprecated('Use docErrorDescriptor instead')
const DocError$json = const {
'1': 'DocError',
'2': const [
const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.ErrorCode', '10': 'code'},
const {'1': 'msg', '3': 2, '4': 1, '5': 9, '10': 'msg'},
],
};
/// Descriptor for `DocError`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List docErrorDescriptor = $convert.base64Decode('CghEb2NFcnJvchIeCgRjb2RlGAEgASgOMgouRXJyb3JDb2RlUgRjb2RlEhAKA21zZxgCIAEoCVIDbXNn');

View File

@ -1,3 +1,2 @@
// Auto-generated, do not edit // Auto-generated, do not edit
export './observable.pb.dart'; export './observable.pb.dart';
export './errors.pb.dart';

View File

@ -9,8 +9,6 @@ import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb; import 'package:protobuf/protobuf.dart' as $pb;
export 'errors.pbenum.dart';
class FlowyError extends $pb.GeneratedMessage { class FlowyError extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'FlowyError', createEmptyInstance: create) static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'FlowyError', createEmptyInstance: create)
..a<$core.int>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.O3) ..a<$core.int>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'code', $pb.PbFieldType.O3)

View File

@ -5,20 +5,3 @@
// @dart = 2.12 // @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields // ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
// ignore_for_file: UNDEFINED_SHOWN_NAME
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class ErrorCode extends $pb.ProtobufEnum {
static const ErrorCode Internal = ErrorCode._(0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'Internal');
static const $core.List<ErrorCode> values = <ErrorCode> [
Internal,
];
static final $core.Map<$core.int, ErrorCode> _byValue = $pb.ProtobufEnum.initByValue(values);
static ErrorCode? valueOf($core.int value) => _byValue[value];
const ErrorCode._($core.int v, $core.String n) : super(v, n);
}

View File

@ -8,16 +8,6 @@
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 errorCodeDescriptor instead')
const ErrorCode$json = const {
'1': 'ErrorCode',
'2': const [
const {'1': 'Internal', '2': 0},
],
};
/// Descriptor for `ErrorCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
final $typed_data.Uint8List errorCodeDescriptor = $convert.base64Decode('CglFcnJvckNvZGUSDAoISW50ZXJuYWwQAA==');
@$core.Deprecated('Use flowyErrorDescriptor instead') @$core.Deprecated('Use flowyErrorDescriptor instead')
const FlowyError$json = const { const FlowyError$json = const {
'1': 'FlowyError', '1': 'FlowyError',

View File

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

View File

@ -1,7 +0,0 @@
///
// Generated code. Do not modify.
// source: errors.proto
//
// @dart = 2.12
// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields

View File

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

View File

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

View File

@ -1,4 +1,3 @@
// Auto-generated, do not edit // Auto-generated, do not edit
export './observable.pb.dart'; export './observable.pb.dart';
export './errors.pb.dart';
export './event.pb.dart'; export './event.pb.dart';

View File

@ -16,6 +16,7 @@ lib-infra = { path = "../../../shared-lib/lib-infra" }
flowy-document = { path = "../flowy-document" } flowy-document = { path = "../flowy-document" }
flowy-database = { path = "../flowy-database" } flowy-database = { path = "../flowy-database" }
flowy-error = { path = "../flowy-error", features = ["db", "backend"]}
flowy-net = { path = "../flowy-net" } flowy-net = { path = "../flowy-net" }
dart-notify = { path = "../dart-notify" } dart-notify = { path = "../dart-notify" }
lib-dispatch = { path = "../lib-dispatch" } lib-dispatch = { path = "../lib-dispatch" }

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
core::CoreContext, core::CoreContext,
errors::WorkspaceError, errors::FlowyError,
notify::{send_dart_notification, WorkspaceNotification}, notify::{send_dart_notification, WorkspaceNotification},
services::workspace::sql::{WorkspaceTable, WorkspaceTableSql}, services::workspace::sql::{WorkspaceTable, WorkspaceTableSql},
}; };
@ -13,7 +13,7 @@ pub fn read_workspaces_on_server(
core: Unit<Arc<CoreContext>>, core: Unit<Arc<CoreContext>>,
user_id: String, user_id: String,
params: WorkspaceIdentifier, params: WorkspaceIdentifier,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let (token, server) = (core.user.token()?, core.server.clone()); let (token, server) = (core.user.token()?, core.server.clone());
let app_ctrl = core.app_controller.clone(); let app_ctrl = core.app_controller.clone();
let view_ctrl = core.view_controller.clone(); let view_ctrl = core.view_controller.clone();
@ -22,7 +22,7 @@ pub fn read_workspaces_on_server(
tokio::spawn(async move { tokio::spawn(async move {
// Opti: handle the error and retry? // Opti: handle the error and retry?
let workspaces = server.read_workspace(&token, params).await?; let workspaces = server.read_workspace(&token, params).await?;
let _ = (&*conn).immediate_transaction::<_, WorkspaceError, _>(|| { let _ = (&*conn).immediate_transaction::<_, FlowyError, _>(|| {
tracing::debug!("Save {} workspace", workspaces.len()); tracing::debug!("Save {} workspace", workspaces.len());
for workspace in &workspaces.items { for workspace in &workspaces.items {
let m_workspace = workspace.clone(); let m_workspace = workspace.clone();
@ -53,7 +53,7 @@ pub fn read_workspaces_on_server(
send_dart_notification(&token, WorkspaceNotification::WorkspaceListUpdated) send_dart_notification(&token, WorkspaceNotification::WorkspaceListUpdated)
.payload(workspaces) .payload(workspaces)
.send(); .send();
Result::<(), WorkspaceError>::Ok(()) Result::<(), FlowyError>::Ok(())
}); });
Ok(()) Ok(())

View File

@ -10,7 +10,7 @@ use flowy_net::entities::NetworkType;
use crate::{ use crate::{
entities::workspace::RepeatedWorkspace, entities::workspace::RepeatedWorkspace,
errors::{WorkspaceError, WorkspaceResult}, errors::{FlowyError, FlowyResult},
module::{WorkspaceDatabase, WorkspaceUser}, module::{WorkspaceDatabase, WorkspaceUser},
notify::{send_dart_notification, WorkspaceNotification}, notify::{send_dart_notification, WorkspaceNotification},
services::{server::Server, AppController, TrashController, ViewController, WorkspaceController}, services::{server::Server, AppController, TrashController, ViewController, WorkspaceController},
@ -64,7 +64,7 @@ impl CoreContext {
} }
} }
pub async fn user_did_sign_in(&self, token: &str) -> WorkspaceResult<()> { pub async fn user_did_sign_in(&self, token: &str) -> FlowyResult<()> {
log::debug!("workspace initialize after sign in"); log::debug!("workspace initialize after sign in");
let _ = self.init(token).await?; let _ = self.init(token).await?;
Ok(()) Ok(())
@ -78,7 +78,7 @@ impl CoreContext {
// TODO: (nathan) do something here // TODO: (nathan) do something here
} }
pub async fn user_did_sign_up(&self, _token: &str) -> WorkspaceResult<()> { pub async fn user_did_sign_up(&self, _token: &str) -> FlowyResult<()> {
log::debug!("Create user default workspace"); log::debug!("Create user default workspace");
let time = Utc::now(); let time = Utc::now();
let mut workspace = user_default::create_default_workspace(time); let mut workspace = user_default::create_default_workspace(time);
@ -120,7 +120,7 @@ impl CoreContext {
Ok(()) Ok(())
} }
async fn init(&self, token: &str) -> Result<(), WorkspaceError> { async fn init(&self, token: &str) -> Result<(), FlowyError> {
if let Some(is_init) = INIT_WORKSPACE.read().get(token) { if let Some(is_init) = INIT_WORKSPACE.read().get(token) {
if *is_init { if *is_init {
return Ok(()); return Ok(());

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
core::{aggregate_tasks::read_workspaces_on_server, CoreContext}, core::{aggregate_tasks::read_workspaces_on_server, CoreContext},
errors::WorkspaceError, errors::FlowyError,
services::{get_current_workspace, read_local_workspace_apps}, services::{get_current_workspace, read_local_workspace_apps},
}; };
use flowy_core_infra::entities::{ use flowy_core_infra::entities::{
@ -14,14 +14,14 @@ use std::{convert::TryInto, sync::Arc};
pub(crate) async fn read_workspaces_handler( pub(crate) async fn read_workspaces_handler(
data: Data<QueryWorkspaceRequest>, data: Data<QueryWorkspaceRequest>,
core: Unit<Arc<CoreContext>>, core: Unit<Arc<CoreContext>>,
) -> DataResult<RepeatedWorkspace, WorkspaceError> { ) -> DataResult<RepeatedWorkspace, FlowyError> {
let params: WorkspaceIdentifier = data.into_inner().try_into()?; let params: WorkspaceIdentifier = data.into_inner().try_into()?;
let user_id = core.user.user_id()?; let user_id = core.user.user_id()?;
let conn = &*core.database.db_connection()?; let conn = &*core.database.db_connection()?;
let workspace_controller = core.workspace_controller.clone(); let workspace_controller = core.workspace_controller.clone();
let trash_controller = core.trash_controller.clone(); let trash_controller = core.trash_controller.clone();
let workspaces = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let workspaces = conn.immediate_transaction::<_, FlowyError, _>(|| {
let mut workspaces = workspace_controller.read_local_workspaces(params.workspace_id.clone(), &user_id, conn)?; let mut workspaces = workspace_controller.read_local_workspaces(params.workspace_id.clone(), &user_id, conn)?;
for workspace in workspaces.iter_mut() { for workspace in workspaces.iter_mut() {
let apps = read_local_workspace_apps(&workspace.id, trash_controller.clone(), conn)?.into_inner(); let apps = read_local_workspace_apps(&workspace.id, trash_controller.clone(), conn)?.into_inner();
@ -38,7 +38,7 @@ pub(crate) async fn read_workspaces_handler(
#[tracing::instrument(skip(core), err)] #[tracing::instrument(skip(core), err)]
pub async fn read_cur_workspace_handler( pub async fn read_cur_workspace_handler(
core: Unit<Arc<CoreContext>>, core: Unit<Arc<CoreContext>>,
) -> DataResult<CurrentWorkspaceSetting, WorkspaceError> { ) -> DataResult<CurrentWorkspaceSetting, FlowyError> {
let workspace_id = get_current_workspace()?; let workspace_id = get_current_workspace()?;
let user_id = core.user.user_id()?; let user_id = core.user.user_id()?;
let params = WorkspaceIdentifier { let params = WorkspaceIdentifier {

View File

@ -1,106 +0,0 @@
use bytes::Bytes;
use backend_service::errors::ErrorCode as ServerErrorCode;
pub use flowy_core_infra::errors::ErrorCode;
use flowy_derive::ProtoBuf;
use flowy_document::errors::DocError;
use lib_dispatch::prelude::{EventResponse, ResponseBuilder};
use std::{convert::TryInto, fmt, fmt::Debug};
pub type WorkspaceResult<T> = std::result::Result<T, WorkspaceError>;
#[derive(Debug, Default, Clone, ProtoBuf)]
pub struct WorkspaceError {
#[pb(index = 1)]
pub code: i32,
#[pb(index = 2)]
pub msg: String,
}
macro_rules! static_workspace_error {
($name:ident, $code:expr) => {
#[allow(non_snake_case, missing_docs)]
pub fn $name() -> WorkspaceError { $code.into() }
};
}
impl WorkspaceError {
pub fn new(code: ErrorCode, msg: &str) -> Self {
Self {
code: code.value(),
msg: msg.to_owned(),
}
}
static_workspace_error!(workspace_name, ErrorCode::WorkspaceNameInvalid);
static_workspace_error!(workspace_id, ErrorCode::WorkspaceIdInvalid);
static_workspace_error!(color_style, ErrorCode::AppColorStyleInvalid);
static_workspace_error!(workspace_desc, ErrorCode::WorkspaceDescTooLong);
static_workspace_error!(app_name, ErrorCode::AppNameInvalid);
static_workspace_error!(invalid_app_id, ErrorCode::AppIdInvalid);
static_workspace_error!(view_name, ErrorCode::ViewNameInvalid);
static_workspace_error!(view_thumbnail, ErrorCode::ViewThumbnailInvalid);
static_workspace_error!(invalid_view_id, ErrorCode::ViewIdInvalid);
static_workspace_error!(view_desc, ErrorCode::ViewDescTooLong);
static_workspace_error!(view_data, ErrorCode::ViewDataInvalid);
static_workspace_error!(unauthorized, ErrorCode::UserUnauthorized);
static_workspace_error!(internal, ErrorCode::InternalError);
static_workspace_error!(record_not_found, ErrorCode::RecordNotFound);
static_workspace_error!(ws, ErrorCode::WsConnectError);
pub fn context<T: Debug>(mut self, error: T) -> Self {
self.msg = format!("{:?}", error);
self
}
}
pub fn internal_error<T>(e: T) -> WorkspaceError
where
T: std::fmt::Debug,
{
WorkspaceError::internal().context(e)
}
impl std::convert::From<ErrorCode> for WorkspaceError {
fn from(code: ErrorCode) -> Self {
WorkspaceError {
code: code.value(),
msg: format!("{}", code),
}
}
}
impl std::convert::From<flowy_document::errors::DocError> for WorkspaceError {
fn from(error: DocError) -> Self { WorkspaceError::internal().context(error) }
}
impl std::convert::From<backend_service::errors::ServerError> for WorkspaceError {
fn from(error: backend_service::errors::ServerError) -> Self {
let code = server_error_to_workspace_error(error.code);
WorkspaceError::new(code, &error.msg)
}
}
impl std::convert::From<flowy_database::Error> for WorkspaceError {
fn from(error: flowy_database::Error) -> Self { WorkspaceError::internal().context(error) }
}
impl lib_dispatch::Error for WorkspaceError {
fn as_response(&self) -> EventResponse {
let bytes: Bytes = self.clone().try_into().unwrap();
ResponseBuilder::Err().data(bytes).build()
}
}
impl fmt::Display for WorkspaceError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{:?}: {}", &self.code, &self.msg) }
}
fn server_error_to_workspace_error(code: ServerErrorCode) -> ErrorCode {
match code {
ServerErrorCode::UserUnauthorized => ErrorCode::UserUnauthorized,
ServerErrorCode::RecordNotFound => ErrorCode::RecordNotFound,
_ => ErrorCode::InternalError,
}
}

View File

@ -2,7 +2,7 @@ use flowy_derive::{Flowy_Event, ProtoBuf_Enum};
use strum_macros::Display; use strum_macros::Display;
#[derive(Clone, Copy, PartialEq, Eq, Debug, Display, Hash, ProtoBuf_Enum, Flowy_Event)] #[derive(Clone, Copy, PartialEq, Eq, Debug, Display, Hash, ProtoBuf_Enum, Flowy_Event)]
#[event_err = "WorkspaceError"] #[event_err = "FlowyError"]
pub enum WorkspaceEvent { pub enum WorkspaceEvent {
#[event(input = "CreateWorkspaceRequest", output = "Workspace")] #[event(input = "CreateWorkspaceRequest", output = "Workspace")]
CreateWorkspace = 0, CreateWorkspace = 0,

View File

@ -11,7 +11,7 @@ mod macros;
extern crate flowy_database; extern crate flowy_database;
pub mod core; pub mod core;
pub mod errors;
mod notify; mod notify;
pub mod protobuf; pub mod protobuf;
mod util; mod util;
@ -21,3 +21,7 @@ pub mod prelude {
pub use crate::{core::*, errors::*, module::*}; pub use crate::{core::*, errors::*, module::*};
} }
pub mod errors {
pub use flowy_error::{internal_error, ErrorCode, FlowyError, FlowyResult};
}

View File

@ -1,7 +1,7 @@
// #[macro_export] // #[macro_export]
// macro_rules! impl_save_func { // macro_rules! impl_save_func {
// ($func_name:ident, $target:ident, $table_name:expr, $conn:ident) => { // ($func_name:ident, $target:ident, $table_name:expr, $conn:ident) => {
// fn $func_name(object: $target) -> Result<(), WorkspaceError> { // fn $func_name(object: $target) -> Result<(), FlowyError> {
// let _ = diesel::insert_into($table_name) // let _ = diesel::insert_into($table_name)
// .values($target) // .values($target)
// .execute(&*($conn))?; // .execute(&*($conn))?;

View File

@ -8,7 +8,7 @@ use lib_sqlite::ConnectionPool;
use crate::{ use crate::{
core::{event_handler::*, CoreContext}, core::{event_handler::*, CoreContext},
errors::WorkspaceError, errors::FlowyError,
event::WorkspaceEvent, event::WorkspaceEvent,
services::{ services::{
app::event_handler::*, app::event_handler::*,
@ -26,16 +26,16 @@ use crate::{
pub trait WorkspaceDeps: WorkspaceUser + WorkspaceDatabase {} pub trait WorkspaceDeps: WorkspaceUser + WorkspaceDatabase {}
pub trait WorkspaceUser: Send + Sync { pub trait WorkspaceUser: Send + Sync {
fn user_id(&self) -> Result<String, WorkspaceError>; fn user_id(&self) -> Result<String, FlowyError>;
fn token(&self) -> Result<String, WorkspaceError>; fn token(&self) -> Result<String, FlowyError>;
} }
pub trait WorkspaceDatabase: Send + Sync { pub trait WorkspaceDatabase: Send + Sync {
fn db_pool(&self) -> Result<Arc<ConnectionPool>, WorkspaceError>; fn db_pool(&self) -> Result<Arc<ConnectionPool>, FlowyError>;
fn db_connection(&self) -> Result<DBConnection, WorkspaceError> { fn db_connection(&self) -> Result<DBConnection, FlowyError> {
let pool = self.db_pool()?; let pool = self.db_pool()?;
let conn = pool.get().map_err(|e| WorkspaceError::internal().context(e))?; let conn = pool.get().map_err(|e| FlowyError::internal().context(e))?;
Ok(conn) Ok(conn)
} }
} }

View File

@ -1,243 +0,0 @@
// This file is generated by rust-protobuf 2.22.1. Do not edit
// @generated
// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `errors.proto`
/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_22_1;
#[derive(PartialEq,Clone,Default)]
pub struct WorkspaceError {
// message fields
pub code: i32,
pub msg: ::std::string::String,
// special fields
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a WorkspaceError {
fn default() -> &'a WorkspaceError {
<WorkspaceError as ::protobuf::Message>::default_instance()
}
}
impl WorkspaceError {
pub fn new() -> WorkspaceError {
::std::default::Default::default()
}
// int32 code = 1;
pub fn get_code(&self) -> i32 {
self.code
}
pub fn clear_code(&mut self) {
self.code = 0;
}
// Param is passed by value, moved
pub fn set_code(&mut self, v: i32) {
self.code = v;
}
// string msg = 2;
pub fn get_msg(&self) -> &str {
&self.msg
}
pub fn clear_msg(&mut self) {
self.msg.clear();
}
// Param is passed by value, moved
pub fn set_msg(&mut self, v: ::std::string::String) {
self.msg = v;
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_msg(&mut self) -> &mut ::std::string::String {
&mut self.msg
}
// Take field
pub fn take_msg(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.msg, ::std::string::String::new())
}
}
impl ::protobuf::Message for WorkspaceError {
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.code = tmp;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.msg)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
// Compute sizes of nested messages
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.code != 0 {
my_size += ::protobuf::rt::value_size(1, self.code, ::protobuf::wire_format::WireTypeVarint);
}
if !self.msg.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.msg);
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if self.code != 0 {
os.write_int32(1, self.code)?;
}
if !self.msg.is_empty() {
os.write_string(2, &self.msg)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> WorkspaceError {
WorkspaceError::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"code",
|m: &WorkspaceError| { &m.code },
|m: &mut WorkspaceError| { &mut m.code },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"msg",
|m: &WorkspaceError| { &m.msg },
|m: &mut WorkspaceError| { &mut m.msg },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<WorkspaceError>(
"WorkspaceError",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static WorkspaceError {
static instance: ::protobuf::rt::LazyV2<WorkspaceError> = ::protobuf::rt::LazyV2::INIT;
instance.get(WorkspaceError::new)
}
}
impl ::protobuf::Clear for WorkspaceError {
fn clear(&mut self) {
self.code = 0;
self.msg.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for WorkspaceError {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for WorkspaceError {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\x0cerrors.proto\"6\n\x0eWorkspaceError\x12\x12\n\x04code\x18\x01\x20\
\x01(\x05R\x04code\x12\x10\n\x03msg\x18\x02\x20\x01(\tR\x03msgJ\x98\x01\
\n\x06\x12\x04\0\0\x05\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\x08\x16\n\x0b\n\
\x04\x04\0\x02\0\x12\x03\x03\x04\x13\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\
\x03\x04\t\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\n\x0e\n\x0c\n\x05\x04\
\0\x02\0\x03\x12\x03\x03\x11\x12\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\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\x12b\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}

View File

@ -4,8 +4,5 @@
mod observable; mod observable;
pub use observable::*; pub use observable::*;
mod errors;
pub use errors::*;
mod event; mod event;
pub use event::*; pub use event::*;

View File

@ -1,6 +0,0 @@
syntax = "proto3";
message WorkspaceError {
int32 code = 1;
string msg = 2;
}

View File

@ -39,20 +39,20 @@ impl AppController {
} }
} }
pub fn init(&self) -> Result<(), WorkspaceError> { pub fn init(&self) -> Result<(), FlowyError> {
self.listen_trash_can_event(); self.listen_trash_can_event();
Ok(()) Ok(())
} }
#[tracing::instrument(level = "debug", skip(self, params), fields(name = %params.name) err)] #[tracing::instrument(level = "debug", skip(self, params), fields(name = %params.name) err)]
pub(crate) async fn create_app_from_params(&self, params: CreateAppParams) -> Result<App, WorkspaceError> { pub(crate) async fn create_app_from_params(&self, params: CreateAppParams) -> Result<App, FlowyError> {
let app = self.create_app_on_server(params).await?; let app = self.create_app_on_server(params).await?;
self.create_app(app).await self.create_app(app).await
} }
pub(crate) async fn create_app(&self, app: App) -> Result<App, WorkspaceError> { pub(crate) async fn create_app(&self, app: App) -> Result<App, FlowyError> {
let conn = &*self.database.db_connection()?; let conn = &*self.database.db_connection()?;
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = self.save_app(app.clone(), &*conn)?; let _ = self.save_app(app.clone(), &*conn)?;
let _ = notify_apps_changed(&app.workspace_id, self.trash_can.clone(), conn)?; let _ = notify_apps_changed(&app.workspace_id, self.trash_can.clone(), conn)?;
Ok(()) Ok(())
@ -61,30 +61,30 @@ impl AppController {
Ok(app) Ok(app)
} }
pub(crate) fn save_app(&self, app: App, conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn save_app(&self, app: App, conn: &SqliteConnection) -> Result<(), FlowyError> {
let app_table = AppTable::new(app); let app_table = AppTable::new(app);
let _ = AppTableSql::create_app(app_table, &*conn)?; let _ = AppTableSql::create_app(app_table, &*conn)?;
Ok(()) Ok(())
} }
pub(crate) async fn read_app(&self, params: AppIdentifier) -> Result<App, WorkspaceError> { pub(crate) async fn read_app(&self, params: AppIdentifier) -> Result<App, FlowyError> {
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
let app_table = AppTableSql::read_app(&params.app_id, &*conn)?; let app_table = AppTableSql::read_app(&params.app_id, &*conn)?;
let trash_ids = self.trash_can.trash_ids(&conn)?; let trash_ids = self.trash_can.trash_ids(&conn)?;
if trash_ids.contains(&app_table.id) { if trash_ids.contains(&app_table.id) {
return Err(WorkspaceError::record_not_found()); return Err(FlowyError::record_not_found());
} }
let _ = self.read_app_on_server(params)?; let _ = self.read_app_on_server(params)?;
Ok(app_table.into()) Ok(app_table.into())
} }
pub(crate) async fn update_app(&self, params: UpdateAppParams) -> Result<(), WorkspaceError> { pub(crate) async fn update_app(&self, params: UpdateAppParams) -> Result<(), FlowyError> {
let changeset = AppTableChangeset::new(params.clone()); let changeset = AppTableChangeset::new(params.clone());
let app_id = changeset.id.clone(); let app_id = changeset.id.clone();
let conn = &*self.database.db_connection()?; let conn = &*self.database.db_connection()?;
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = AppTableSql::update_app(changeset, conn)?; let _ = AppTableSql::update_app(changeset, conn)?;
let app: App = AppTableSql::read_app(&app_id, conn)?.into(); let app: App = AppTableSql::read_app(&app_id, conn)?.into();
send_dart_notification(&app_id, WorkspaceNotification::AppUpdated) send_dart_notification(&app_id, WorkspaceNotification::AppUpdated)
@ -97,10 +97,10 @@ impl AppController {
Ok(()) Ok(())
} }
pub(crate) fn read_app_tables(&self, ids: Vec<String>) -> Result<Vec<AppTable>, WorkspaceError> { pub(crate) fn read_app_tables(&self, ids: Vec<String>) -> Result<Vec<AppTable>, FlowyError> {
let conn = &*self.database.db_connection()?; let conn = &*self.database.db_connection()?;
let mut app_tables = vec![]; let mut app_tables = vec![];
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
for app_id in ids { for app_id in ids {
app_tables.push(AppTableSql::read_app(&app_id, conn)?); app_tables.push(AppTableSql::read_app(&app_id, conn)?);
} }
@ -113,14 +113,14 @@ impl AppController {
impl AppController { impl AppController {
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
async fn create_app_on_server(&self, params: CreateAppParams) -> Result<App, WorkspaceError> { async fn create_app_on_server(&self, params: CreateAppParams) -> Result<App, FlowyError> {
let token = self.user.token()?; let token = self.user.token()?;
let app = self.server.create_app(&token, params).await?; let app = self.server.create_app(&token, params).await?;
Ok(app) Ok(app)
} }
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
fn update_app_on_server(&self, params: UpdateAppParams) -> Result<(), WorkspaceError> { fn update_app_on_server(&self, params: UpdateAppParams) -> Result<(), FlowyError> {
let token = self.user.token()?; let token = self.user.token()?;
let server = self.server.clone(); let server = self.server.clone();
tokio::spawn(async move { tokio::spawn(async move {
@ -136,7 +136,7 @@ impl AppController {
} }
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
fn read_app_on_server(&self, params: AppIdentifier) -> Result<(), WorkspaceError> { fn read_app_on_server(&self, params: AppIdentifier) -> Result<(), FlowyError> {
let token = self.user.token()?; let token = self.user.token()?;
let server = self.server.clone(); let server = self.server.clone();
let pool = self.database.db_pool()?; let pool = self.database.db_pool()?;
@ -192,21 +192,21 @@ async fn handle_trash_event(database: Arc<dyn WorkspaceDatabase>, trash_can: Arc
TrashEvent::NewTrash(identifiers, ret) | TrashEvent::Putback(identifiers, ret) => { TrashEvent::NewTrash(identifiers, ret) | TrashEvent::Putback(identifiers, ret) => {
let result = || { let result = || {
let conn = &*db_result?; let conn = &*db_result?;
let _ = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let _ = conn.immediate_transaction::<_, FlowyError, _>(|| {
for identifier in identifiers.items { for identifier in identifiers.items {
let app_table = AppTableSql::read_app(&identifier.id, conn)?; let app_table = AppTableSql::read_app(&identifier.id, conn)?;
let _ = notify_apps_changed(&app_table.workspace_id, trash_can.clone(), conn)?; let _ = notify_apps_changed(&app_table.workspace_id, trash_can.clone(), conn)?;
} }
Ok(()) Ok(())
})?; })?;
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}; };
let _ = ret.send(result()).await; let _ = ret.send(result()).await;
}, },
TrashEvent::Delete(identifiers, ret) => { TrashEvent::Delete(identifiers, ret) => {
let result = || { let result = || {
let conn = &*db_result?; let conn = &*db_result?;
let _ = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let _ = conn.immediate_transaction::<_, FlowyError, _>(|| {
let mut notify_ids = HashSet::new(); let mut notify_ids = HashSet::new();
for identifier in identifiers.items { for identifier in identifiers.items {
let app_table = AppTableSql::read_app(&identifier.id, conn)?; let app_table = AppTableSql::read_app(&identifier.id, conn)?;
@ -219,7 +219,7 @@ async fn handle_trash_event(database: Arc<dyn WorkspaceDatabase>, trash_can: Arc
} }
Ok(()) Ok(())
})?; })?;
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}; };
let _ = ret.send(result()).await; let _ = ret.send(result()).await;
}, },
@ -231,7 +231,7 @@ fn notify_apps_changed(
workspace_id: &str, workspace_id: &str,
trash_can: Arc<TrashController>, trash_can: Arc<TrashController>,
conn: &SqliteConnection, conn: &SqliteConnection,
) -> WorkspaceResult<()> { ) -> FlowyResult<()> {
let repeated_app = read_local_workspace_apps(workspace_id, trash_can, conn)?; let repeated_app = read_local_workspace_apps(workspace_id, trash_can, conn)?;
send_dart_notification(workspace_id, WorkspaceNotification::WorkspaceAppsChanged) send_dart_notification(workspace_id, WorkspaceNotification::WorkspaceAppsChanged)
.payload(repeated_app) .payload(repeated_app)
@ -243,7 +243,7 @@ pub fn read_local_workspace_apps(
workspace_id: &str, workspace_id: &str,
trash_controller: Arc<TrashController>, trash_controller: Arc<TrashController>,
conn: &SqliteConnection, conn: &SqliteConnection,
) -> Result<RepeatedApp, WorkspaceError> { ) -> Result<RepeatedApp, FlowyError> {
let mut app_tables = AppTableSql::read_workspace_apps(workspace_id, false, conn)?; let mut app_tables = AppTableSql::read_workspace_apps(workspace_id, false, conn)?;
let trash_ids = trash_controller.trash_ids(conn)?; let trash_ids = trash_controller.trash_ids(conn)?;
app_tables.retain(|app_table| !trash_ids.contains(&app_table.id)); app_tables.retain(|app_table| !trash_ids.contains(&app_table.id));
@ -254,8 +254,8 @@ pub fn read_local_workspace_apps(
// #[tracing::instrument(level = "debug", skip(self), err)] // #[tracing::instrument(level = "debug", skip(self), err)]
// pub(crate) async fn delete_app(&self, app_id: &str) -> Result<(), // pub(crate) async fn delete_app(&self, app_id: &str) -> Result<(),
// WorkspaceError> { let conn = &*self.database.db_connection()?; // FlowyError> { let conn = &*self.database.db_connection()?;
// conn.immediate_transaction::<_, WorkspaceError, _>(|| { // conn.immediate_transaction::<_, FlowyError, _>(|| {
// let app = AppTableSql::delete_app(app_id, &*conn)?; // let app = AppTableSql::delete_app(app_id, &*conn)?;
// let apps = self.read_local_apps(&app.workspace_id, &*conn)?; // let apps = self.read_local_apps(&app.workspace_id, &*conn)?;
// send_dart_notification(&app.workspace_id, // send_dart_notification(&app.workspace_id,
@ -269,7 +269,7 @@ pub fn read_local_workspace_apps(
// } // }
// //
// #[tracing::instrument(level = "debug", skip(self), err)] // #[tracing::instrument(level = "debug", skip(self), err)]
// fn delete_app_on_server(&self, app_id: &str) -> Result<(), WorkspaceError> { // fn delete_app_on_server(&self, app_id: &str) -> Result<(), FlowyError> {
// let token = self.user.token()?; // let token = self.user.token()?;
// let server = self.server.clone(); // let server = self.server.clone();
// let params = DeleteAppParams { // let params = DeleteAppParams {
@ -291,7 +291,7 @@ pub fn read_local_workspace_apps(
// // Ok(_) => {}, // // Ok(_) => {},
// // Err(e) => log::error!("Delete app failed: {:?}", e), // // Err(e) => log::error!("Delete app failed: {:?}", e),
// // } // // }
// // Ok::<(), WorkspaceError>(()) // // Ok::<(), FlowyError>(())
// // } // // }
// // }); // // });
// // // //

View File

@ -11,7 +11,7 @@ use crate::{
}, },
trash::Trash, trash::Trash,
}, },
errors::WorkspaceError, errors::FlowyError,
services::{AppController, TrashController, ViewController}, services::{AppController, TrashController, ViewController},
}; };
use lib_dispatch::prelude::{data_result, Data, DataResult, Unit}; use lib_dispatch::prelude::{data_result, Data, DataResult, Unit};
@ -20,7 +20,7 @@ use std::{convert::TryInto, sync::Arc};
pub(crate) async fn create_app_handler( pub(crate) async fn create_app_handler(
data: Data<CreateAppRequest>, data: Data<CreateAppRequest>,
controller: Unit<Arc<AppController>>, controller: Unit<Arc<AppController>>,
) -> DataResult<App, WorkspaceError> { ) -> DataResult<App, FlowyError> {
let params: CreateAppParams = data.into_inner().try_into()?; let params: CreateAppParams = data.into_inner().try_into()?;
let detail = controller.create_app_from_params(params).await?; let detail = controller.create_app_from_params(params).await?;
@ -31,7 +31,7 @@ pub(crate) async fn delete_app_handler(
data: Data<QueryAppRequest>, data: Data<QueryAppRequest>,
controller: Unit<Arc<AppController>>, controller: Unit<Arc<AppController>>,
trash_can: Unit<Arc<TrashController>>, trash_can: Unit<Arc<TrashController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let params: AppIdentifier = data.into_inner().try_into()?; let params: AppIdentifier = data.into_inner().try_into()?;
let trash = controller let trash = controller
.read_app_tables(vec![params.app_id])? .read_app_tables(vec![params.app_id])?
@ -47,7 +47,7 @@ pub(crate) async fn delete_app_handler(
pub(crate) async fn update_app_handler( pub(crate) async fn update_app_handler(
data: Data<UpdateAppRequest>, data: Data<UpdateAppRequest>,
controller: Unit<Arc<AppController>>, controller: Unit<Arc<AppController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let params: UpdateAppParams = data.into_inner().try_into()?; let params: UpdateAppParams = data.into_inner().try_into()?;
let _ = controller.update_app(params).await?; let _ = controller.update_app(params).await?;
Ok(()) Ok(())
@ -58,7 +58,7 @@ pub(crate) async fn read_app_handler(
data: Data<QueryAppRequest>, data: Data<QueryAppRequest>,
app_controller: Unit<Arc<AppController>>, app_controller: Unit<Arc<AppController>>,
view_controller: Unit<Arc<ViewController>>, view_controller: Unit<Arc<ViewController>>,
) -> DataResult<App, WorkspaceError> { ) -> DataResult<App, FlowyError> {
let params: AppIdentifier = data.into_inner().try_into()?; let params: AppIdentifier = data.into_inner().try_into()?;
let mut app = app_controller.read_app(params.clone()).await?; let mut app = app_controller.read_app(params.clone()).await?;
app.belongings = view_controller.read_views_belong_to(&params.app_id).await?; app.belongings = view_controller.read_views_belong_to(&params.app_id).await?;

View File

@ -15,12 +15,12 @@ use flowy_database::{
use serde::{Deserialize, Serialize, __private::TryFrom}; use serde::{Deserialize, Serialize, __private::TryFrom};
use std::convert::TryInto; use std::convert::TryInto;
use crate::errors::WorkspaceError; use crate::errors::FlowyError;
pub struct AppTableSql {} pub struct AppTableSql {}
impl AppTableSql { impl AppTableSql {
pub(crate) fn create_app(app_table: AppTable, conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn create_app(app_table: AppTable, conn: &SqliteConnection) -> Result<(), FlowyError> {
match diesel_record_count!(app_table, &app_table.id, conn) { match diesel_record_count!(app_table, &app_table.id, conn) {
0 => diesel_insert_table!(app_table, &app_table, conn), 0 => diesel_insert_table!(app_table, &app_table, conn),
_ => { _ => {
@ -31,12 +31,12 @@ impl AppTableSql {
Ok(()) Ok(())
} }
pub(crate) fn update_app(changeset: AppTableChangeset, conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn update_app(changeset: AppTableChangeset, conn: &SqliteConnection) -> Result<(), FlowyError> {
diesel_update_table!(app_table, changeset, conn); diesel_update_table!(app_table, changeset, conn);
Ok(()) Ok(())
} }
pub(crate) fn read_app(app_id: &str, conn: &SqliteConnection) -> Result<AppTable, WorkspaceError> { pub(crate) fn read_app(app_id: &str, conn: &SqliteConnection) -> Result<AppTable, FlowyError> {
let filter = dsl::app_table.filter(app_table::id.eq(app_id)).into_boxed(); let filter = dsl::app_table.filter(app_table::id.eq(app_id)).into_boxed();
let app_table = filter.first::<AppTable>(conn)?; let app_table = filter.first::<AppTable>(conn)?;
Ok(app_table) Ok(app_table)
@ -46,7 +46,7 @@ impl AppTableSql {
workspace_id: &str, workspace_id: &str,
is_trash: bool, is_trash: bool,
conn: &SqliteConnection, conn: &SqliteConnection,
) -> Result<Vec<AppTable>, WorkspaceError> { ) -> Result<Vec<AppTable>, FlowyError> {
let app_table = dsl::app_table let app_table = dsl::app_table
.filter(app_table::workspace_id.eq(workspace_id)) .filter(app_table::workspace_id.eq(workspace_id))
.filter(app_table::is_trash.eq(is_trash)) .filter(app_table::is_trash.eq(is_trash))
@ -56,7 +56,7 @@ impl AppTableSql {
Ok(app_table) Ok(app_table)
} }
pub(crate) fn delete_app(app_id: &str, conn: &SqliteConnection) -> Result<AppTable, WorkspaceError> { pub(crate) fn delete_app(app_id: &str, conn: &SqliteConnection) -> Result<AppTable, FlowyError> {
let app_table = dsl::app_table let app_table = dsl::app_table
.filter(app_table::id.eq(app_id)) .filter(app_table::id.eq(app_id))
.first::<AppTable>(conn)?; .first::<AppTable>(conn)?;
@ -67,10 +67,10 @@ impl AppTableSql {
// pub(crate) fn read_views_belong_to_app( // pub(crate) fn read_views_belong_to_app(
// &self, // &self,
// app_id: &str, // app_id: &str,
// ) -> Result<Vec<ViewTable>, WorkspaceError> { // ) -> Result<Vec<ViewTable>, FlowyError> {
// let conn = self.database.db_connection()?; // let conn = self.database.db_connection()?;
// //
// let views = conn.immediate_transaction::<_, WorkspaceError, _>(|| { // let views = conn.immediate_transaction::<_, FlowyError, _>(|| {
// let app_table: AppTable = dsl::app_table // let app_table: AppTable = dsl::app_table
// .filter(app_table::id.eq(app_id)) // .filter(app_table::id.eq(app_id))
// .first::<AppTable>(&*(conn))?; // .first::<AppTable>(&*(conn))?;

View File

@ -12,7 +12,7 @@ use crate::{
view::{CreateViewParams, UpdateViewParams, View, ViewIdentifier, ViewIdentifiers}, view::{CreateViewParams, UpdateViewParams, View, ViewIdentifier, ViewIdentifiers},
workspace::{CreateWorkspaceParams, RepeatedWorkspace, UpdateWorkspaceParams, Workspace, WorkspaceIdentifier}, workspace::{CreateWorkspaceParams, RepeatedWorkspace, UpdateWorkspaceParams, Workspace, WorkspaceIdentifier},
}, },
errors::WorkspaceError, errors::FlowyError,
}; };
use backend_service::configuration::ClientServerConfiguration; use backend_service::configuration::ClientServerConfiguration;
use lib_infra::future::FutureResult; use lib_infra::future::FutureResult;
@ -24,42 +24,38 @@ pub trait WorkspaceServerAPI {
fn init(&self); fn init(&self);
// Workspace // Workspace
fn create_workspace(&self, token: &str, params: CreateWorkspaceParams) -> FutureResult<Workspace, WorkspaceError>; fn create_workspace(&self, token: &str, params: CreateWorkspaceParams) -> FutureResult<Workspace, FlowyError>;
fn read_workspace( fn read_workspace(&self, token: &str, params: WorkspaceIdentifier) -> FutureResult<RepeatedWorkspace, FlowyError>;
&self,
token: &str,
params: WorkspaceIdentifier,
) -> FutureResult<RepeatedWorkspace, WorkspaceError>;
fn update_workspace(&self, token: &str, params: UpdateWorkspaceParams) -> FutureResult<(), WorkspaceError>; fn update_workspace(&self, token: &str, params: UpdateWorkspaceParams) -> FutureResult<(), FlowyError>;
fn delete_workspace(&self, token: &str, params: WorkspaceIdentifier) -> FutureResult<(), WorkspaceError>; fn delete_workspace(&self, token: &str, params: WorkspaceIdentifier) -> FutureResult<(), FlowyError>;
// View // View
fn create_view(&self, token: &str, params: CreateViewParams) -> FutureResult<View, WorkspaceError>; fn create_view(&self, token: &str, params: CreateViewParams) -> FutureResult<View, FlowyError>;
fn read_view(&self, token: &str, params: ViewIdentifier) -> FutureResult<Option<View>, WorkspaceError>; fn read_view(&self, token: &str, params: ViewIdentifier) -> FutureResult<Option<View>, FlowyError>;
fn delete_view(&self, token: &str, params: ViewIdentifiers) -> FutureResult<(), WorkspaceError>; fn delete_view(&self, token: &str, params: ViewIdentifiers) -> FutureResult<(), FlowyError>;
fn update_view(&self, token: &str, params: UpdateViewParams) -> FutureResult<(), WorkspaceError>; fn update_view(&self, token: &str, params: UpdateViewParams) -> FutureResult<(), FlowyError>;
// App // App
fn create_app(&self, token: &str, params: CreateAppParams) -> FutureResult<App, WorkspaceError>; fn create_app(&self, token: &str, params: CreateAppParams) -> FutureResult<App, FlowyError>;
fn read_app(&self, token: &str, params: AppIdentifier) -> FutureResult<Option<App>, WorkspaceError>; fn read_app(&self, token: &str, params: AppIdentifier) -> FutureResult<Option<App>, FlowyError>;
fn update_app(&self, token: &str, params: UpdateAppParams) -> FutureResult<(), WorkspaceError>; fn update_app(&self, token: &str, params: UpdateAppParams) -> FutureResult<(), FlowyError>;
fn delete_app(&self, token: &str, params: AppIdentifier) -> FutureResult<(), WorkspaceError>; fn delete_app(&self, token: &str, params: AppIdentifier) -> FutureResult<(), FlowyError>;
// Trash // Trash
fn create_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), WorkspaceError>; fn create_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), FlowyError>;
fn delete_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), WorkspaceError>; fn delete_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), FlowyError>;
fn read_trash(&self, token: &str) -> FutureResult<RepeatedTrash, WorkspaceError>; fn read_trash(&self, token: &str) -> FutureResult<RepeatedTrash, FlowyError>;
} }
pub(crate) fn construct_workspace_server( pub(crate) fn construct_workspace_server(

View File

@ -5,12 +5,11 @@ use crate::{
view::{CreateViewParams, UpdateViewParams, View, ViewIdentifier, ViewIdentifiers}, view::{CreateViewParams, UpdateViewParams, View, ViewIdentifier, ViewIdentifiers},
workspace::{CreateWorkspaceParams, RepeatedWorkspace, UpdateWorkspaceParams, Workspace, WorkspaceIdentifier}, workspace::{CreateWorkspaceParams, RepeatedWorkspace, UpdateWorkspaceParams, Workspace, WorkspaceIdentifier},
}, },
errors::WorkspaceError, errors::{ErrorCode, FlowyError},
notify::{send_dart_notification, WorkspaceNotification}, notify::{send_dart_notification, WorkspaceNotification},
services::server::WorkspaceServerAPI, services::server::WorkspaceServerAPI,
}; };
use backend_service::{configuration::ClientServerConfiguration, middleware::*, workspace_request::*}; use backend_service::{configuration::ClientServerConfiguration, middleware::*, workspace_request::*};
use flowy_core_infra::errors::ErrorCode;
use lib_infra::future::FutureResult; use lib_infra::future::FutureResult;
pub struct WorkspaceHttpServer { pub struct WorkspaceHttpServer {
@ -26,7 +25,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
let mut rx = BACKEND_API_MIDDLEWARE.invalid_token_subscribe(); let mut rx = BACKEND_API_MIDDLEWARE.invalid_token_subscribe();
tokio::spawn(async move { tokio::spawn(async move {
while let Ok(invalid_token) = rx.recv().await { while let Ok(invalid_token) = rx.recv().await {
let error = WorkspaceError::new(ErrorCode::UserUnauthorized, ""); let error = FlowyError::new(ErrorCode::UserUnauthorized, "");
send_dart_notification(&invalid_token, WorkspaceNotification::UserUnauthorized) send_dart_notification(&invalid_token, WorkspaceNotification::UserUnauthorized)
.error(error) .error(error)
.send() .send()
@ -34,7 +33,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}); });
} }
fn create_workspace(&self, token: &str, params: CreateWorkspaceParams) -> FutureResult<Workspace, WorkspaceError> { fn create_workspace(&self, token: &str, params: CreateWorkspaceParams) -> FutureResult<Workspace, FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.workspace_url(); let url = self.config.workspace_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -43,11 +42,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn read_workspace( fn read_workspace(&self, token: &str, params: WorkspaceIdentifier) -> FutureResult<RepeatedWorkspace, FlowyError> {
&self,
token: &str,
params: WorkspaceIdentifier,
) -> FutureResult<RepeatedWorkspace, WorkspaceError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.workspace_url(); let url = self.config.workspace_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -56,7 +51,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn update_workspace(&self, token: &str, params: UpdateWorkspaceParams) -> FutureResult<(), WorkspaceError> { fn update_workspace(&self, token: &str, params: UpdateWorkspaceParams) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.workspace_url(); let url = self.config.workspace_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -65,7 +60,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn delete_workspace(&self, token: &str, params: WorkspaceIdentifier) -> FutureResult<(), WorkspaceError> { fn delete_workspace(&self, token: &str, params: WorkspaceIdentifier) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.workspace_url(); let url = self.config.workspace_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -74,7 +69,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn create_view(&self, token: &str, params: CreateViewParams) -> FutureResult<View, WorkspaceError> { fn create_view(&self, token: &str, params: CreateViewParams) -> FutureResult<View, FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.view_url(); let url = self.config.view_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -83,7 +78,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn read_view(&self, token: &str, params: ViewIdentifier) -> FutureResult<Option<View>, WorkspaceError> { fn read_view(&self, token: &str, params: ViewIdentifier) -> FutureResult<Option<View>, FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.view_url(); let url = self.config.view_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -92,7 +87,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn delete_view(&self, token: &str, params: ViewIdentifiers) -> FutureResult<(), WorkspaceError> { fn delete_view(&self, token: &str, params: ViewIdentifiers) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.view_url(); let url = self.config.view_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -101,7 +96,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn update_view(&self, token: &str, params: UpdateViewParams) -> FutureResult<(), WorkspaceError> { fn update_view(&self, token: &str, params: UpdateViewParams) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.view_url(); let url = self.config.view_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -110,7 +105,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn create_app(&self, token: &str, params: CreateAppParams) -> FutureResult<App, WorkspaceError> { fn create_app(&self, token: &str, params: CreateAppParams) -> FutureResult<App, FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.app_url(); let url = self.config.app_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -119,7 +114,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn read_app(&self, token: &str, params: AppIdentifier) -> FutureResult<Option<App>, WorkspaceError> { fn read_app(&self, token: &str, params: AppIdentifier) -> FutureResult<Option<App>, FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.app_url(); let url = self.config.app_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -128,7 +123,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn update_app(&self, token: &str, params: UpdateAppParams) -> FutureResult<(), WorkspaceError> { fn update_app(&self, token: &str, params: UpdateAppParams) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.app_url(); let url = self.config.app_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -137,7 +132,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn delete_app(&self, token: &str, params: AppIdentifier) -> FutureResult<(), WorkspaceError> { fn delete_app(&self, token: &str, params: AppIdentifier) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.app_url(); let url = self.config.app_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -146,7 +141,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn create_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), WorkspaceError> { fn create_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.trash_url(); let url = self.config.trash_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -155,7 +150,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn delete_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), WorkspaceError> { fn delete_trash(&self, token: &str, params: TrashIdentifiers) -> FutureResult<(), FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.trash_url(); let url = self.config.trash_url();
FutureResult::new(async move { FutureResult::new(async move {
@ -164,7 +159,7 @@ impl WorkspaceServerAPI for WorkspaceHttpServer {
}) })
} }
fn read_trash(&self, token: &str) -> FutureResult<RepeatedTrash, WorkspaceError> { fn read_trash(&self, token: &str) -> FutureResult<RepeatedTrash, FlowyError> {
let token = token.to_owned(); let token = token.to_owned();
let url = self.config.trash_url(); let url = self.config.trash_url();
FutureResult::new(async move { FutureResult::new(async move {

View File

@ -5,7 +5,7 @@ use crate::{
view::{CreateViewParams, RepeatedView, UpdateViewParams, View, ViewIdentifier, ViewIdentifiers}, view::{CreateViewParams, RepeatedView, UpdateViewParams, View, ViewIdentifier, ViewIdentifiers},
workspace::{CreateWorkspaceParams, RepeatedWorkspace, UpdateWorkspaceParams, Workspace, WorkspaceIdentifier}, workspace::{CreateWorkspaceParams, RepeatedWorkspace, UpdateWorkspaceParams, Workspace, WorkspaceIdentifier},
}, },
errors::WorkspaceError, errors::FlowyError,
services::server::WorkspaceServerAPI, services::server::WorkspaceServerAPI,
}; };
use lib_infra::{future::FutureResult, timestamp, uuid}; use lib_infra::{future::FutureResult, timestamp, uuid};
@ -15,7 +15,7 @@ pub struct WorkspaceServerMock {}
impl WorkspaceServerAPI for WorkspaceServerMock { impl WorkspaceServerAPI for WorkspaceServerMock {
fn init(&self) {} fn init(&self) {}
fn create_workspace(&self, _token: &str, params: CreateWorkspaceParams) -> FutureResult<Workspace, WorkspaceError> { fn create_workspace(&self, _token: &str, params: CreateWorkspaceParams) -> FutureResult<Workspace, FlowyError> {
let time = timestamp(); let time = timestamp();
let workspace = Workspace { let workspace = Workspace {
id: uuid(), id: uuid(),
@ -33,22 +33,22 @@ impl WorkspaceServerAPI for WorkspaceServerMock {
&self, &self,
_token: &str, _token: &str,
_params: WorkspaceIdentifier, _params: WorkspaceIdentifier,
) -> FutureResult<RepeatedWorkspace, WorkspaceError> { ) -> FutureResult<RepeatedWorkspace, FlowyError> {
FutureResult::new(async { FutureResult::new(async {
let repeated_workspace = RepeatedWorkspace { items: vec![] }; let repeated_workspace = RepeatedWorkspace { items: vec![] };
Ok(repeated_workspace) Ok(repeated_workspace)
}) })
} }
fn update_workspace(&self, _token: &str, _params: UpdateWorkspaceParams) -> FutureResult<(), WorkspaceError> { fn update_workspace(&self, _token: &str, _params: UpdateWorkspaceParams) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn delete_workspace(&self, _token: &str, _params: WorkspaceIdentifier) -> FutureResult<(), WorkspaceError> { fn delete_workspace(&self, _token: &str, _params: WorkspaceIdentifier) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn create_view(&self, _token: &str, params: CreateViewParams) -> FutureResult<View, WorkspaceError> { fn create_view(&self, _token: &str, params: CreateViewParams) -> FutureResult<View, FlowyError> {
let time = timestamp(); let time = timestamp();
let view = View { let view = View {
id: uuid(), id: uuid(),
@ -64,19 +64,19 @@ impl WorkspaceServerAPI for WorkspaceServerMock {
FutureResult::new(async { Ok(view) }) FutureResult::new(async { Ok(view) })
} }
fn read_view(&self, _token: &str, _params: ViewIdentifier) -> FutureResult<Option<View>, WorkspaceError> { fn read_view(&self, _token: &str, _params: ViewIdentifier) -> FutureResult<Option<View>, FlowyError> {
FutureResult::new(async { Ok(None) }) FutureResult::new(async { Ok(None) })
} }
fn delete_view(&self, _token: &str, _params: ViewIdentifiers) -> FutureResult<(), WorkspaceError> { fn delete_view(&self, _token: &str, _params: ViewIdentifiers) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn update_view(&self, _token: &str, _params: UpdateViewParams) -> FutureResult<(), WorkspaceError> { fn update_view(&self, _token: &str, _params: UpdateViewParams) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn create_app(&self, _token: &str, params: CreateAppParams) -> FutureResult<App, WorkspaceError> { fn create_app(&self, _token: &str, params: CreateAppParams) -> FutureResult<App, FlowyError> {
let time = timestamp(); let time = timestamp();
let app = App { let app = App {
id: uuid(), id: uuid(),
@ -91,27 +91,27 @@ impl WorkspaceServerAPI for WorkspaceServerMock {
FutureResult::new(async { Ok(app) }) FutureResult::new(async { Ok(app) })
} }
fn read_app(&self, _token: &str, _params: AppIdentifier) -> FutureResult<Option<App>, WorkspaceError> { fn read_app(&self, _token: &str, _params: AppIdentifier) -> FutureResult<Option<App>, FlowyError> {
FutureResult::new(async { Ok(None) }) FutureResult::new(async { Ok(None) })
} }
fn update_app(&self, _token: &str, _params: UpdateAppParams) -> FutureResult<(), WorkspaceError> { fn update_app(&self, _token: &str, _params: UpdateAppParams) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn delete_app(&self, _token: &str, _params: AppIdentifier) -> FutureResult<(), WorkspaceError> { fn delete_app(&self, _token: &str, _params: AppIdentifier) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn create_trash(&self, _token: &str, _params: TrashIdentifiers) -> FutureResult<(), WorkspaceError> { fn create_trash(&self, _token: &str, _params: TrashIdentifiers) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn delete_trash(&self, _token: &str, _params: TrashIdentifiers) -> FutureResult<(), WorkspaceError> { fn delete_trash(&self, _token: &str, _params: TrashIdentifiers) -> FutureResult<(), FlowyError> {
FutureResult::new(async { Ok(()) }) FutureResult::new(async { Ok(()) })
} }
fn read_trash(&self, _token: &str) -> FutureResult<RepeatedTrash, WorkspaceError> { fn read_trash(&self, _token: &str) -> FutureResult<RepeatedTrash, FlowyError> {
FutureResult::new(async { FutureResult::new(async {
let repeated_trash = RepeatedTrash { items: vec![] }; let repeated_trash = RepeatedTrash { items: vec![] };
Ok(repeated_trash) Ok(repeated_trash)

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::trash::{RepeatedTrash, Trash, TrashIdentifier, TrashIdentifiers, TrashType}, entities::trash::{RepeatedTrash, Trash, TrashIdentifier, TrashIdentifiers, TrashType},
errors::{WorkspaceError, WorkspaceResult}, errors::{FlowyError, FlowyResult},
module::{WorkspaceDatabase, WorkspaceUser}, module::{WorkspaceDatabase, WorkspaceUser},
notify::{send_anonymous_dart_notification, WorkspaceNotification}, notify::{send_anonymous_dart_notification, WorkspaceNotification},
services::{server::Server, trash::sql::TrashTableSql}, services::{server::Server, trash::sql::TrashTableSql},
@ -29,21 +29,21 @@ impl TrashController {
} }
} }
pub(crate) fn init(&self) -> Result<(), WorkspaceError> { Ok(()) } pub(crate) fn init(&self) -> Result<(), FlowyError> { Ok(()) }
#[tracing::instrument(level = "debug", skip(self), fields(putback) err)] #[tracing::instrument(level = "debug", skip(self), fields(putback) err)]
pub async fn putback(&self, trash_id: &str) -> WorkspaceResult<()> { pub async fn putback(&self, trash_id: &str) -> FlowyResult<()> {
let (tx, mut rx) = mpsc::channel::<WorkspaceResult<()>>(1); let (tx, mut rx) = mpsc::channel::<FlowyResult<()>>(1);
let trash_table = TrashTableSql::read(trash_id, &*self.database.db_connection()?)?; let trash_table = TrashTableSql::read(trash_id, &*self.database.db_connection()?)?;
let _ = thread::scope(|_s| { let _ = thread::scope(|_s| {
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = TrashTableSql::delete_trash(trash_id, &*conn)?; let _ = TrashTableSql::delete_trash(trash_id, &*conn)?;
notify_trash_changed(TrashTableSql::read_all(&conn)?); notify_trash_changed(TrashTableSql::read_all(&conn)?);
Ok(()) Ok(())
})?; })?;
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}) })
.unwrap()?; .unwrap()?;
@ -64,10 +64,10 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self) err)] #[tracing::instrument(level = "debug", skip(self) err)]
pub async fn restore_all(&self) -> WorkspaceResult<()> { pub async fn restore_all(&self) -> FlowyResult<()> {
let repeated_trash = thread::scope(|_s| { let repeated_trash = thread::scope(|_s| {
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
let repeated_trash = TrashTableSql::read_all(&*conn)?; let repeated_trash = TrashTableSql::read_all(&*conn)?;
let _ = TrashTableSql::delete_all(&*conn)?; let _ = TrashTableSql::delete_all(&*conn)?;
Ok(repeated_trash) Ok(repeated_trash)
@ -76,7 +76,7 @@ impl TrashController {
.unwrap()?; .unwrap()?;
let identifiers: TrashIdentifiers = repeated_trash.items.clone().into(); let identifiers: TrashIdentifiers = repeated_trash.items.clone().into();
let (tx, mut rx) = mpsc::channel::<WorkspaceResult<()>>(1); let (tx, mut rx) = mpsc::channel::<FlowyResult<()>>(1);
let _ = self.notify.send(TrashEvent::Putback(identifiers, tx)); let _ = self.notify.send(TrashEvent::Putback(identifiers, tx));
let _ = rx.recv().await; let _ = rx.recv().await;
@ -86,7 +86,7 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
pub async fn delete_all(&self) -> WorkspaceResult<()> { pub async fn delete_all(&self) -> FlowyResult<()> {
let repeated_trash = TrashTableSql::read_all(&*(self.database.db_connection()?))?; let repeated_trash = TrashTableSql::read_all(&*(self.database.db_connection()?))?;
let trash_identifiers: TrashIdentifiers = repeated_trash.items.clone().into(); let trash_identifiers: TrashIdentifiers = repeated_trash.items.clone().into();
let _ = self.delete_with_identifiers(trash_identifiers.clone()).await?; let _ = self.delete_with_identifiers(trash_identifiers.clone()).await?;
@ -97,7 +97,7 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
pub async fn delete(&self, trash_identifiers: TrashIdentifiers) -> WorkspaceResult<()> { pub async fn delete(&self, trash_identifiers: TrashIdentifiers) -> FlowyResult<()> {
let _ = self.delete_with_identifiers(trash_identifiers.clone()).await?; let _ = self.delete_with_identifiers(trash_identifiers.clone()).await?;
notify_trash_changed(TrashTableSql::read_all(&*(self.database.db_connection()?))?); notify_trash_changed(TrashTableSql::read_all(&*(self.database.db_connection()?))?);
let _ = self.delete_trash_on_server(trash_identifiers)?; let _ = self.delete_trash_on_server(trash_identifiers)?;
@ -106,8 +106,8 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self), fields(delete_trash_ids), err)] #[tracing::instrument(level = "debug", skip(self), fields(delete_trash_ids), err)]
pub async fn delete_with_identifiers(&self, trash_identifiers: TrashIdentifiers) -> WorkspaceResult<()> { pub async fn delete_with_identifiers(&self, trash_identifiers: TrashIdentifiers) -> FlowyResult<()> {
let (tx, mut rx) = mpsc::channel::<WorkspaceResult<()>>(1); let (tx, mut rx) = mpsc::channel::<FlowyResult<()>>(1);
tracing::Span::current().record("delete_trash_ids", &format!("{}", trash_identifiers).as_str()); tracing::Span::current().record("delete_trash_ids", &format!("{}", trash_identifiers).as_str());
let _ = self.notify.send(TrashEvent::Delete(trash_identifiers.clone(), tx)); let _ = self.notify.send(TrashEvent::Delete(trash_identifiers.clone(), tx));
@ -120,7 +120,7 @@ impl TrashController {
} }
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
for trash_identifier in &trash_identifiers.items { for trash_identifier in &trash_identifiers.items {
let _ = TrashTableSql::delete_trash(&trash_identifier.id, &conn)?; let _ = TrashTableSql::delete_trash(&trash_identifier.id, &conn)?;
} }
@ -136,8 +136,8 @@ impl TrashController {
// CREATE and DROP tables operations because those are auto-commit in the // CREATE and DROP tables operations because those are auto-commit in the
// database. // database.
#[tracing::instrument(name = "add_trash", level = "debug", skip(self, trash), fields(trash_ids), err)] #[tracing::instrument(name = "add_trash", level = "debug", skip(self, trash), fields(trash_ids), err)]
pub async fn add<T: Into<Trash>>(&self, trash: Vec<T>) -> Result<(), WorkspaceError> { pub async fn add<T: Into<Trash>>(&self, trash: Vec<T>) -> Result<(), FlowyError> {
let (tx, mut rx) = mpsc::channel::<WorkspaceResult<()>>(1); let (tx, mut rx) = mpsc::channel::<FlowyResult<()>>(1);
let repeated_trash = trash.into_iter().map(|t| t.into()).collect::<Vec<Trash>>(); let repeated_trash = trash.into_iter().map(|t| t.into()).collect::<Vec<Trash>>();
let identifiers = repeated_trash let identifiers = repeated_trash
.iter() .iter()
@ -157,14 +157,14 @@ impl TrashController {
); );
let _ = thread::scope(|_s| { let _ = thread::scope(|_s| {
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = TrashTableSql::create_trash(repeated_trash.clone(), &*conn)?; let _ = TrashTableSql::create_trash(repeated_trash.clone(), &*conn)?;
let _ = self.create_trash_on_server(repeated_trash); let _ = self.create_trash_on_server(repeated_trash);
notify_trash_changed(TrashTableSql::read_all(&conn)?); notify_trash_changed(TrashTableSql::read_all(&conn)?);
Ok(()) Ok(())
})?; })?;
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}) })
.unwrap()?; .unwrap()?;
@ -176,13 +176,13 @@ impl TrashController {
pub fn subscribe(&self) -> broadcast::Receiver<TrashEvent> { self.notify.subscribe() } pub fn subscribe(&self) -> broadcast::Receiver<TrashEvent> { self.notify.subscribe() }
pub fn read_trash(&self, conn: &SqliteConnection) -> Result<RepeatedTrash, WorkspaceError> { pub fn read_trash(&self, conn: &SqliteConnection) -> Result<RepeatedTrash, FlowyError> {
let repeated_trash = TrashTableSql::read_all(&*conn)?; let repeated_trash = TrashTableSql::read_all(&*conn)?;
let _ = self.read_trash_on_server()?; let _ = self.read_trash_on_server()?;
Ok(repeated_trash) Ok(repeated_trash)
} }
pub fn trash_ids(&self, conn: &SqliteConnection) -> Result<Vec<String>, WorkspaceError> { pub fn trash_ids(&self, conn: &SqliteConnection) -> Result<Vec<String>, FlowyError> {
let ids = TrashTableSql::read_all(&*conn)? let ids = TrashTableSql::read_all(&*conn)?
.into_inner() .into_inner()
.into_iter() .into_iter()
@ -194,7 +194,7 @@ impl TrashController {
impl TrashController { impl TrashController {
#[tracing::instrument(level = "debug", skip(self, trash), err)] #[tracing::instrument(level = "debug", skip(self, trash), err)]
fn create_trash_on_server<T: Into<TrashIdentifiers>>(&self, trash: T) -> WorkspaceResult<()> { fn create_trash_on_server<T: Into<TrashIdentifiers>>(&self, trash: T) -> FlowyResult<()> {
let token = self.user.token()?; let token = self.user.token()?;
let trash_identifiers = trash.into(); let trash_identifiers = trash.into();
let server = self.server.clone(); let server = self.server.clone();
@ -209,7 +209,7 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self, trash), err)] #[tracing::instrument(level = "debug", skip(self, trash), err)]
fn delete_trash_on_server<T: Into<TrashIdentifiers>>(&self, trash: T) -> WorkspaceResult<()> { fn delete_trash_on_server<T: Into<TrashIdentifiers>>(&self, trash: T) -> FlowyResult<()> {
let token = self.user.token()?; let token = self.user.token()?;
let trash_identifiers = trash.into(); let trash_identifiers = trash.into();
let server = self.server.clone(); let server = self.server.clone();
@ -223,7 +223,7 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
fn read_trash_on_server(&self) -> WorkspaceResult<()> { fn read_trash_on_server(&self) -> FlowyResult<()> {
let token = self.user.token()?; let token = self.user.token()?;
let server = self.server.clone(); let server = self.server.clone();
let pool = self.database.db_pool()?; let pool = self.database.db_pool()?;
@ -234,7 +234,7 @@ impl TrashController {
tracing::debug!("Remote trash count: {}", repeated_trash.items.len()); tracing::debug!("Remote trash count: {}", repeated_trash.items.len());
match pool.get() { match pool.get() {
Ok(conn) => { Ok(conn) => {
let result = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let result = conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = TrashTableSql::create_trash(repeated_trash.items.clone(), &*conn)?; let _ = TrashTableSql::create_trash(repeated_trash.items.clone(), &*conn)?;
TrashTableSql::read_all(&conn) TrashTableSql::read_all(&conn)
}); });
@ -256,7 +256,7 @@ impl TrashController {
} }
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
async fn delete_all_trash_on_server(&self) -> WorkspaceResult<()> { async fn delete_all_trash_on_server(&self) -> FlowyResult<()> {
let token = self.user.token()?; let token = self.user.token()?;
let server = self.server.clone(); let server = self.server.clone();
server.delete_trash(&token, TrashIdentifiers::all()).await server.delete_trash(&token, TrashIdentifiers::all()).await
@ -273,9 +273,9 @@ fn notify_trash_changed(repeated_trash: RepeatedTrash) {
#[derive(Clone)] #[derive(Clone)]
pub enum TrashEvent { pub enum TrashEvent {
NewTrash(TrashIdentifiers, mpsc::Sender<WorkspaceResult<()>>), NewTrash(TrashIdentifiers, mpsc::Sender<FlowyResult<()>>),
Putback(TrashIdentifiers, mpsc::Sender<WorkspaceResult<()>>), Putback(TrashIdentifiers, mpsc::Sender<FlowyResult<()>>),
Delete(TrashIdentifiers, mpsc::Sender<WorkspaceResult<()>>), Delete(TrashIdentifiers, mpsc::Sender<FlowyResult<()>>),
} }
impl std::fmt::Debug for TrashEvent { impl std::fmt::Debug for TrashEvent {

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::trash::{RepeatedTrash, TrashIdentifier, TrashIdentifiers}, entities::trash::{RepeatedTrash, TrashIdentifier, TrashIdentifiers},
errors::WorkspaceError, errors::FlowyError,
services::TrashController, services::TrashController,
}; };
use lib_dispatch::prelude::{data_result, Data, DataResult, Unit}; use lib_dispatch::prelude::{data_result, Data, DataResult, Unit};
@ -9,7 +9,7 @@ use std::sync::Arc;
#[tracing::instrument(skip(controller), err)] #[tracing::instrument(skip(controller), err)]
pub(crate) async fn read_trash_handler( pub(crate) async fn read_trash_handler(
controller: Unit<Arc<TrashController>>, controller: Unit<Arc<TrashController>>,
) -> DataResult<RepeatedTrash, WorkspaceError> { ) -> DataResult<RepeatedTrash, FlowyError> {
let conn = controller.database.db_connection()?; let conn = controller.database.db_connection()?;
let repeated_trash = controller.read_trash(&conn)?; let repeated_trash = controller.read_trash(&conn)?;
data_result(repeated_trash) data_result(repeated_trash)
@ -19,7 +19,7 @@ pub(crate) async fn read_trash_handler(
pub(crate) async fn putback_trash_handler( pub(crate) async fn putback_trash_handler(
identifier: Data<TrashIdentifier>, identifier: Data<TrashIdentifier>,
controller: Unit<Arc<TrashController>>, controller: Unit<Arc<TrashController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let _ = controller.putback(&identifier.id).await?; let _ = controller.putback(&identifier.id).await?;
Ok(()) Ok(())
} }
@ -28,19 +28,19 @@ pub(crate) async fn putback_trash_handler(
pub(crate) async fn delete_trash_handler( pub(crate) async fn delete_trash_handler(
identifiers: Data<TrashIdentifiers>, identifiers: Data<TrashIdentifiers>,
controller: Unit<Arc<TrashController>>, controller: Unit<Arc<TrashController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let _ = controller.delete(identifiers.into_inner()).await?; let _ = controller.delete(identifiers.into_inner()).await?;
Ok(()) Ok(())
} }
#[tracing::instrument(skip(controller), err)] #[tracing::instrument(skip(controller), err)]
pub(crate) async fn restore_all_handler(controller: Unit<Arc<TrashController>>) -> Result<(), WorkspaceError> { pub(crate) async fn restore_all_handler(controller: Unit<Arc<TrashController>>) -> Result<(), FlowyError> {
let _ = controller.restore_all().await?; let _ = controller.restore_all().await?;
Ok(()) Ok(())
} }
#[tracing::instrument(skip(controller), err)] #[tracing::instrument(skip(controller), err)]
pub(crate) async fn delete_all_handler(controller: Unit<Arc<TrashController>>) -> Result<(), WorkspaceError> { pub(crate) async fn delete_all_handler(controller: Unit<Arc<TrashController>>) -> Result<(), FlowyError> {
let _ = controller.delete_all().await?; let _ = controller.delete_all().await?;
Ok(()) Ok(())
} }

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
entities::trash::{RepeatedTrash, Trash, TrashType}, entities::trash::{RepeatedTrash, Trash, TrashType},
errors::WorkspaceError, errors::FlowyError,
}; };
use diesel::sql_types::Integer; use diesel::sql_types::Integer;
use flowy_database::{ use flowy_database::{
@ -12,7 +12,7 @@ use flowy_database::{
pub struct TrashTableSql {} pub struct TrashTableSql {}
impl TrashTableSql { impl TrashTableSql {
pub(crate) fn create_trash(repeated_trash: Vec<Trash>, conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn create_trash(repeated_trash: Vec<Trash>, conn: &SqliteConnection) -> Result<(), FlowyError> {
for trash in repeated_trash { for trash in repeated_trash {
let trash_table: TrashTable = trash.into(); let trash_table: TrashTable = trash.into();
match diesel_record_count!(trash_table, &trash_table.id, conn) { match diesel_record_count!(trash_table, &trash_table.id, conn) {
@ -27,25 +27,25 @@ impl TrashTableSql {
Ok(()) Ok(())
} }
pub(crate) fn read_all(conn: &SqliteConnection) -> Result<RepeatedTrash, WorkspaceError> { pub(crate) fn read_all(conn: &SqliteConnection) -> Result<RepeatedTrash, FlowyError> {
let trash_tables = dsl::trash_table.load::<TrashTable>(conn)?; let trash_tables = dsl::trash_table.load::<TrashTable>(conn)?;
let items = trash_tables.into_iter().map(|t| t.into()).collect::<Vec<Trash>>(); let items = trash_tables.into_iter().map(|t| t.into()).collect::<Vec<Trash>>();
Ok(RepeatedTrash { items }) Ok(RepeatedTrash { items })
} }
pub(crate) fn delete_all(conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn delete_all(conn: &SqliteConnection) -> Result<(), FlowyError> {
let _ = diesel::delete(dsl::trash_table).execute(conn)?; let _ = diesel::delete(dsl::trash_table).execute(conn)?;
Ok(()) Ok(())
} }
pub(crate) fn read(trash_id: &str, conn: &SqliteConnection) -> Result<TrashTable, WorkspaceError> { pub(crate) fn read(trash_id: &str, conn: &SqliteConnection) -> Result<TrashTable, FlowyError> {
let trash_table = dsl::trash_table let trash_table = dsl::trash_table
.filter(trash_table::id.eq(trash_id)) .filter(trash_table::id.eq(trash_id))
.first::<TrashTable>(conn)?; .first::<TrashTable>(conn)?;
Ok(trash_table) Ok(trash_table)
} }
pub(crate) fn delete_trash(trash_id: &str, conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn delete_trash(trash_id: &str, conn: &SqliteConnection) -> Result<(), FlowyError> {
diesel_delete_table!(trash_table, trash_id, conn); diesel_delete_table!(trash_table, trash_id, conn);
Ok(()) Ok(())
} }

View File

@ -8,7 +8,7 @@ use crate::{
trash::{TrashIdentifiers, TrashType}, trash::{TrashIdentifiers, TrashType},
view::{CreateViewParams, RepeatedView, UpdateViewParams, View, ViewIdentifier}, view::{CreateViewParams, RepeatedView, UpdateViewParams, View, ViewIdentifier},
}, },
errors::{internal_error, WorkspaceError, WorkspaceResult}, errors::{internal_error, FlowyError, FlowyResult},
module::{WorkspaceDatabase, WorkspaceUser}, module::{WorkspaceDatabase, WorkspaceUser},
notify::{send_dart_notification, WorkspaceNotification}, notify::{send_dart_notification, WorkspaceNotification},
services::{ services::{
@ -49,23 +49,23 @@ impl ViewController {
} }
} }
pub(crate) fn init(&self) -> Result<(), WorkspaceError> { pub(crate) fn init(&self) -> Result<(), FlowyError> {
let _ = self.document.init()?; let _ = self.document.init()?;
self.listen_trash_can_event(); self.listen_trash_can_event();
Ok(()) Ok(())
} }
#[tracing::instrument(level = "debug", skip(self, params), fields(name = %params.name), err)] #[tracing::instrument(level = "debug", skip(self, params), fields(name = %params.name), err)]
pub(crate) async fn create_view_from_params(&self, params: CreateViewParams) -> Result<View, WorkspaceError> { pub(crate) async fn create_view_from_params(&self, params: CreateViewParams) -> Result<View, FlowyError> {
let view = self.create_view_on_server(params.clone()).await?; let view = self.create_view_on_server(params.clone()).await?;
self.create_view(view).await self.create_view(view).await
} }
pub(crate) async fn create_view(&self, view: View) -> Result<View, WorkspaceError> { pub(crate) async fn create_view(&self, view: View) -> Result<View, FlowyError> {
let conn = &*self.database.db_connection()?; let conn = &*self.database.db_connection()?;
let trash_can = self.trash_can.clone(); let trash_can = self.trash_can.clone();
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = self.save_view(view.clone(), conn)?; let _ = self.save_view(view.clone(), conn)?;
let _ = notify_views_changed(&view.belong_to_id, trash_can, &conn)?; let _ = notify_views_changed(&view.belong_to_id, trash_can, &conn)?;
@ -75,20 +75,20 @@ impl ViewController {
Ok(view) Ok(view)
} }
pub(crate) fn save_view(&self, view: View, conn: &SqliteConnection) -> Result<(), WorkspaceError> { pub(crate) fn save_view(&self, view: View, conn: &SqliteConnection) -> Result<(), FlowyError> {
let view_table = ViewTable::new(view); let view_table = ViewTable::new(view);
let _ = ViewTableSql::create_view(view_table, conn)?; let _ = ViewTableSql::create_view(view_table, conn)?;
Ok(()) Ok(())
} }
#[tracing::instrument(skip(self, params), fields(view_id = %params.view_id), err)] #[tracing::instrument(skip(self, params), fields(view_id = %params.view_id), err)]
pub(crate) async fn read_view(&self, params: ViewIdentifier) -> Result<View, WorkspaceError> { pub(crate) async fn read_view(&self, params: ViewIdentifier) -> Result<View, FlowyError> {
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
let view_table = ViewTableSql::read_view(&params.view_id, &*conn)?; let view_table = ViewTableSql::read_view(&params.view_id, &*conn)?;
let trash_ids = self.trash_can.trash_ids(&conn)?; let trash_ids = self.trash_can.trash_ids(&conn)?;
if trash_ids.contains(&view_table.id) { if trash_ids.contains(&view_table.id) {
return Err(WorkspaceError::record_not_found()); return Err(FlowyError::record_not_found());
} }
let view: View = view_table.into(); let view: View = view_table.into();
@ -96,10 +96,10 @@ impl ViewController {
Ok(view) Ok(view)
} }
pub(crate) fn read_view_tables(&self, ids: Vec<String>) -> Result<Vec<ViewTable>, WorkspaceError> { pub(crate) fn read_view_tables(&self, ids: Vec<String>) -> Result<Vec<ViewTable>, FlowyError> {
let conn = &*self.database.db_connection()?; let conn = &*self.database.db_connection()?;
let mut view_tables = vec![]; let mut view_tables = vec![];
conn.immediate_transaction::<_, WorkspaceError, _>(|| { conn.immediate_transaction::<_, FlowyError, _>(|| {
for view_id in ids { for view_id in ids {
view_tables.push(ViewTableSql::read_view(&view_id, conn)?); view_tables.push(ViewTableSql::read_view(&view_id, conn)?);
} }
@ -110,7 +110,7 @@ impl ViewController {
} }
#[tracing::instrument(level = "debug", skip(self, params), fields(doc_id = %params.doc_id), err)] #[tracing::instrument(level = "debug", skip(self, params), fields(doc_id = %params.doc_id), err)]
pub(crate) async fn open_view(&self, params: DocIdentifier) -> Result<DocDelta, WorkspaceError> { pub(crate) async fn open_view(&self, params: DocIdentifier) -> Result<DocDelta, FlowyError> {
let doc_id = params.doc_id.clone(); let doc_id = params.doc_id.clone();
let edit_context = self.document.open(params).await?; let edit_context = self.document.open(params).await?;
@ -119,13 +119,13 @@ impl ViewController {
} }
#[tracing::instrument(level = "debug", skip(self,params), fields(doc_id = %params.doc_id), err)] #[tracing::instrument(level = "debug", skip(self,params), fields(doc_id = %params.doc_id), err)]
pub(crate) async fn close_view(&self, params: DocIdentifier) -> Result<(), WorkspaceError> { pub(crate) async fn close_view(&self, params: DocIdentifier) -> Result<(), FlowyError> {
let _ = self.document.close(params).await?; let _ = self.document.close(params).await?;
Ok(()) Ok(())
} }
#[tracing::instrument(level = "debug", skip(self,params), fields(doc_id = %params.doc_id), err)] #[tracing::instrument(level = "debug", skip(self,params), fields(doc_id = %params.doc_id), err)]
pub(crate) async fn delete_view(&self, params: DocIdentifier) -> Result<(), WorkspaceError> { pub(crate) async fn delete_view(&self, params: DocIdentifier) -> Result<(), FlowyError> {
if let Some(view_id) = KV::get_str(LATEST_VIEW_ID) { if let Some(view_id) = KV::get_str(LATEST_VIEW_ID) {
if view_id == params.doc_id { if view_id == params.doc_id {
let _ = KV::remove(LATEST_VIEW_ID); let _ = KV::remove(LATEST_VIEW_ID);
@ -136,7 +136,7 @@ impl ViewController {
} }
#[tracing::instrument(level = "debug", skip(self, params), fields(doc_id = %params.doc_id), err)] #[tracing::instrument(level = "debug", skip(self, params), fields(doc_id = %params.doc_id), err)]
pub(crate) async fn duplicate_view(&self, params: DocIdentifier) -> Result<(), WorkspaceError> { pub(crate) async fn duplicate_view(&self, params: DocIdentifier) -> Result<(), FlowyError> {
let view: View = ViewTableSql::read_view(&params.doc_id, &*self.database.db_connection()?)?.into(); let view: View = ViewTableSql::read_view(&params.doc_id, &*self.database.db_connection()?)?.into();
let delta_data = self let delta_data = self
.document .document
@ -157,7 +157,7 @@ impl ViewController {
} }
#[tracing::instrument(level = "debug", skip(self, params), err)] #[tracing::instrument(level = "debug", skip(self, params), err)]
pub(crate) async fn export_doc(&self, params: ExportParams) -> Result<ExportData, WorkspaceError> { pub(crate) async fn export_doc(&self, params: ExportParams) -> Result<ExportData, FlowyError> {
let doc_identifier: DocIdentifier = params.doc_id.into(); let doc_identifier: DocIdentifier = params.doc_id.into();
let doc = self let doc = self
.document .document
@ -172,7 +172,7 @@ impl ViewController {
// belong_to_id will be the app_id or view_id. // belong_to_id will be the app_id or view_id.
#[tracing::instrument(level = "debug", skip(self), err)] #[tracing::instrument(level = "debug", skip(self), err)]
pub(crate) async fn read_views_belong_to(&self, belong_to_id: &str) -> Result<RepeatedView, WorkspaceError> { pub(crate) async fn read_views_belong_to(&self, belong_to_id: &str) -> Result<RepeatedView, FlowyError> {
// TODO: read from server // TODO: read from server
let conn = self.database.db_connection()?; let conn = self.database.db_connection()?;
let repeated_view = read_local_belonging_view(belong_to_id, self.trash_can.clone(), &conn)?; let repeated_view = read_local_belonging_view(belong_to_id, self.trash_can.clone(), &conn)?;
@ -180,12 +180,12 @@ impl ViewController {
} }
#[tracing::instrument(level = "debug", skip(self, params), err)] #[tracing::instrument(level = "debug", skip(self, params), err)]
pub(crate) async fn update_view(&self, params: UpdateViewParams) -> Result<View, WorkspaceError> { pub(crate) async fn update_view(&self, params: UpdateViewParams) -> Result<View, FlowyError> {
let conn = &*self.database.db_connection()?; let conn = &*self.database.db_connection()?;
let changeset = ViewTableChangeset::new(params.clone()); let changeset = ViewTableChangeset::new(params.clone());
let view_id = changeset.id.clone(); let view_id = changeset.id.clone();
let updated_view = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let updated_view = conn.immediate_transaction::<_, FlowyError, _>(|| {
let _ = ViewTableSql::update_view(changeset, conn)?; let _ = ViewTableSql::update_view(changeset, conn)?;
let view: View = ViewTableSql::read_view(&view_id, conn)?.into(); let view: View = ViewTableSql::read_view(&view_id, conn)?.into();
Ok(view) Ok(view)
@ -201,12 +201,12 @@ impl ViewController {
Ok(updated_view) Ok(updated_view)
} }
pub(crate) async fn apply_doc_delta(&self, params: DocDelta) -> Result<DocDelta, WorkspaceError> { pub(crate) async fn apply_doc_delta(&self, params: DocDelta) -> Result<DocDelta, FlowyError> {
let doc = self.document.apply_doc_delta(params).await?; let doc = self.document.apply_doc_delta(params).await?;
Ok(doc) Ok(doc)
} }
pub(crate) fn latest_visit_view(&self) -> WorkspaceResult<Option<View>> { pub(crate) fn latest_visit_view(&self) -> FlowyResult<Option<View>> {
match KV::get_str(LATEST_VIEW_ID) { match KV::get_str(LATEST_VIEW_ID) {
None => Ok(None), None => Ok(None),
Some(view_id) => { Some(view_id) => {
@ -222,14 +222,14 @@ impl ViewController {
impl ViewController { impl ViewController {
#[tracing::instrument(skip(self), err)] #[tracing::instrument(skip(self), err)]
async fn create_view_on_server(&self, params: CreateViewParams) -> Result<View, WorkspaceError> { async fn create_view_on_server(&self, params: CreateViewParams) -> Result<View, FlowyError> {
let token = self.user.token()?; let token = self.user.token()?;
let view = self.server.create_view(&token, params).await?; let view = self.server.create_view(&token, params).await?;
Ok(view) Ok(view)
} }
#[tracing::instrument(skip(self), err)] #[tracing::instrument(skip(self), err)]
fn update_view_on_server(&self, params: UpdateViewParams) -> Result<(), WorkspaceError> { fn update_view_on_server(&self, params: UpdateViewParams) -> Result<(), FlowyError> {
let token = self.user.token()?; let token = self.user.token()?;
let server = self.server.clone(); let server = self.server.clone();
tokio::spawn(async move { tokio::spawn(async move {
@ -245,7 +245,7 @@ impl ViewController {
} }
#[tracing::instrument(skip(self), err)] #[tracing::instrument(skip(self), err)]
fn read_view_on_server(&self, params: ViewIdentifier) -> Result<(), WorkspaceError> { fn read_view_on_server(&self, params: ViewIdentifier) -> Result<(), FlowyError> {
let token = self.user.token()?; let token = self.user.token()?;
let server = self.server.clone(); let server = self.server.clone();
let pool = self.database.db_pool()?; let pool = self.database.db_pool()?;
@ -314,7 +314,7 @@ async fn handle_trash_event(
let _ = notify_views_changed(&view_table.belong_to_id, trash_can.clone(), conn)?; let _ = notify_views_changed(&view_table.belong_to_id, trash_can.clone(), conn)?;
notify_dart(view_table, WorkspaceNotification::ViewDeleted); notify_dart(view_table, WorkspaceNotification::ViewDeleted);
} }
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}; };
let _ = ret.send(result()).await; let _ = ret.send(result()).await;
}, },
@ -326,14 +326,14 @@ async fn handle_trash_event(
let _ = notify_views_changed(&view_table.belong_to_id, trash_can.clone(), conn)?; let _ = notify_views_changed(&view_table.belong_to_id, trash_can.clone(), conn)?;
notify_dart(view_table, WorkspaceNotification::ViewRestored); notify_dart(view_table, WorkspaceNotification::ViewRestored);
} }
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}; };
let _ = ret.send(result()).await; let _ = ret.send(result()).await;
}, },
TrashEvent::Delete(identifiers, ret) => { TrashEvent::Delete(identifiers, ret) => {
let result = || { let result = || {
let conn = &*db_result?; let conn = &*db_result?;
let _ = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let _ = conn.immediate_transaction::<_, FlowyError, _>(|| {
let mut notify_ids = HashSet::new(); let mut notify_ids = HashSet::new();
for identifier in identifiers.items { for identifier in identifiers.items {
let view_table = ViewTableSql::read_view(&identifier.id, conn)?; let view_table = ViewTableSql::read_view(&identifier.id, conn)?;
@ -348,19 +348,16 @@ async fn handle_trash_event(
Ok(()) Ok(())
})?; })?;
Ok::<(), WorkspaceError>(()) Ok::<(), FlowyError>(())
}; };
let _ = ret.send(result()).await; let _ = ret.send(result()).await;
}, },
} }
} }
fn get_view_table_from( fn get_view_table_from(identifiers: TrashIdentifiers, conn: &SqliteConnection) -> Result<Vec<ViewTable>, FlowyError> {
identifiers: TrashIdentifiers,
conn: &SqliteConnection,
) -> Result<Vec<ViewTable>, WorkspaceError> {
let mut view_tables = vec![]; let mut view_tables = vec![];
let _ = conn.immediate_transaction::<_, WorkspaceError, _>(|| { let _ = conn.immediate_transaction::<_, FlowyError, _>(|| {
for identifier in identifiers.items { for identifier in identifiers.items {
let view_table = ViewTableSql::read_view(&identifier.id, conn)?; let view_table = ViewTableSql::read_view(&identifier.id, conn)?;
view_tables.push(view_table); view_tables.push(view_table);
@ -380,7 +377,7 @@ fn notify_views_changed(
belong_to_id: &str, belong_to_id: &str,
trash_can: Arc<TrashController>, trash_can: Arc<TrashController>,
conn: &SqliteConnection, conn: &SqliteConnection,
) -> WorkspaceResult<()> { ) -> FlowyResult<()> {
let repeated_view = read_local_belonging_view(belong_to_id, trash_can.clone(), conn)?; let repeated_view = read_local_belonging_view(belong_to_id, trash_can.clone(), conn)?;
tracing::Span::current().record("view_count", &format!("{}", repeated_view.len()).as_str()); tracing::Span::current().record("view_count", &format!("{}", repeated_view.len()).as_str());
send_dart_notification(&belong_to_id, WorkspaceNotification::AppViewsChanged) send_dart_notification(&belong_to_id, WorkspaceNotification::AppViewsChanged)
@ -393,7 +390,7 @@ fn read_local_belonging_view(
belong_to_id: &str, belong_to_id: &str,
trash_can: Arc<TrashController>, trash_can: Arc<TrashController>,
conn: &SqliteConnection, conn: &SqliteConnection,
) -> WorkspaceResult<RepeatedView> { ) -> FlowyResult<RepeatedView> {
let mut view_tables = ViewTableSql::read_views(belong_to_id, conn)?; let mut view_tables = ViewTableSql::read_views(belong_to_id, conn)?;
let trash_ids = trash_can.trash_ids(conn)?; let trash_ids = trash_can.trash_ids(conn)?;
view_tables.retain(|view_table| !trash_ids.contains(&view_table.id)); view_tables.retain(|view_table| !trash_ids.contains(&view_table.id));

View File

@ -12,7 +12,7 @@ use crate::{
ViewIdentifiers, ViewIdentifiers,
}, },
}, },
errors::WorkspaceError, errors::FlowyError,
services::{TrashController, ViewController}, services::{TrashController, ViewController},
}; };
use flowy_collaboration::entities::doc::DocDelta; use flowy_collaboration::entities::doc::DocDelta;
@ -23,7 +23,7 @@ use std::{convert::TryInto, sync::Arc};
pub(crate) async fn create_view_handler( pub(crate) async fn create_view_handler(
data: Data<CreateViewRequest>, data: Data<CreateViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> DataResult<View, WorkspaceError> { ) -> DataResult<View, FlowyError> {
let params: CreateViewParams = data.into_inner().try_into()?; let params: CreateViewParams = data.into_inner().try_into()?;
let view = controller.create_view_from_params(params).await?; let view = controller.create_view_from_params(params).await?;
data_result(view) data_result(view)
@ -32,7 +32,7 @@ pub(crate) async fn create_view_handler(
pub(crate) async fn read_view_handler( pub(crate) async fn read_view_handler(
data: Data<QueryViewRequest>, data: Data<QueryViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> DataResult<View, WorkspaceError> { ) -> DataResult<View, FlowyError> {
let params: ViewIdentifier = data.into_inner().try_into()?; let params: ViewIdentifier = data.into_inner().try_into()?;
let mut view = controller.read_view(params.clone()).await?; let mut view = controller.read_view(params.clone()).await?;
view.belongings = controller.read_views_belong_to(&params.view_id).await?; view.belongings = controller.read_views_belong_to(&params.view_id).await?;
@ -44,7 +44,7 @@ pub(crate) async fn read_view_handler(
pub(crate) async fn update_view_handler( pub(crate) async fn update_view_handler(
data: Data<UpdateViewRequest>, data: Data<UpdateViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let params: UpdateViewParams = data.into_inner().try_into()?; let params: UpdateViewParams = data.into_inner().try_into()?;
let _ = controller.update_view(params).await?; let _ = controller.update_view(params).await?;
@ -54,7 +54,7 @@ pub(crate) async fn update_view_handler(
pub(crate) async fn apply_doc_delta_handler( pub(crate) async fn apply_doc_delta_handler(
data: Data<DocDelta>, data: Data<DocDelta>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> DataResult<DocDelta, WorkspaceError> { ) -> DataResult<DocDelta, FlowyError> {
// let params: DocDelta = data.into_inner().try_into()?; // let params: DocDelta = data.into_inner().try_into()?;
let doc = controller.apply_doc_delta(data.into_inner()).await?; let doc = controller.apply_doc_delta(data.into_inner()).await?;
data_result(doc) data_result(doc)
@ -64,7 +64,7 @@ pub(crate) async fn delete_view_handler(
data: Data<QueryViewRequest>, data: Data<QueryViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
trash_can: Unit<Arc<TrashController>>, trash_can: Unit<Arc<TrashController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let params: ViewIdentifiers = data.into_inner().try_into()?; let params: ViewIdentifiers = data.into_inner().try_into()?;
for view_id in &params.view_ids { for view_id in &params.view_ids {
let _ = controller.delete_view(view_id.into()).await; let _ = controller.delete_view(view_id.into()).await;
@ -83,7 +83,7 @@ pub(crate) async fn delete_view_handler(
pub(crate) async fn open_view_handler( pub(crate) async fn open_view_handler(
data: Data<QueryViewRequest>, data: Data<QueryViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> DataResult<DocDelta, WorkspaceError> { ) -> DataResult<DocDelta, FlowyError> {
let params: ViewIdentifier = data.into_inner().try_into()?; let params: ViewIdentifier = data.into_inner().try_into()?;
let doc = controller.open_view(params.into()).await?; let doc = controller.open_view(params.into()).await?;
data_result(doc) data_result(doc)
@ -92,7 +92,7 @@ pub(crate) async fn open_view_handler(
pub(crate) async fn close_view_handler( pub(crate) async fn close_view_handler(
data: Data<QueryViewRequest>, data: Data<QueryViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let params: ViewIdentifier = data.into_inner().try_into()?; let params: ViewIdentifier = data.into_inner().try_into()?;
let _ = controller.close_view(params.into()).await?; let _ = controller.close_view(params.into()).await?;
Ok(()) Ok(())
@ -102,7 +102,7 @@ pub(crate) async fn close_view_handler(
pub(crate) async fn duplicate_view_handler( pub(crate) async fn duplicate_view_handler(
data: Data<QueryViewRequest>, data: Data<QueryViewRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> Result<(), WorkspaceError> { ) -> Result<(), FlowyError> {
let params: ViewIdentifier = data.into_inner().try_into()?; let params: ViewIdentifier = data.into_inner().try_into()?;
let _ = controller.duplicate_view(params.into()).await?; let _ = controller.duplicate_view(params.into()).await?;
Ok(()) Ok(())
@ -112,7 +112,7 @@ pub(crate) async fn duplicate_view_handler(
pub(crate) async fn export_handler( pub(crate) async fn export_handler(
data: Data<ExportRequest>, data: Data<ExportRequest>,
controller: Unit<Arc<ViewController>>, controller: Unit<Arc<ViewController>>,
) -> DataResult<ExportData, WorkspaceError> { ) -> DataResult<ExportData, FlowyError> {
let params: ExportParams = data.into_inner().try_into()?; let params: ExportParams = data.into_inner().try_into()?;
let data = controller.export_doc(params).await?; let data = controller.export_doc(params).await?;
data_result(data) data_result(data)

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