added tests for backend, router dom to frontend
This commit is contained in:
+71
-42
@@ -1,13 +1,20 @@
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using MySql.Data.MySqlClient;
|
||||
/* using System.Threading; */
|
||||
|
||||
|
||||
namespace Server
|
||||
{
|
||||
class Program
|
||||
{
|
||||
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);
|
||||
}
|
||||
static void Main()
|
||||
{
|
||||
// create server
|
||||
@@ -27,17 +34,10 @@ namespace Server
|
||||
Console.WriteLine("Server is listening on http://localhost:5000/");
|
||||
while (true)
|
||||
{
|
||||
// wait for request
|
||||
HttpListenerContext context = listener.GetContext();
|
||||
// get response and request
|
||||
HttpListenerRequest request = context.Request;
|
||||
HttpListenerResponse response = context.Response;
|
||||
// mysql connection
|
||||
string connectionString = "server=127.0.0.1;uid=monty;pwd=some_pass;database=timelog";
|
||||
MySqlConnection conn = new MySqlConnection(connectionString);
|
||||
|
||||
// url after localhost:5000/
|
||||
// i think the validation is unnecessry but the compiler doesn't
|
||||
string uri;
|
||||
if (request != null && request.Url != null)
|
||||
{
|
||||
@@ -47,44 +47,73 @@ namespace Server
|
||||
{
|
||||
return;
|
||||
}
|
||||
switch (uri)
|
||||
switch (request.HttpMethod)
|
||||
{
|
||||
case "/api/reset":
|
||||
Reset.run(conn, request, response);
|
||||
case "GET":
|
||||
switch (uri)
|
||||
{
|
||||
case "/api/reset":
|
||||
Reset.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/getall":
|
||||
/* Thread clientThread = new Thread(() => Getall.HandleRequest(request, response)); */
|
||||
/* clientThread.Start(); */
|
||||
Getall.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/gettopten":
|
||||
Gettopten.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/getuser":
|
||||
Getuser.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/createp":
|
||||
CreateProcedure.HandleRequest(request, response);
|
||||
break;
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "/api/getall":
|
||||
Getall.run(conn, request, response);
|
||||
break;
|
||||
case "/api/gettopten":
|
||||
Gettopten.run(conn, request, response);
|
||||
break;
|
||||
case "/api/getuser":
|
||||
Getuser.run(conn, request, response);
|
||||
break;
|
||||
case "/api/createp":
|
||||
CreateProcedure.run(conn, request, response);
|
||||
break;
|
||||
case "/api/register":
|
||||
Register.run(conn, request, response);
|
||||
break;
|
||||
case "/api/login":
|
||||
Console.WriteLine("111");
|
||||
Login.run(conn, request, response);
|
||||
break;
|
||||
case "/api/createlog":
|
||||
CreateLog.run(conn, request, response);
|
||||
case "POST":
|
||||
if (request.HasEntityBody)
|
||||
switch (uri)
|
||||
{
|
||||
case "/api/register":
|
||||
Register.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/login":
|
||||
Login.HandleRequest(request, response);
|
||||
break;
|
||||
case "/api/createlog":
|
||||
CreateLog.HandleRequest(request, response, context);
|
||||
break;
|
||||
default:
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMissingPath(response);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
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);
|
||||
HandleMissingPath(response);
|
||||
break;
|
||||
}
|
||||
// send the response
|
||||
response.OutputStream.Close();
|
||||
|
||||
// try catch is neccessary because if you send a post with no
|
||||
// body the HTTPLIstener sends response automatically. Which
|
||||
// would crash the server since i try to send response but
|
||||
// respose has already been sent. It took me only 2 hours :)
|
||||
/* try */
|
||||
/* { */
|
||||
/* // send the response */
|
||||
/* response.OutputStream.Close(); */
|
||||
/* } */
|
||||
/* catch */
|
||||
/* { */
|
||||
/* Console.WriteLine("Tried sending post with no body"); */
|
||||
/* } */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user