{"_id":"@dolu/adonis-resource-middleware","_rev":"1-df51c2141940ce6116e427eea862ebb2","name":"@dolu/adonis-resource-middleware","dist-tags":{"latest":"1.2.0"},"versions":{"1.2.0":{"name":"@dolu/adonis-resource-middleware","version":"1.2.0","description":"Restful resource middleware for AdonisJs","main":"index.js","private":false,"scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/dolu89/adonis-resource-middleware.git"},"keywords":["AdonisJs","middleware","restful","resource"],"author":{"name":"Dolu","email":"dolu89@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/dolu89/adonis-resource-middleware/issues"},"homepage":"https://github.com/dolu89/adonis-resource-middleware#readme","dependencies":{"inflection":"^1.12.0","strip-ansi":"^5.2.0"},"devDependencies":{"japa":"^1.0.6"},"gitHead":"4ebe48cee39dde0054b31eea9fd9ed151da14416","_id":"@dolu/adonis-resource-middleware@1.2.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-yJXDAr5OyQ5EgqJfdzSPDtXQIWpQR7YugSs9PjO9h1hmoo8tPo/fOu6J9r2EPcSTnFZrmHRd/bdOXJtOD8OEBQ==","shasum":"e43707b5fb8b570b6303910372e48d90649590d8","tarball":"https://registry.npmjs.org/@dolu/adonis-resource-middleware/-/adonis-resource-middleware-1.2.0.tgz","fileCount":4,"unpackedSize":4606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2DIqCRA9TVsSAnZWagAAyDAP/i7zeGVro70UijTxQafg\nwqHm2Lhg1dLnvMK7J5gFDIcaMKHXz/lWnUdHXiX2n1BFBJD2+c9dkuQWwuBj\n0SxWI0k5egDVCLTj3bKcb/qpC+XNBYVD/Ry0yqgUjmo9VEj0LoZxwqZ4mvVe\nzXaMbZ8tZlCyNBvSGe10i0giqYxMSjYpVhcYGYzXP4UMq9yA0mYDZhO3j/sn\njk9QAWajnA0VWeSNESmhmL9LUTLmHbC6LmBzbdea4uQZF4f/+TnFSJ3uYrX8\n5GsQaF8uUF9tdv6J1W8DxDPn1Jkvi5wiqGQYjJoVSJ+E9kk9qM2Mty/I3WvH\nunfTzddiUxFl0sdpiHTNtFKfi9Wz3Q2l/zomZfXx1msoYwgs7sY1575I853f\nmMf8ZJHBPqnb0Kb36hogXtH3uZBbFS/sTLtGSqYc2YtBJmcKAJsCy/cQmsz4\nAnJzFCP+krcjPlApSHre4v8iX7Qd7rKHcY4+SS5HGRV8wNIhO7S6byDG0Sas\nbQ8Odh3nFDMDjw7ddujz5+MwSycw8I/B/toEgNIucCiliEEAW4voy00hiCUg\nbuyTTjg0/1QY3hKx165prlo9Me8fgLmVgKlHSYvkBtSt2TNfWqEgcsi6EHkA\nXLfU+3i8clV+Gf0Y5rQKLhtih7S+obMflhL+zOenDRJh8sTW1hLJgQXMstJ8\nly3Q\r\n=SCk4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3hWmTmYm4a9YYYoIG3O3FYiCO03twvMbKKsWb2dD+YwIhAPHoOnqoasoXlVWe1S5TFTRJ6y2Xnzji3+5oiep9qNsY"}]},"maintainers":[{"name":"dolu","email":"dolu89@gmail.com"}],"_npmUser":{"name":"dolu","email":"dolu89@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/adonis-resource-middleware_1.2.0_1557672489788_0.5100021209388259"},"_hasShrinkwrap":false}},"time":{"created":"2019-05-12T14:48:09.758Z","1.2.0":"2019-05-12T14:48:09.962Z","modified":"2022-04-05T05:09:28.027Z"},"maintainers":[{"name":"dolu","email":"dolu89@gmail.com"}],"description":"Restful resource middleware for AdonisJs","homepage":"https://github.com/dolu89/adonis-resource-middleware#readme","keywords":["AdonisJs","middleware","restful","resource"],"repository":{"type":"git","url":"git+https://github.com/dolu89/adonis-resource-middleware.git"},"author":{"name":"Dolu","email":"dolu89@gmail.com"},"bugs":{"url":"https://github.com/dolu89/adonis-resource-middleware/issues"},"license":"MIT","readme":"# adonis-resource-middleware\r\nRestful resource middleware for AdonisJs\r\n\r\n## Usage\r\n1. Install \r\n    ```bash\r\n      npm i -S @dolu/adonis-resource-middleware\r\n    ```\r\n1. Edit `/start/kernel.js`\r\n    ```javascript\r\n    const namedMiddleware = {\r\n      /* ... */\r\n      /* add a named middleware */\r\n      resource: 'adonis-resource-middleware',\r\n    }\r\n    ```\r\n\r\n1. In your `/start/routes.js`:\r\n    ```javascript\r\n    Route.get('/api/:resource', async ({ Model }) => {\r\n      /**\r\n       * `Model` is the Model class of the requested resource\r\n       * It convert the `:resource` in url parameters to single and camelcase class name\r\n       * so `/users` route means `use('App/Models/User')`\r\n       */\r\n      return await Model.paginate(1, 10)\r\n    }).middleware(['resource'])\r\n\r\n    /* Specify the resource name */\r\n    Route.get('/api/users').middleware(['resource:users'])\r\n\r\n    /* The 2nd param specify if throw exceptions automatically */\r\n    Route.get('/api/users').middleware(['resource:users,false'])\r\n\r\n    /* Also you can ignore the 1st param */\r\n    Route.get('/api/:resource').middleware(['resource:,false'])\r\n    \r\n\r\n    Route.get('/api/:resource/:id', async ({ model }) => {\r\n      /**\r\n       * `model` is the model instace of the requested resource\r\n       */\r\n      return model\r\n    }).middleware(['resource'])\r\n\r\n    /* also you can use `Route.resource` */\r\n    Route.resource('/api/:resource', 'ResourceController').middleware(['resource'])\r\n    ```\r\n\r\n## Handle Exceptions\r\n\r\nIt throws exceptions by default, also you can handle it, please check [The Official Docs of Handling Exceptions.](https://www.adonisjs.com/docs/4.1/exceptions#_handling_exceptions)\r\n\r\n1. `E_RESOURCE_MODEL_CLASS_NOT_FOUND`\r\n  If the model class does not exists in `App/Models/`.","readmeFilename":"README.md"}