|
| 1 | +const { |
| 2 | + createRest, |
| 3 | + printRoutes, |
| 4 | + flattenRoutes, |
| 5 | + get, |
| 6 | + post, |
| 7 | + put, |
| 8 | + patch, |
| 9 | + destroy, |
| 10 | + scope, |
| 11 | + childs, |
| 12 | + resources, |
| 13 | + resource, |
| 14 | + member, |
| 15 | +} = require('../dist/index') |
| 16 | + |
| 17 | + |
| 18 | +const routes = { |
| 19 | + childs: { |
| 20 | + users: { |
| 21 | + generate: 'resources', |
| 22 | + controller: 'Users', |
| 23 | + id: 'username', |
| 24 | + only: ['read', 'index'], |
| 25 | + before: [], |
| 26 | + after: [], |
| 27 | + childs: {}, |
| 28 | + member: { |
| 29 | + followers: { |
| 30 | + generate: 'get', |
| 31 | + handler: 'followersList', |
| 32 | + }, |
| 33 | + following: { |
| 34 | + generate: 'resources', |
| 35 | + handler: 'followingList', |
| 36 | + }, |
| 37 | + }, |
| 38 | + }, |
| 39 | + user: { |
| 40 | + generate: 'resource', |
| 41 | + controller: 'CurrentUser', |
| 42 | + only: ['read', 'update'], |
| 43 | + before: [], |
| 44 | + after: [], |
| 45 | + childs: { |
| 46 | + emails: { |
| 47 | + generate: 'resource', |
| 48 | + controller: 'CurrentUserEmails', |
| 49 | + // only: ['read', 'create', 'destroy'], |
| 50 | + except: ['update'], |
| 51 | + before: [], |
| 52 | + after: [], |
| 53 | + childs: { |
| 54 | + // visibility: { |
| 55 | + // generate: 'handlers', |
| 56 | + // handlers: { |
| 57 | + // PATCH: { |
| 58 | + // name: 'toggleVisibility', |
| 59 | + // }, |
| 60 | + // }, |
| 61 | + // }, |
| 62 | + visibility: { |
| 63 | + generate: 'patch', |
| 64 | + handler: 'toggleVisibility', |
| 65 | + // controller will auto resolved |
| 66 | + }, |
| 67 | + }, |
| 68 | + }, |
| 69 | + followers: { |
| 70 | + generate: 'get', |
| 71 | + handler: 'myFollowers', |
| 72 | + }, |
| 73 | + following: { |
| 74 | + generate: 'resources', |
| 75 | + controller: 'UserFollowing', |
| 76 | + only: ['index', 'read'], |
| 77 | + id: 'username', |
| 78 | + }, |
| 79 | + }, |
| 80 | + }, |
| 81 | + }, |
| 82 | +} |
| 83 | + |
| 84 | +const routesGenerated = createRest({}, |
| 85 | + resources('users', { id: 'username', only: ['read', 'index'] }), |
| 86 | + resource('user', { controller: 'CurrentUser', only: ['read', 'update'] }, |
| 87 | + resource('emails', { except: ['update'] }, |
| 88 | + // handlers('visibility', {}, { PATCH: { name: 'toggleVisibility' } }) |
| 89 | + patch('visibility', { handler: 'toggleVisibility' }) |
| 90 | + ) |
| 91 | + ) |
| 92 | +) |
| 93 | + |
| 94 | +console.log(routes, routesGenerated) |
0 commit comments