Add some stub user stuff
This commit is contained in:
@@ -59,6 +59,29 @@ const routes: Route[] = [
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/whoami",
|
||||||
|
methods: ["GET"],
|
||||||
|
handler: async (_call: Call): Promise<Result> => {
|
||||||
|
const me = services.session.getUser();
|
||||||
|
const template = `
|
||||||
|
<html>
|
||||||
|
<head></head>
|
||||||
|
<body>
|
||||||
|
{{ me }}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
`;
|
||||||
|
|
||||||
|
const result = nunjucks.renderString(template, { me });
|
||||||
|
|
||||||
|
return {
|
||||||
|
code: httpCodes.success.OK,
|
||||||
|
contentType: contentTypes.text.html,
|
||||||
|
result,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "/ok",
|
path: "/ok",
|
||||||
methods: ["GET", "POST", "PUT"],
|
methods: ["GET", "POST", "PUT"],
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import { AuthService, InMemoryAuthStore } from "../auth";
|
import { AuthService, InMemoryAuthStore } from "../auth";
|
||||||
import { config } from "../config";
|
import { config } from "../config";
|
||||||
import { getLogs, log } from "../logging";
|
import { getLogs, log } from "../logging";
|
||||||
|
import { AnonymousUser, anonymousUser, type User } from "../user";
|
||||||
|
|
||||||
//const database = Client({
|
//const database = Client({
|
||||||
|
|
||||||
@@ -27,16 +28,24 @@ const misc = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const session = {
|
||||||
|
getUser: (): User => {
|
||||||
|
return anonymousUser;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
// Initialize auth with in-memory store
|
// Initialize auth with in-memory store
|
||||||
const authStore = new InMemoryAuthStore();
|
const authStore = new InMemoryAuthStore();
|
||||||
const auth = new AuthService(authStore);
|
const auth = new AuthService(authStore);
|
||||||
|
|
||||||
|
// Keep this asciibetically sorted
|
||||||
const services = {
|
const services = {
|
||||||
|
auth,
|
||||||
database,
|
database,
|
||||||
logging,
|
logging,
|
||||||
misc,
|
misc,
|
||||||
random,
|
random,
|
||||||
auth,
|
session,
|
||||||
};
|
};
|
||||||
|
|
||||||
export { services };
|
export { services };
|
||||||
|
|||||||
@@ -181,8 +181,19 @@ export class User {
|
|||||||
toJSON(): UserData {
|
toJSON(): UserData {
|
||||||
return { ...this.data };
|
return { ...this.data };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toString(): string {
|
||||||
|
return `User(id ${this.id})`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For representing "no user" in contexts where user is optional
|
// For representing "no user" in contexts where user is optional
|
||||||
export const AnonymousUser = Symbol("AnonymousUser");
|
export const AnonymousUser = Symbol("AnonymousUser");
|
||||||
|
|
||||||
|
export const anonymousUser = User.create("anonymous@example.com", {
|
||||||
|
id: "-1",
|
||||||
|
displayName: "Anonymous User",
|
||||||
|
// FIXME: set createdAt and updatedAt to start of epoch
|
||||||
|
});
|
||||||
|
|
||||||
export type MaybeUser = User | typeof AnonymousUser;
|
export type MaybeUser = User | typeof AnonymousUser;
|
||||||
|
|||||||
Reference in New Issue
Block a user