You've already forked obsidian-visualiser
Tests connexion
This commit is contained in:
@@ -1,96 +0,0 @@
|
||||
export enum AuthStatus
|
||||
{
|
||||
disconnected, loading, connected
|
||||
};
|
||||
export interface Auth
|
||||
{
|
||||
id: Ref<number>;
|
||||
data: Ref<Record<string, any>>;
|
||||
sessionId: Ref<string>;
|
||||
status: Ref<AuthStatus>;
|
||||
|
||||
lastRefresh: Ref<Date>;
|
||||
|
||||
register: (username: string, email: string, password: string, data?: Record<string, any>) => Promise<any>;
|
||||
login: (usernameOrEmail: string, password: string) => Promise<void>;
|
||||
logout: () => Promise<void>;
|
||||
|
||||
refresh: () => Promise<void>;
|
||||
}
|
||||
|
||||
|
||||
async function register(username: string, email: string, password: string, additionalData?: Record<string, any>): Promise<any>
|
||||
{
|
||||
const id = useState<number>("auth:id");
|
||||
const data = useState<any>("auth:data");
|
||||
const sessionId = useState<string>("auth:sessionId");
|
||||
const status = useState<AuthStatus>("auth:status");
|
||||
const lastRefresh = useState<Date>("auth:date");
|
||||
status.value = AuthStatus.loading;
|
||||
|
||||
try
|
||||
{
|
||||
const result = await $fetch("/api/auth/register", {
|
||||
method: 'POST',
|
||||
body: { username, email, password, additionalData },
|
||||
ignoreResponseError: true,
|
||||
});
|
||||
|
||||
if(result.success)
|
||||
{
|
||||
id.value = result.id!;
|
||||
data.value = { ...additionalData, username: username, email: email };
|
||||
sessionId.value = result.sessionId!;
|
||||
status.value = AuthStatus.connected;
|
||||
lastRefresh.value = new Date();
|
||||
|
||||
return;
|
||||
}
|
||||
else if(result.error)
|
||||
{
|
||||
status.value = AuthStatus.disconnected;
|
||||
|
||||
return result.error;
|
||||
}
|
||||
else
|
||||
{
|
||||
status.value = AuthStatus.disconnected;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
console.log(JSON.stringify(e));
|
||||
status.value = AuthStatus.disconnected;
|
||||
}
|
||||
}
|
||||
async function login(usernameOrEmail: string, password: string): Promise<void>
|
||||
{
|
||||
const status = useState<AuthStatus>("auth:status");
|
||||
status.value = AuthStatus.disconnected;
|
||||
}
|
||||
async function logout(): Promise<void>
|
||||
{
|
||||
const status = useState<AuthStatus>("auth:status");
|
||||
status.value = AuthStatus.disconnected;
|
||||
}
|
||||
|
||||
async function refresh(): Promise<void>
|
||||
{
|
||||
const status = useState<AuthStatus>("auth:status");
|
||||
status.value = AuthStatus.disconnected;
|
||||
}
|
||||
|
||||
export default function useAuth(): Auth {
|
||||
const id = useState<number>("auth:id", () => 0);
|
||||
const data = useState<any>("auth:data", () => { });
|
||||
const sessionId = useState<string>("auth:sessionId", () => '');
|
||||
const status = useState<AuthStatus>("auth:status", () => AuthStatus.disconnected);
|
||||
|
||||
const lastRefresh = useState<Date>("auth:date", () => new Date());
|
||||
|
||||
return {
|
||||
id, data, sessionId, status, lastRefresh,
|
||||
register, login, logout, refresh
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user