view http/src/luan/modules/http/Dump_mod.luan @ 507:40e18d335da9

fix http/dump
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 May 2015 17:03:57 -0600
parents http/src/luan/modules/http/dump.luan@ab9c2afefb47
children ca169567ce07
line wrap: on
line source

local Luan = require "luan:Luan"
local pairs = Luan.pairs
local ipairs = Luan.ipairs
local Io = require "luan:Io"
local Http = require "luan:http/Http"
java()
local HttpServicer = require "java:luan.modules.http.HttpServicer"

local M = {}

local to_http_header_name = HttpServicer.toHttpHeaderName
M.to_http_header_name = to_http_header_name

function M.respond()
	Http.response.header.content_type = "text/plain"
	Io.stdout = Http.response.text_writer()

	local method = Http.request.method
	local path = Http.request.path
	local query = Http.request.query_string()
	if method ~= "POST" and query ~= nil then
		path = path.."?"..query
	end
%>
<%=method%> <%=path%> <%=Http.request.protocol%> 
<%
	M.dump_headers(Http.request.headers)
%>

<%
	if method == "POST" and query ~= nil then
%>
<%=query%>
<%
	end
end


function M.dump_headers(headers)
	for name, values in pairs(headers) do
		local header_name = to_http_header_name(name)
		for _, value in ipairs(values) do
%>
<%=header_name%>: <%=value%>
<%
		end
	end
end

return M