Edit in JSFiddle

const plsql = require('../oracle/oracle-plsql')
const express = require('express')
const router = express.Router()
const authz = require('../middleware/authz')

let getCtx = function (req) {
  return { user_id: req.user.id }
}

router.get('/readAll/:pkg', authz(), async (req, res, next) => {
  try {
    const items = await plsql.readAll(req.params.pkg, req.query, getCtx(req))
    res.send(items)
  } catch (err) {
    return next(err)
  }
})

router.get('/read/:pkg/:id', authz(), async (req, res, next) => {
  try {
    const items = await plsql.read(req.params.pkg, req.params.id, getCtx(req))
    res.send(items)
  } catch (err) {
    return next(err)
  }
})

router.post('/create/:pkg', authz(), async (req, res, next) => {
  try {
    const items = await plsql.create(req.params.pkg, req.body, getCtx(req))
    res.send(items)
  } catch (err) {
    return next(err)
  }
})

router.put('/update/:pkg/:id', authz(), async (req, res, next) => {
  try {
    const items = await plsql.update(req.params.id, req.params.pkg, req.body, getCtx(req))
    res.send(items)
  } catch (err) {
    return next(err)
  }
})

router.delete('/delete/:pkg/:id', authz(), async (req, res, next) => {
  try {
    const items = await plsql.delete(req.params.pkg, req.params.id, getCtx(req))
    res.send(items)
  } catch (err) {
    return next(err)
  }
})

router.post('/method/:pkg/:mth', authz(), async (req, res, next) => {
  try {
    const items = await plsql.method(req.params.pkg + '.' + req.params.mth, req.body, getCtx(req))
    res.send(items)
  } catch (err) {
    return next(err)
  }
})

module.exports = router