Mercurial Hosting > mailer
comparison src/send.json.luan @ 0:bd4802730bab
its working
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 18 May 2023 21:20:59 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bd4802730bab |
---|---|
1 local Luan = require "luan:Luan.luan" | |
2 local error = Luan.error | |
3 local new_error = Luan.new_error or error() | |
4 local stringify = Luan.stringify or error() | |
5 local Parsers = require "luan:Parsers.luan" | |
6 local json_parse = Parsers.json_parse or error() | |
7 local json_string = Parsers.json_string or error() | |
8 local Io = require "luan:Io.luan" | |
9 local Http = require "luan:http/Http.luan" | |
10 local Mail = require "luan:mail/Mail.luan" | |
11 local Logging = require "luan:logging/Logging.luan" | |
12 local logger = Logging.logger "send.json" | |
13 | |
14 | |
15 local function user_error(msg) | |
16 local e = new_error(msg) | |
17 e.error = { | |
18 okay = false | |
19 error = msg | |
20 } | |
21 e.throw() | |
22 end | |
23 | |
24 return function() | |
25 Io.stdout = Http.response.text_writer() | |
26 try | |
27 local server = Http.request.parameters.server or user_error "parameter 'server' missing" | |
28 local mail = Http.request.parameters.mail or user_error "parameter 'mail' missing" | |
29 try | |
30 server = json_parse(server) | |
31 catch e | |
32 user_error "invalid JSON in 'server'" | |
33 end | |
34 try | |
35 mail = json_parse(mail) | |
36 catch e | |
37 user_error "invalid JSON in 'mail'" | |
38 end | |
39 try | |
40 Mail.sender(server).send(mail) | |
41 catch e | |
42 logger.warn(e..stringify(server).."\n"..stringify(mail)) | |
43 user_error(e.get_message()) | |
44 end | |
45 %><%=json_string{okay=true}%><% | |
46 catch e | |
47 if e.error ~= nil then | |
48 %><%=json_string(e.error)%><% | |
49 return | |
50 end | |
51 e.throw() | |
52 end | |
53 end |