@atlasrender/render-plugin
Version:
Atlas Render Farm Manager plugin system.
60 lines • 2.63 kB
JavaScript
;
/*
* Copyright (c) 2020. This code created and belongs to Pathfinder render manager project.
* Owner and project architect: Danil Andreev | danssg08@gmail.com | https://github.com/DanilAndreev
* File creator: Danil Andreev
* Project: atlas-render-plugin
* File last modified: 11/12/20, 5:23 PM
* All rights reserved.
*/
Object.defineProperty(exports, "__esModule", { value: true });
const ValidationError_1 = require("../errors/ValidationError");
const FloatField_1 = require("./FloatField");
const _ = require("lodash");
const errors_1 = require("../errors");
/**
* IntegerField - class, designed to create integer plugin setting.
* @class
* @author Danil Andreev
*/
class IntegerField extends FloatField_1.default {
/**
* Creates an instance of IntegerField.
* @param setting - Object with payload to construct entity.
* @throws ValidationError
* @author Danil Andreev
*/
constructor(setting) {
super(setting);
this.setType("integer");
if (this.min != null && !this.validation.errorOn("min") && !_.isInteger(setting.min))
this.validation.reject("min", "integer", { message: "Min value must be integer type.", status: errors_1.Validator.Codes.INVALID_INTEGER });
if (this.max != null && !this.validation.errorOn("max") && !_.isInteger(setting.max))
this.validation.reject("max", "integer", { message: "Max value must be integer type.", status: errors_1.Validator.Codes.INVALID_INTEGER });
if (this.default != null && !this.validation.errorOn("default") && !_.isInteger(setting.default))
this.validation.reject("default", "integer", { message: "Default value must be integer type.", status: errors_1.Validator.Codes.INVALID_INTEGER });
}
validatePayload(payload) {
let validationError = null;
let interpreted = null;
try {
interpreted = super.validatePayload(payload);
}
catch (error) {
if (!(error instanceof ValidationError_1.default))
throw error;
validationError = error;
}
finally {
if (!validationError)
validationError = new ValidationError_1.default("Incorrect payload.", undefined, { id: this.id });
}
if (!_.isInteger(interpreted))
validationError.reject("type", "integer", { got: interpreted, message: "Value is not integer" });
if (validationError.hasErrors())
throw validationError;
return payload;
}
}
exports.default = IntegerField;
//# sourceMappingURL=IntegerField.js.map