UNPKG

datocms-plugin-netlify-identity

Version:

A plugin that nicely displays Netlify identity user info instead of the raw ID

52 lines (40 loc) 1.45 kB
const fetch = require('./utils/fetchJson'); const responders = require('./utils/responders'); function generateHandler(accessToken) { return function handler(event, context) { try { const { id: userId } = event.queryStringParameters; if (event.httpMethod === 'OPTIONS') { return responders.succeed({}); } if (!userId) { return responders.fail('ID_PARAMETER_NEEDED', 'You need to pass an ID query string'); } if (event.httpMethod !== 'GET') { return responders.fail('INVALID_REQUEST', 'Invalid request!'); } const { authorization } = event.headers; const expectedAuthorization = `Bearer ${accessToken}`; if (authorization !== expectedAuthorization) { return responders.fail( 'ACCESS_TOKEN_REQUIRED', 'You need to pass an Authorization header with the correct access token', 401 ); } const { identity } = context.clientContext; const userUrl = `${identity.url}/admin/users/${userId}`; return fetch(userUrl, identity.token) .then(user => responders.succeed(user)) .catch((e) => { console.log(e); return responders.fail('EXCEPTION', e.message, e.code || 500) }); } catch(e) { console.log(e); console.log(e.stack); return responders.fail('EXCEPTION', e.message, 500) } } } module.exports = generateHandler;