1
1
const AbstractApiGenerator = require ( '../openapi' ) ;
2
+ const { isPaginationEnabled } = require ( '../helpers' ) ;
2
3
const utils = require ( '../utils' ) ;
3
4
4
5
function addDefinitionToSchemas ( schemas , definition , model , modelName ) {
@@ -93,7 +94,7 @@ class OpenApiV3Generator extends AbstractApiGenerator {
93
94
getOperationsRefs ( service , model ) {
94
95
const modelList = `${ model } _list` ;
95
96
const refs = {
96
- findResponse : modelList ,
97
+ findResponse : isPaginationEnabled ( service ) ? ` ${ model } _pagination` : modelList ,
97
98
getResponse : model ,
98
99
createRequest : model ,
99
100
createResponse : model ,
@@ -414,7 +415,7 @@ class OpenApiV3Generator extends AbstractApiGenerator {
414
415
} ;
415
416
}
416
417
417
- applyDefinitionsToSpecs ( service , model , modelName ) {
418
+ applyDefinitionsToSpecs ( service , model , modelName , refs ) {
418
419
if ( typeof service . docs . definition !== 'undefined' ) {
419
420
addDefinitionToSchemas ( this . specs . components . schemas , service . docs . definition , model , modelName ) ;
420
421
}
@@ -433,6 +434,22 @@ class OpenApiV3Generator extends AbstractApiGenerator {
433
434
this . config . defaults . schemasGenerator ( service , model , modelName , this . specs . components . schemas )
434
435
) ;
435
436
}
437
+ if ( isPaginationEnabled ( service ) &&
438
+ refs . findResponse === `${ model } _pagination` &&
439
+ typeof this . specs . components . schemas [ `${ model } _list` ] !== 'undefined' &&
440
+ typeof this . specs . components . schemas [ `${ model } _pagination` ] === 'undefined'
441
+ ) {
442
+ this . specs . components . schemas [ `${ model } _pagination` ] = {
443
+ title : `${ modelName } pagination result` ,
444
+ type : 'object' ,
445
+ properties : {
446
+ total : { type : 'integer' } ,
447
+ limit : { type : 'integer' } ,
448
+ skip : { type : 'integer' } ,
449
+ data : { $ref : `#/components/schemas/${ model } _list` }
450
+ }
451
+ } ;
452
+ }
436
453
}
437
454
438
455
getPathParameterSpec ( name ) {
0 commit comments