@@ -3,6 +3,24 @@ import validate from '@nictool/validate'
33import Zone from '../lib/zone.js'
44import { meta } from '../lib/util.js'
55
6+ function zoneResponseFailAction ( request , h , err ) {
7+ const detail = err ?. details ?. find (
8+ ( d ) => Array . isArray ( d . path ) && d . path [ 0 ] === 'zone' && d . path [ 2 ] === 'zone' ,
9+ )
10+
11+ if ( detail ) {
12+ const index = detail . path [ 1 ]
13+ const badZone = request . response ?. source ?. zone ?. [ index ] ?. zone
14+ const badId = request . response ?. source ?. zone ?. [ index ] ?. id
15+
16+ if ( badZone !== undefined ) {
17+ err . message = `${ err . message } . Invalid zone value: "${ badZone } " (id: ${ badId ?? 'unknown' } )`
18+ }
19+ }
20+
21+ throw err
22+ }
23+
624function ZoneRoutes ( server ) {
725 server . route ( [
826 {
@@ -15,13 +33,14 @@ function ZoneRoutes(server) {
1533 } ,
1634 response : {
1735 schema : validate . zone . GET_res ,
18- failAction : 'log' ,
36+ failAction : zoneResponseFailAction ,
1937 } ,
2038 tags : [ 'api' ] ,
2139 } ,
2240 handler : async ( request , h ) => {
2341 const getArgs = {
2442 deleted : request . query . deleted === true ? 1 : 0 ,
43+ limit : 1000 ,
2544 }
2645 if ( request . params . id ) getArgs . id = parseInt ( request . params . id , 10 )
2746
@@ -48,7 +67,7 @@ function ZoneRoutes(server) {
4867 } ,
4968 response : {
5069 schema : validate . zone . GET_res ,
51- failAction : 'log' ,
70+ failAction : zoneResponseFailAction ,
5271 } ,
5372 tags : [ 'api' ] ,
5473 } ,
@@ -78,7 +97,7 @@ function ZoneRoutes(server) {
7897 } ,
7998 response : {
8099 schema : validate . zone . GET_res ,
81- failAction : 'log' ,
100+ failAction : zoneResponseFailAction ,
82101 } ,
83102 tags : [ 'api' ] ,
84103 } ,
0 commit comments