2021-07-13 05:14:49 +00:00
|
|
|
import 'package:dartz/dartz.dart';
|
2021-11-08 11:19:02 +00:00
|
|
|
import 'package:flowy_sdk/protobuf/flowy-user/protobuf.dart';
|
2021-07-25 10:04:16 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2021-07-13 05:14:49 +00:00
|
|
|
|
2021-11-08 11:19:02 +00:00
|
|
|
class NewUser {
|
|
|
|
UserProfile profile;
|
|
|
|
String workspaceId;
|
|
|
|
NewUser({
|
|
|
|
required this.profile,
|
|
|
|
required this.workspaceId,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-07-13 05:14:49 +00:00
|
|
|
abstract class IAuth {
|
2021-11-08 06:11:10 +00:00
|
|
|
Future<Either<UserProfile, UserError>> signIn(String? email, String? password);
|
2021-11-08 11:19:02 +00:00
|
|
|
Future<Either<NewUser, UserError>> signUp(String? name, String? password, String? email);
|
2021-07-13 05:23:03 +00:00
|
|
|
Future<Either<Unit, UserError>> signOut();
|
2021-07-13 05:14:49 +00:00
|
|
|
}
|
2021-07-25 10:04:16 +00:00
|
|
|
|
|
|
|
abstract class IAuthRouter {
|
2021-09-06 08:18:34 +00:00
|
|
|
void pushWelcomeScreen(BuildContext context, UserProfile userProfile);
|
|
|
|
void pushSignUpScreen(BuildContext context);
|
|
|
|
void pushForgetPasswordScreen(BuildContext context);
|
2021-11-08 11:19:02 +00:00
|
|
|
void pushHomeScreen(BuildContext context, UserProfile profile, String workspaceId);
|
2021-07-25 10:04:16 +00:00
|
|
|
}
|