|
1 | | -exports.handler = async (event, context, callback) => { |
2 | | - const { action } = event.queryStringParameters |
3 | | - switch (action) { |
4 | | - case 'create': |
5 | | - return require('./create').handler(event, context, callback) |
6 | | - case 'read': |
7 | | - return require('./read').handler(event, context, callback) |
8 | | - case 'update': |
9 | | - return require('./update').handler(event, context, callback) |
10 | | - case 'delete': |
11 | | - return require('./delete').handler(event, context, callback) |
| 1 | +exports.handler = async (event, context) => { |
| 2 | + const path = event.path.replace(/\.netlify\/functions\/[^\/]+/, '') |
| 3 | + const segments = path.split('/').filter(e => e) |
| 4 | + |
| 5 | + switch (event.httpMethod) { |
| 6 | + case 'GET': |
| 7 | + if (segments.length === 0) { |
| 8 | + return require('./read-all').handler(event, context) |
| 9 | + } |
| 10 | + if (segments.length === 1) { |
| 11 | + event.id = segments[0] |
| 12 | + return require('./read').handler(event, context) |
| 13 | + } |
| 14 | + case 'POST': |
| 15 | + return require('./create').handler(event, context) |
| 16 | + case 'PUT': |
| 17 | + if (segments.length === 1) { |
| 18 | + event.id = segments[0] |
| 19 | + return require('./update').handler(event, context) |
| 20 | + } |
| 21 | + case 'DELETE': |
| 22 | + if (segments.length === 1) { |
| 23 | + event.id = segments[0] |
| 24 | + return require('./delete').handler(event, context) |
| 25 | + } |
12 | 26 | } |
13 | | - return { statusCode: 500, body: 'unrecognized action ' + action } |
| 27 | + return { statusCode: 500, body: 'unrecognized HTTP Method, must be one of GET/POST/PUT/DELETE' } |
14 | 28 | } |
0 commit comments