Added a trapezium calculator
[olly_site.git] / calculate_button_trapezium.html.jst
1 let querystring = require('querystring')
2 let stream_buffers = require('stream-buffers')
3
4 return async env => {
5   if (env.request.method == 'POST') {
6     let write_stream = new stream_buffers.WritableStreamBuffer()
7     let data = new Promise(
8       (resolve, reject) => {
9         write_stream.
10         on('finish', () => {resolve(write_stream.getContents())}).
11         on('error', () => {reject()})
12       }
13     )
14     env.request.pipe(write_stream)
15     let query = querystring.parse((await data).toString())
16     let a_length = parseFloat(query.a_length)
17     let b_length = parseFloat(query.b_length)
18     let height = parseFloat(query.height)
19     let area = (a_length + b_length) / 2 * height
20    
21     _site.serve(
22       env,
23       200,
24       `<!DOCTYPE html>
25 <html>
26 <head>
27 <title>Hello World HTML</title>
28 </head>
29 <body>
30 <h1>The Height is: ${height} units</h1>
31 <h1>The A length is: ${a_length} units</h1>
32 <h1>The B length is: ${b_length} units</h1>
33 <h1>The area is: ${area} units<sup>2</sup></h1>
34 </body>
35 </html>
36 `,
37       'calculatebutton.html.jst'
38     )
39   }
40   else {
41     _site.serve(
42       env,
43       200,
44       `<!DOCTYPE html>
45 <html>
46 <head>
47 <title>Hello World HTML</title>
48 </head>
49 <body>
50 <h1>Error - Unable to Calculate</h1>
51 </body>
52 </html>
53 `,
54       'calculatebutton.html.jst'
55     )
56   }
57 }
58