auth0-extensions/auth0-delegated-administration-extension

View on GitHub
server/routes/me.js

Summary

Maintainability
A
0 mins
Test Coverage
import express from 'express';
import logger from '../lib/logger';
import * as constants from '../constants';

export default (scriptManager) => {
  const api = express.Router();
  api.get('/', (req, res) => {
    let role = 0;

    if (req.user.scope.indexOf(constants.ADMIN_PERMISSION) >= 0) {
      role = 3;
    } else if (req.user.scope.indexOf(constants.OPERATOR_PERMISSION) >= 0) {
      role = 2;
    } else if (req.user.scope.indexOf(constants.USER_PERMISSION) >= 0) {
      role = 1;
    }

    const me = {
      createMemberships: false,
      memberships: [],
      role
    };

    const membershipContext = {
      request: {
        user: req.user
      },
      payload: {
        user: req.user
      }
    };

    scriptManager.execute('memberships', membershipContext)
      .then(result => {
        if (result && Array.isArray(result)) {
          me.memberships = result;
        } else if (result) {
          me.createMemberships = result.createMemberships || false;
          me.memberships = result.memberships || [];
        }

        return res.json(me);
      })
      .catch(err => {
        logger.error(err.message);
        res.json(me);
      });
  });

  return api;
};