1 let captchagen = require('captchagen')
2 let util = require('util')
3 let XDate = require('xdate')
6 let get_session = await _require('/_lib/get_session.jst')
8 let captcha = captchagen.create()
11 let transaction = await env.site.database.Transaction()
13 let root = await transaction.get({})
14 let session = await get_session(env, root)
16 // store captcha text in the session for validation when form submitted
17 let expires = new XDate(env.now)
21 {text: captcha.text(), expires: expires.getTime()}
24 await transaction.commit()
27 transaction.rollback()
33 let captcha_buffer = util.promisify(captcha.buffer).bind(captcha)
34 env.site.serve(env, 200, await captcha_buffer(), 'verification_image.png.jst')