Coverage

100%
9
9
0

restful-router.js

100%
9
9
0
LineHitsSource
1/*!
2 * restful-router - lib/restful-router.js
3 * Copyright(c) 2012 fengmk2 <fengmk2@gmail.com>
4 * MIT Licensed
5 */
6
71"use strict";
8
9/**
10 * Module dependencies.
11 */
12
13/**
14 * Auto generate RESTful url routes.
15 *
16 * URL routes:
17 *
18 * GET /users => user.list()
19 * GET /users/new => user.new()
20 * GET /users/:id => user.show()
21 * GET /users/:id/edit => user.edit()
22 * POST /users => user.create()
23 * PUT /users/:id => user.update()
24 * DELETE /users/:id => user.destroy()
25 *
26 * @param {Object} app, must impl `app.get(), app.post(), app.put(), app.delete()`.
27 * @param {String} name, resource's name. like `users, posts, tweets`.
28 * @param {Object} mod, module contains `CRUD List` methods.
29 */
301module.exports = function restfulRouter(app, name, mod) {
312 var url = '/' + name;
322 var routes = [
33 [ 'get', url, 'list' ],
34 [ 'get', url + '/new', 'new' ],
35 [ 'get', url + '/:id', 'show' ],
36 [ 'get', url + '/:id/edit', 'edit' ],
37
38 [ 'post', url, 'create' ],
39 [ 'put', url + '/:id', 'update' ],
40 [ 'delete', url + '/:id', 'destroy' ],
41 ];
42
432 for (var i = 0; i < routes.length; i++) {
4414 var route = routes[i];
4514 var handle = mod[route[2]];
4614 if (typeof handle === 'function') {
478 app[route[0]](route[1], handle);
48 }
49 }
50};