will-core
Version:
core module
58 lines (57 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CaptchaHandler = void 0;
const will_api_1 = require("will-api");
const will_lib_1 = require("will-lib");
const VerifyError_1 = require("../models/VerifyError");
const SchemeHandler_1 = require("./SchemeHandler");
class CaptchaHandler extends SchemeHandler_1.SchemeHandler {
constructor() {
super(...arguments);
this.model = { name: "tcaptcha", alias: { privateAlias: this.section } };
//declared addon actions name
this.handlers = [{ name: "verify" }];
}
async verify(context) {
return this.callFunctional(context, { operate: "verify", raw: false }, this.doVerify);
}
async doCreate(context, model) {
let pcapid = context.params.capid;
let db = this.getPrivateConnector(model);
try {
let caplib = new will_lib_1.CaptchaLibrary();
let cap = await caplib.createCaptcha(db, pcapid);
return { records: 1, rows: { id: cap.id, src: cap.src }, columns: null };
}
catch (ex) {
this.logger.error(this.constructor.name, ex);
return Promise.reject(this.getDBError(ex));
}
finally {
if (db)
db.close();
}
}
async doVerify(context, model) {
let pcapid = context.params.capid;
let panswer = context.params.answer;
if ((!pcapid || pcapid.trim().length == 0) || (!panswer || panswer.trim().length == 0)) {
return Promise.reject(new VerifyError_1.VerifyError("Parameters is undefined", will_api_1.HTTP.NOT_ACCEPTABLE, -16020));
}
let db = this.getPrivateConnector(model);
try {
let caplib = new will_lib_1.CaptchaLibrary();
let result = await caplib.verifyCaptcha(db, pcapid, panswer);
return { records: 1, rows: { result: result }, columns: null };
}
catch (ex) {
this.logger.error(this.constructor.name, ex);
return Promise.reject(this.getDBError(ex));
}
finally {
if (db)
db.close();
}
}
}
exports.CaptchaHandler = CaptchaHandler;