fighting weird bug with branches
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
|
||||
namespace Server;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
// create server
|
||||
HttpListener listener = new();
|
||||
// routes need to be added first
|
||||
listener.Prefixes.Add("http://localhost:5000/api/login/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/register/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/posts/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/posts/like/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/posts/unlike/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/comment/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/profile/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/profile/experience/");
|
||||
listener.Prefixes.Add("http://localhost:5000/api/profile/education/");
|
||||
// listen
|
||||
listener.Start();
|
||||
Console.WriteLine("Server is listening on http://localhost:5000/");
|
||||
while (true)
|
||||
{
|
||||
HttpListenerContext context = listener.GetContext();
|
||||
HttpListenerRequest request = context.Request;
|
||||
HttpListenerResponse response = context.Response;
|
||||
response.Headers.Add("Access-Control-Allow-Origin", "http://localhost:5173");
|
||||
response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
|
||||
response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Authorization");
|
||||
|
||||
// url after localhost:5000/
|
||||
string uri;
|
||||
if (request != null && request.Url != null)
|
||||
uri = request.Url.AbsolutePath;
|
||||
else
|
||||
return;
|
||||
switch (request.HttpMethod)
|
||||
{
|
||||
case "GET":
|
||||
HandleGet(uri, request, response);
|
||||
break;
|
||||
case "POST":
|
||||
HandlePost(uri, request, response);
|
||||
break;
|
||||
case "DELETE":
|
||||
HandleDelete(uri, request, response);
|
||||
break;
|
||||
case "PUT":
|
||||
HandlePut(uri, request, response);
|
||||
break;
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandlePut(
|
||||
string uri,
|
||||
HttpListenerRequest request,
|
||||
HttpListenerResponse response
|
||||
)
|
||||
{
|
||||
if (request.HasEntityBody)
|
||||
switch (uri)
|
||||
{
|
||||
case "/api/profile":
|
||||
UpdateProfile.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/education":
|
||||
UpdateEducation.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/experience":
|
||||
UpdateExperience.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/post":
|
||||
UpdatePost.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/comment":
|
||||
UpdateComment.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/posts/like":
|
||||
UpdatePost.HandleLikes(request, response);
|
||||
break;
|
||||
// case "/api/posts/unlike":
|
||||
// RemoveLike.HandleRequest(request, response);
|
||||
// break;
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMissingPath(response);
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleDelete(
|
||||
string uri,
|
||||
HttpListenerRequest request,
|
||||
HttpListenerResponse response
|
||||
)
|
||||
{
|
||||
if (request.HasEntityBody)
|
||||
switch (uri)
|
||||
{
|
||||
case "/api/profile":
|
||||
DeleteProfile.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/profile/education":
|
||||
DeleteEducation.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/profile/experience":
|
||||
DeleteExperience.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/posts":
|
||||
DeletePost.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/comment":
|
||||
DeleteComment.HandleRequest(request, response);
|
||||
break;
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMissingPath(response);
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandlePost(
|
||||
string uri,
|
||||
HttpListenerRequest request,
|
||||
HttpListenerResponse response
|
||||
)
|
||||
{
|
||||
if (request.HasEntityBody)
|
||||
switch (uri)
|
||||
{
|
||||
case "/api/profile":
|
||||
CreateProfile.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/profile/education":
|
||||
CreateEducation.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/profile/experience":
|
||||
CreateExperience.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/posts":
|
||||
CreatePost.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/comment":
|
||||
CreateComment.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/register":
|
||||
Register.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/login":
|
||||
Login.HandleRequest(request, response);
|
||||
break;
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMissingPath(response);
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleGet(
|
||||
string uri,
|
||||
HttpListenerRequest request,
|
||||
HttpListenerResponse response
|
||||
)
|
||||
{
|
||||
switch (uri)
|
||||
{
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleMissingPath(HttpListenerResponse response)
|
||||
{
|
||||
response.StatusCode = 404;
|
||||
string errorMessage = "Not Found";
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(errorMessage);
|
||||
response.ContentType = "text/plain";
|
||||
response.ContentLength64 = buffer.Length;
|
||||
response.OutputStream.Write(buffer, 0, buffer.Length);
|
||||
response.OutputStream.Write(buffer, 0, buffer.Length);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user