UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

49 lines (48 loc) 1.39 kB
"use strict"; 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;