Mercurial Hosting > freedit
view src/api/Api.luan @ 43:298c71e0c854
caching
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 09 Nov 2022 23:05:01 -0700 |
parents | 9166f6a14021 |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local new_error = Luan.new_error or error() local Parsers = require "luan:Parsers.luan" local json_string = Parsers.json_string or error() local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" local Api = {} function Api.api(fn) return function() Io.stdout = Http.response.text_writer() try local rtn = fn() %><%=json_string(rtn)%><% catch e if e.error ~= nil then %><%=json_string(e.error)%><% return end e.throw() end end end function Api.user_error(msg) local e = new_error(msg) e.error = { okay = false error = msg } e.throw() end return Api