31 lines
999 B
TypeScript
31 lines
999 B
TypeScript
import { Collection, MongoClient } from "https://deno.land/x/mongo@v0.31.2/mod.ts";
|
|
import UserRouter from "./routers/UserRouter.ts";
|
|
import { Router, rest, route } from "./server/Server.ts";
|
|
import User from "./models/User.ts";
|
|
import Response from "./server/Response.ts";
|
|
|
|
class RootRouter extends Router {
|
|
@route('users/*') users: UserRouter;
|
|
|
|
@rest('*', '*')
|
|
default() {
|
|
return new Response().body(new Blob(['Page not found :/'])).status(404);
|
|
}
|
|
|
|
constructor(salt: string, users: Collection<User>) {
|
|
super();
|
|
this.users = new UserRouter(salt, users);
|
|
}
|
|
}
|
|
|
|
export default async function clonegur() {
|
|
const salt = new TextDecoder().decode(await Deno.readFile('keys/salt.txt'));
|
|
const db = await new MongoClient().connect({
|
|
db: 'clonegur',
|
|
servers: [ { host: '127.0.0.1', port: 27017 } ]
|
|
});
|
|
await new RootRouter(salt, db.collection('users')).attach(Deno.listen({ port: 4000, hostname: 'localhost' }));
|
|
}
|
|
|
|
clonegur();
|