committing initial code. It was a fun day!

Gemini is very nice and simple <3
This commit is contained in:
Egidijus Lileika
2021-02-06 17:59:11 +02:00
parent b9fc631211
commit 69435b34a5
9 changed files with 392 additions and 1 deletions

41
Cuipod/Response.cs Normal file
View File

@@ -0,0 +1,41 @@
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);
}
}
}