diff --git a/api/src/api.ts b/api/src/api.ts index b7d59d4..2f2e056 100644 --- a/api/src/api.ts +++ b/api/src/api.ts @@ -22,17 +22,17 @@ export default function createApi(log: Log, pg: Pg, discogs) { const app = new koa(); const server = http.createServer(app.callback()); - // app.use(async (ctx, next) => { - // try { - // await next(); - // } catch (err) { - // log.error(err); - // ctx.status = err.statusCode || err.status || 500; - // ctx.body = { - // message: err.message - // }; - // } - // }); + app.use(async (ctx, next) => { + try { + await next(); + } catch (err) { + log.error(err); + ctx.status = err.statusCode || err.status || 500; + ctx.body = { + error: err.message + }; + } + }); const router = koaRouter(); @@ -128,7 +128,7 @@ export default function createApi(log: Log, pg: Pg, discogs) { const { id } = ctx.request.params; const user = await pg.userFindId(id); - // if (!user) return ctx.response.status = 404; + ctx.assert(user, 404, `user ${id} not found`); const bundles = (await getBundles()) .map(b => { diff --git a/api/src/auth.passport.ts b/api/src/auth.passport.ts deleted file mode 100644 index df1ca22..0000000 --- a/api/src/auth.passport.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { KoaPassport } from 'koa-passport'; -import { Strategy as LocalStrategy } from 'passport-local'; - -export default function authService(pg) { - const passport = new KoaPassport(); - - passport.serializeUser((user, done) => done(null, user.id)); - passport.deserializeUser((id, done) => { - pg.userFindId(id) - .then(u => done(null, u)) - .catch(e => done(e, null)); - }) - - passport.use(new LocalStrategy( - { usernameField: 'email '}, - function localStrategy(email, password, done) { - pg.userFindEmail(email) - .then(user => { - if (!user) return done(null, false); - // if (!user.verifyPassword(password)) return done(null, false); - return done(null, user); - }) - .catch(e => done(e, null)); - } - )); - - return passport; -} diff --git a/api/src/routers/router.auth.ts b/api/src/routers/router.auth.ts index 6b55cd9..c3e8f21 100644 --- a/api/src/routers/router.auth.ts +++ b/api/src/routers/router.auth.ts @@ -38,7 +38,7 @@ export default function authRouter(log, pg: Pg) { authRouter.post('/login', async (ctx, next) => { await passport.authenticate('local', (err, user, info, status) => { - ctx.assert(user, 401, { error: 'incorrect login' }); + ctx.assert(user, 401, 'incorrect login'); ctx.login(user); ctx.status = 200; @@ -50,11 +50,12 @@ export default function authRouter(log, pg: Pg) { }); authRouter.get('/login', async (ctx, next) => { - ctx.assert(ctx.isAuthenticated(), 401, { error: 'log in required' }); + ctx.assert(ctx.isAuthenticated(), 401, 'log in required'); const user = ctx.state.user; ctx.status = 200; ctx.body = { + id: user.id, email: user.email, discogs: user.discogs, }; @@ -68,6 +69,7 @@ export default function authRouter(log, pg: Pg) { ctx.login(user); ctx.status = 200; ctx.body = { + id: user.id, email: user.email, discogs: user.discogs, }; diff --git a/client/src/actions.ts b/client/src/actions.ts index b09002e..042d210 100644 --- a/client/src/actions.ts +++ b/client/src/actions.ts @@ -6,22 +6,22 @@ const api = axios.create({ }); const actions = { - getBundles: async () => { + getBundles: async function getBundles() { const { data: bundles } = await api.get('/bundles'); return bundles; }, - getUserOffers: async (state, userId) => { + getUserOffers: async function getUserOffers(state, userId) { const { data: offers } = await api.get(`/user/${userId}/offers`); return offers; }, - getOffers: async (userId) => { + getOffers: async function getOffers(userId) { const { data } = await api.get(`/user/${userId}/offers`); return data; }, - getLogin: async () => { + getLogin: async function getLogin() { try { const { data: user } = await api.get('/auth/login') console.log(user); @@ -31,16 +31,17 @@ const actions = { } }, - postLogin: async (email, password) => { + postLogin: async function postLogin(email, password) { const { data } = await api.post('/auth/login', { email, password, + // discogs, }); return data; }, - postRegister: async (email, password) => { + postRegister: async function postRegister(email, password) { const { data } = await api.post('/auth/register', { email, password, diff --git a/client/src/app.tsx b/client/src/app.tsx index 1c58479..9372b95 100644 --- a/client/src/app.tsx +++ b/client/src/app.tsx @@ -9,7 +9,6 @@ import Header from './components/header'; import Home from './routes/home'; import Login from './routes/login'; -import Register from './routes/register'; import Search from './routes/search'; import User from './routes/user'; @@ -22,6 +21,8 @@ function App() { async function getLogin() { const user = await actions.getLogin(); if (!user) return route('/login'); + setUser(user); + route('/'); } getLogin(); @@ -32,15 +33,15 @@ function App() { } return ( -