clonegur/src/index.ts
2023-06-26 16:46:12 +03:00

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();