UNPKG

will-core

Version:
58 lines (57 loc) 2.27 kB
"use strict"; 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;