@avonjs/avonjs
Version:
A fluent Node.js API generator.
49 lines (48 loc) • 1.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Contracts_1 = require("../Contracts");
const Filter_1 = __importDefault(require("./Filter"));
class BooleanFilter extends Filter_1.default {
/**
* The help text for the filter.
*/
helpText = 'Select value to filter records.';
/**
* Apply the filter into the given repository.
*/
apply(request, repository, value) {
repository.where({
key: this.filterableAttribute(request),
operator: Contracts_1.Operator.eq,
value: this.isValidNullValue(value) ? null : this.parseBoolean(value),
});
}
/**
* Parse the input value into a boolean.
*/
parseBoolean(value) {
if (typeof value === 'string') {
return value.toLowerCase() === 'true';
}
if (typeof value === 'number') {
return value === 1;
}
if (typeof value === 'boolean') {
return value;
}
return false;
}
/**
* Get the swagger-ui schema.
*/
schema(request) {
return {
type: 'boolean',
nullable: this.isNullable(),
};
}
}
exports.default = BooleanFilter;