Added example project

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2024-09-18 10:39:46 +02:00
parent af6194608d
commit e6b2442eea
15 changed files with 536 additions and 2 deletions
@@ -0,0 +1,89 @@
import "package:arcane_framework/arcane_framework.dart";
class DebugAuthInterface implements ArcaneAuthInterface {
DebugAuthInterface._internal();
static final ArcaneAuthInterface _instance = DebugAuthInterface._internal();
static ArcaneAuthInterface get I => _instance;
@override
Future<bool> get isSignedIn => Future.value(_isSignedIn);
bool _isSignedIn = false;
@override
Future<String?> get accessToken => isSignedIn.then(
(loggedIn) => loggedIn ? "access_token" : null,
);
@override
Future<String?> get refreshToken => isSignedIn.then(
(loggedIn) => loggedIn ? "refresh_token" : null,
);
@override
Future<Result<void, String>> logout() async {
Arcane.log("Logging out");
_isSignedIn = false;
return Result.ok(null);
}
@override
Future<Result<void, String>> loginWithEmailAndPassword({
required String email,
required String password,
}) async {
final bool alreadyLoggedIn = await isSignedIn;
if (alreadyLoggedIn) return Result.ok(null);
Arcane.log("Logging in as $email");
_isSignedIn = true;
return Result.ok(null);
}
@override
Future<Result<String, String>> resendVerificationCode(String email) async {
Arcane.log("Re-sending verification code to $email");
return Result.ok("Code sent");
}
@override
Future<Result<SignUpStep, String>> signup({
required String password,
required String email,
}) async {
Arcane.log("Creating account for $email with password $password");
return Result.ok(SignUpStep.confirmSignUp);
}
@override
Future<Result<bool, String>> confirmSignup({
required String username,
required String confirmationCode,
}) async {
Arcane.log(
"Confirming registration for $username with code $confirmationCode",
);
return Result.ok(true);
}
@override
Future<Result<bool, String>> resetPassword({
required String email,
String? newPassword,
String? code,
}) async {
Arcane.log("Resetting password for $email");
return Result.ok(true);
}
@override
Future<void> init() async {
Arcane.log("Debug auth interface initialized.");
return;
}
}
@@ -0,0 +1,27 @@
import "package:arcane_framework/arcane_framework.dart";
import "package:example/config.dart";
import "package:flutter/foundation.dart";
class DebugPrint implements LoggingInterface {
DebugPrint._internal();
static final DebugPrint _instance = DebugPrint._internal();
static DebugPrint get I => _instance;
@override
bool get initialized => true;
@override
void log(
String message, {
Map<String, dynamic>? metadata,
Level? level = Level.debug,
StackTrace? stackTrace,
}) {
if (Feature.logging.disabled) return;
debugPrint("[${level!.name}] $message ($metadata)");
}
@override
Future<LoggingInterface?> init() async => I;
}