BaseController:subclass( "ServiceController", { registry = {}, models = {"subscribers"} } ) function fail(msg) std.json() std.t(JSON.encode({error = msg})) end function result(obj) std.json() std.t(JSON.encode({result = obj, error = false})) end function ServiceController:sendmail() if not REQUEST.json then fail("unknown request") end local rq = (JSON.decodeString(REQUEST.json)) local to = "mrsang@lxsang.me" local from = "From: " .. rq.email .. "\n" local suject = "Subject: " .. rq.subject .. "\n" local content = "Contact request from:" .. rq.name .. "\n Email: " .. rq.email .. "\n" .. rq.content .. "\n" local cmd = 'echo "' .. utils.escape(from .. suject .. content) .. '"| sendmail ' .. to --print(cmd) local r = os.execute(cmd) if r then result(r) else fail("Cannot send email at the moment, the service may be down") end return false end function ServiceController:subscribe() if not REQUEST.json then fail("unknown request") end local rq = (JSON.decodeString(REQUEST.json)) -- check if email is exist local data = self.subscribers:find({exp = {["="] = {email = rq.email}}}) if data and #data > 0 then fail("You are already/previously subscribed") else -- save to database self.subscribers:create(rq) result("Ok") end return false end