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
Egidijus Lileika 69435b34a5 committing initial code. It was a fun day!
Gemini is very nice and simple <3
2021-02-06 17:59:11 +02:00

42 lines
1.0 KiB
C#

using System;
using System.IO;
using System.Text;
namespace Cuipod
{
public class Response
{
public StatusCode Status { get; internal 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";
}
internal static string WriteHeader(StatusCode statusCode)
{
return ((int)statusCode).ToString() + " text/gemini\r\n";
}
internal byte[] Encode()
{
string wholeResponse = WriteHeader(Status) + _requestBody;
return Encoding.UTF8.GetBytes(wholeResponse);
}
}
}