@avonjs/avonjs
Version:
A fluent Node.js API generator.
56 lines (55 loc) • 1.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const QueryParameter_1 = __importDefault(require("../Http/Requests/QueryParameter"));
const AuthorizedToSee_1 = __importDefault(require("../Mixins/AuthorizedToSee"));
class Filter extends (0, AuthorizedToSee_1.default)(QueryParameter_1.default) {
/**
* The help text for the filter.
*/
helpText = 'Filter records by exact value match.';
/**
* Get the query parameter key for filter.
*/
key() {
return this.constructor.name;
}
/**
* Specify the filter help text.
*/
help(helpText) {
this.helpText = helpText;
return this;
}
/**
* Serialize parameters for schema.
*/
serializeParameters(request) {
return [
{
name: `filters[${this.key()}]`,
in: 'query',
explode: true,
style: 'deepObject',
description: this.helpText,
allowEmptyValue: this.isNullable(),
schema: this.schema(request),
},
];
}
/**
* Get the swagger-ui schema.
*/
schema(request) {
return {
type: 'string',
nullable: this.isNullable(),
};
}
canSee(callback) {
return super.canSee(callback);
}
}
exports.default = Filter;