This repository has been archived on 2023-03-22. You can view files and clone it, but cannot push or open issues or pull requests.
cuipod/Cuipod/Response.cs

59 lines
1.4 KiB
C#

using System;
using System.IO;
using System.Text;
namespace Cuipod
{
public class Response
{
public StatusCode Status { get; set; }
private string _directoryToServe;
private string _requestBody = "";
public Response(string directoryToServe)
{
_directoryToServe = directoryToServe;
Status = StatusCode.Success;
}
public void RenderPlainTextLine(string text)
{
_requestBody += text + "\r\n";
}
public void RenderFileContent(string relativePathToFile)
{
_requestBody += File.ReadAllText(_directoryToServe + relativePathToFile, Encoding.UTF8) + "\r\n";
}
public void SetRedirectURL(string route)
{
_requestBody = route + "\r\n";
}
public void SetInputHint(string hint)
{
_requestBody = hint + "\r\n";
}
internal static string WriteHeader(StatusCode statusCode)
{
return ((int)statusCode).ToString() + " ";
}
internal byte[] Encode()
{
string wholeResponse = ((int)Status).ToString() + " ";
if (Status == StatusCode.Success)
{
wholeResponse += "text/gemini\r\n";
}
wholeResponse += _requestBody;
Console.WriteLine(wholeResponse);
return Encoding.UTF8.GetBytes(wholeResponse);
}
}
}