Create service dockerising stuff
This commit is contained in:
49
user-service/main.ts
Normal file
49
user-service/main.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { Router } from 'oak';
|
||||
import { CGGService } from 'cgg/Application.ts';
|
||||
import { createUserSessionToken } from 'lib/jwt.ts';
|
||||
import { USER_TOKEN } from 'common/constsAndEnums.ts';
|
||||
import { User } from './data.ts';
|
||||
import { bodyExists } from '../middleware/bodyExists.ts';
|
||||
|
||||
const app = new CGGService({ prefix: '/users' });
|
||||
|
||||
app.route(new Router()
|
||||
.post('/signup', bodyExists, async ctx => {
|
||||
const userData = await ctx.request.body({ type: 'json' }).value;
|
||||
console.log(userData);
|
||||
const user = new User({
|
||||
username: userData.username
|
||||
});
|
||||
user.password = await (user as any).generateHash(userData.password);
|
||||
await user.save();
|
||||
ctx.response.status = 200;
|
||||
})
|
||||
.post('/signin', bodyExists, async ctx => {
|
||||
const userData = await ctx.request.body({ type: 'json' }).value;
|
||||
const user = await User.findOne({username: userData.username});
|
||||
const pwValid = user && await (user as any).validatePassword(userData.password);
|
||||
if (user && pwValid) {
|
||||
ctx.cookies.set(USER_TOKEN, await createUserSessionToken({username: user.username}))
|
||||
ctx.response.body = `User ${user.username} signed in`;
|
||||
} else {
|
||||
ctx.response.status = 403;
|
||||
ctx.response.body = "How dare you???"
|
||||
}
|
||||
})
|
||||
.get('/me', ctx => {
|
||||
ctx.response.body = ctx.state.user?.username || 'You are not signed in';
|
||||
})
|
||||
.get('/:id', ctx => {
|
||||
ctx.response.body = ctx.params.id;
|
||||
})
|
||||
)
|
||||
// .post('/signup', ctx => {
|
||||
// // ctx.
|
||||
// }))
|
||||
// app.route(routes)
|
||||
|
||||
// app.use(routes.routes());
|
||||
// app.use(routes.allowedMethods());
|
||||
|
||||
app.start();
|
||||
console.log('User service running on ' + Deno.args.at(0));
|
Reference in New Issue
Block a user