hostr/web/routes/index.js

57 lines
1.5 KiB
JavaScript
Raw Normal View History

2015-07-09 23:01:43 +01:00
import uuid from 'node-uuid';
import auth from '../lib/auth';
2018-06-02 15:50:39 +00:00
export async function main(ctx) {
if (ctx.session.user) {
if (ctx.query['app-token']) {
ctx.redirect('/');
2016-06-06 15:37:00 +01:00
return;
2015-07-09 23:01:43 +01:00
}
const token = uuid.v4();
2018-06-02 15:50:39 +00:00
await ctx.redis.set(token, ctx.session.user.id, 'EX', 604800);
ctx.session.user.token = token;
await ctx.render('index', { user: ctx.session.user });
2015-07-09 23:01:43 +01:00
} else {
2018-06-02 15:50:39 +00:00
if (ctx.query['app-token']) {
const user = await auth.fromToken(ctx, ctx.query['app-token']);
await auth.setupSession(ctx, user);
ctx.redirect('/');
} else if (ctx.cookies.r) {
const user = await auth.fromCookie(ctx, ctx.cookies.r);
await auth.setupSession(ctx, user);
ctx.redirect('/');
2015-07-09 23:01:43 +01:00
} else {
2018-06-02 15:50:39 +00:00
await ctx.render('marketing');
2015-07-09 23:01:43 +01:00
}
}
}
2018-06-02 15:50:39 +00:00
export async function staticPage(ctx, next) {
if (ctx.session.user) {
2015-07-09 23:01:43 +01:00
const token = uuid.v4();
2018-06-02 15:50:39 +00:00
await ctx.redis.set(token, ctx.session.user.id, 'EX', 604800);
ctx.session.user.token = token;
await ctx.render('index', { user: ctx.session.user });
2015-07-09 23:01:43 +01:00
} else {
2018-06-02 15:50:39 +00:00
switch (ctx.originalUrl) {
2016-06-06 15:37:00 +01:00
case '/terms':
2018-06-02 15:50:39 +00:00
await ctx.render('terms');
2016-06-06 15:37:00 +01:00
break;
case '/privacy':
2018-06-02 15:50:39 +00:00
await ctx.render('privacy');
2016-06-06 15:37:00 +01:00
break;
case '/pricing':
2018-06-02 15:50:39 +00:00
await ctx.render('pricing');
2016-06-06 15:37:00 +01:00
break;
case '/apps':
2018-06-02 15:50:39 +00:00
await ctx.render('apps');
2016-06-06 15:37:00 +01:00
break;
case '/stats':
2018-06-02 15:50:39 +00:00
await ctx.render('index', { user: {} });
2016-06-06 15:37:00 +01:00
break;
default:
2018-06-02 15:50:39 +00:00
await next();
2015-07-09 23:01:43 +01:00
}
}
}