From 926436860cd34dec9ccf3feac66e4c63bae7ba8f Mon Sep 17 00:00:00 2001 From: QkoSad Date: Wed, 4 Dec 2024 15:46:10 +0200 Subject: [PATCH] formated all files --- backendCs.Tests/.vscode/launch.json | 26 ++++ backendCs.Tests/.vscode/tasks.json | 41 +++++++ backendCs.Tests/UnitTest1.cs | 115 ++++++++++++++---- .../bin/Debug/net8.0/backendCs.Test.dll | Bin 15360 -> 17920 bytes .../bin/Debug/net8.0/backendCs.Test.pdb | Bin 13876 -> 14328 bytes .../net8.0/backendCs.Test.AssemblyInfo.cs | 2 +- .../backendCs.Test.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/net8.0/backendCs.Test.dll | Bin 15360 -> 17920 bytes .../obj/Debug/net8.0/backendCs.Test.pdb | Bin 13876 -> 14328 bytes .../obj/Debug/net8.0/ref/backendCs.Test.dll | Bin 9216 -> 9728 bytes .../Debug/net8.0/refint/backendCs.Test.dll | Bin 9216 -> 9728 bytes backendCs/Program.cs | 19 +-- backendCs/Route.cs | 66 +++++----- backendCs/bin/Debug/net8.0/TimelogBackend.dll | Bin 29184 -> 29184 bytes backendCs/bin/Debug/net8.0/TimelogBackend.pdb | Bin 18860 -> 18832 bytes .../net8.0/TimelogBackend.AssemblyInfo.cs | 2 +- .../TimelogBackend.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../Debug/net8.0/TimelogBackend.assets.cache | Bin 18792 -> 18792 bytes backendCs/obj/Debug/net8.0/TimelogBackend.dll | Bin 29184 -> 29184 bytes backendCs/obj/Debug/net8.0/TimelogBackend.pdb | Bin 18860 -> 18832 bytes .../obj/Debug/net8.0/ref/TimelogBackend.dll | Bin 8192 -> 8192 bytes .../Debug/net8.0/refint/TimelogBackend.dll | Bin 8192 -> 8192 bytes backendCs/routes/CreateLog.cs | 56 ++++++--- backendCs/routes/CreateProcedure.cs | 8 +- backendCs/routes/Getall.cs | 39 +++--- backendCs/routes/Gettopten.cs | 32 ++--- backendCs/routes/Getuser.cs | 24 ++-- backendCs/routes/Login.cs | 42 ++++--- backendCs/routes/Register.cs | 37 ++++-- backendCs/routes/Reset.cs | 1 - frontend/src/components/CreateLog.tsx | 8 +- frontend/src/components/LeftSide.tsx | 3 +- frontend/src/components/Login.tsx | 2 - 34 files changed, 360 insertions(+), 169 deletions(-) create mode 100644 backendCs.Tests/.vscode/launch.json create mode 100644 backendCs.Tests/.vscode/tasks.json diff --git a/backendCs.Tests/.vscode/launch.json b/backendCs.Tests/.vscode/launch.json new file mode 100644 index 0000000..e395607 --- /dev/null +++ b/backendCs.Tests/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/bin/Debug/net8.0/backendCs.Test.dll", + "args": [], + "cwd": "${workspaceFolder}", + // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/backendCs.Tests/.vscode/tasks.json b/backendCs.Tests/.vscode/tasks.json new file mode 100644 index 0000000..10f826c --- /dev/null +++ b/backendCs.Tests/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/backendCs.Test.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/backendCs.Test.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/backendCs.Test.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/backendCs.Tests/UnitTest1.cs b/backendCs.Tests/UnitTest1.cs index d6389eb..b76bd10 100644 --- a/backendCs.Tests/UnitTest1.cs +++ b/backendCs.Tests/UnitTest1.cs @@ -1,11 +1,13 @@ namespace backendCs.Test; + using System.Net.Http; +using System.Text; [TestClass] public class UnitTest1 { [TestMethod] - async public Task TestMethodReset() + public async Task TestMethodReset() { using (HttpClient client = new HttpClient()) { @@ -16,122 +18,193 @@ public class UnitTest1 Assert.AreEqual((int)response.StatusCode, 200); } } + [TestMethod] - async public Task TestMethodGetall1() + public async Task TestMethodGetall1() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/getall?offset=10"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/getall?offset=10" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 200); } } + [TestMethod] - async public Task TestMethodGetall2() + public async Task TestMethodGetall2() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/getall?offset="); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/getall?offset=" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 400); } } - async public Task TestMethodGetall3() + + [TestMethod] + public async Task TestMethodGetall3() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/getall?offset=10&from=2020-01-01&to=2024-01-01&orderby=time&order=true"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/getall?offset=10&from=2020-01-01&to=2024-01-01&orderby=time&order=true" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 200); } } + [TestMethod] - async public Task TestMethodGettopten1() + public async Task TestMethodGettopten1() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/gettopten?from=2000-01-01&to=2024-01-01&filterby=project"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/gettopten?from=2000-01-01&to=2024-01-01&filterby=project" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 200); } } + [TestMethod] - async public Task TestMethodGettopten2() + public async Task TestMethodGettopten2() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/gettopten?from=2000-01-01&to=2024-01-01&filterby=user"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/gettopten?from=2000-01-01&to=2024-01-01&filterby=user" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 200); } } + [TestMethod] - async public Task TestMethodGettopten3() + public async Task TestMethodGettopten3() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/gettopten?to=2024-01-01&filterby=project"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/gettopten?to=2024-01-01&filterby=project" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 400); } } + [TestMethod] - async public Task TestMethodGettopten4() + public async Task TestMethodGettopten4() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/gettopten?from=2000-01-01&filterby=project"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/gettopten?from=2000-01-01&filterby=project" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 400); } } + [TestMethod] - async public Task TestMethodGettopten5() + public async Task TestMethodGettopten5() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/gettopten?from=2000-01-01&to=2024-01-01"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/gettopten?from=2000-01-01&to=2024-01-01" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 400); } } + [TestMethod] - async public Task TestMethodGetuser1() + public async Task TestMethodGetuser1() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/getuser?userid=1"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/getuser?userid=1" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 200); } } - async public Task TestMethodGetuser2() + + [TestMethod] + public async Task TestMethodGetuser2() { using (HttpClient client = new HttpClient()) { // Make a GET request to a URL - HttpResponseMessage response = await client.GetAsync("http://localhost:5000/api/getuser"); + HttpResponseMessage response = await client.GetAsync( + "http://localhost:5000/api/getuser" + ); // Ensure we have a successful response Assert.AreEqual((int)response.StatusCode, 400); } } + + [TestMethod] + public async Task TestMethodRegister1() + { + using (HttpClient client = new()) + { + // Make a GET request to a URL + var jsonData = + "{ \"f_name\": \"donna\", \"l_name\": \"cow\", \"mail\": \"tombo@mail.com\", \"password\": \"1234567890\" }"; + var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); + + HttpResponseMessage response = await client.PostAsync( + "http://localhost:5000/api/register", + content + ); + + // Ensure we have a successful response + Assert.AreEqual((int)response.StatusCode, 200); + } + } + + [TestMethod] + public async Task TestMethodLogin() + { + using (HttpClient client = new()) + { + // Make a GET request to a URL + var jsonData = "{ \"mail\": \"tombo@mail.com\", \"password\": \"1234567890\" }"; + var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); + + HttpResponseMessage response = await client.PostAsync( + "http://localhost:5000/api/login", + content + ); + + // Ensure we have a successful response + Assert.AreEqual((int)response.StatusCode, 200); + } + } } diff --git a/backendCs.Tests/bin/Debug/net8.0/backendCs.Test.dll b/backendCs.Tests/bin/Debug/net8.0/backendCs.Test.dll index 2ef8f6bca395612134d6fd25a1d5cc9796a54db6..902e9a3eb4635371cd6ab2325d7b858921efbe4d 100644 GIT binary patch delta 6303 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 delta 4159 zcmZqZVQi?F(4myJr}O~>6g*&1V&G;pU|=v}U|`^Y2%Za^xGIdVI*@_EA0&{#z;K0i zqM|TQ0|NsO0|P@#00TqFWJM;O$&rleTvrSk7#I{77#NHucQI-+noQotsLp6L`5vQ^ z!umjvb_NCy1_lNu23Cd~Lk0#3c?JeX1~6uutY~X6IeSYv|%*&m` zC^)%*8zgd^yO&XLawty{qtN6XJRlK%-d;wb$#Z#=7=>ldr z!oa}LA<4infpv19xLUmu0|Nse0|SFE0|SFT10*4FGcYiyF)%Q+F)%QQK`|2~Z7{Gh zFff4R#X)v3>}Ca}83qP6h7^`AHa3PwVA6%ToQ8I z8N_A>v!~aCsVuON4@(yt7efNmD^@m!uWXN5*%&r}jf-IJV&h|IVUc2GWBA4d5^rP% zSvH5coQ;pcfEgrS%X*KEjX@MFevAnuo5Ik=Cd4qE$%u`OK?7`>6B|fGn;j%_iMgDO zjUkqy{vMkcLkH6zHa-R$c921jm-Z8Dtrx!Q8zdE`th# z9GG_l%+qF21oJ+Fc}5H>U>+Y6$WTiLbubSU0hSC73|e5GG}wA~23-a=1}>yvvPyuOt$as@Ufq{u(7MKU|Av41gFb|@Vnc;ydLM1c9BQOu5 zl7-<7msc9!z&wajHijB74`L`A z!wyY^N;ZaFU>-yzJHrt$52BJCTy8TkK)l4xz@!b*2T{qvz@yCovLB+9gTX@wBneT< z!QchvL6mYbgn)Svm7EL{bP*~!876^w5S3gEbHF@^N-l;QdI*(V47b2Mh)QmTCwdGZ z`yooX859f83-mL!DJ#>Zzfo8B|{;b zC_^Kd>;#L(Q0yOM0L6M^JwqXz8pB7hL?M`b$iU2O$ncQC zjNOdkAwwmrGs8=;_)7)@rdRM~hLA2KMivoWYL6f+nysWU_~w6N+ia5LC4=`jd1xH0K5)Jrp@ zGU+iWGvqPpF=#WaVbWtTW;np4$6(EHnn{nrnc)VL9)mYnJeXk(lQTmyg9EcG*ti6S zW(FSS1cq(~2j&EZ$qWw6iD2<$hHQp9)?_HVn!$lN70hm6Xl8I_ZUC!q0IP3gD6VHP zWNK!Z&EUY?3Rbj$p_!qYc>!3_0zU>8*DJa}vR1BQr?p09i*}mOfCeI2f^e+u&g5oNH!5nHiF58 zVDcabNUtI%NY)WdCUOdZIE`S=LQatMWIGj!dSON#Mpwo-#&X69j4K%rG2UkU!pOp) zz@W*%!l1;U&A`f_#-Pc-%AmoZ&A`T>!=TB)#sJDb>nhfj=CJfpP91Io=nhYEa zRt(wzF3`ZEQOcqoXPH|?3chW$GC<8Ckc5wTVAIyUg zyiDETmL;gQ4H02r;AL_Li$ObhU}0V+BQ_8NRct5Q_-ViG-R~JvtyV@)jxjY5 zwqRjk5G-UjU}R(zkYixsVidBNJl`}^hL@d%LsT%8Q7BVLKq!|}fl*YbmQg5^k4;pl zcCwY3Ib-AIA~PmNZZ0k+s4|Pm=gd_m|1{sIXOU`RY-paCl#*(ZY+_+%Vv=f#L)1Wxp3t}rwR1{-cA2|7`P3C4kJ2z&33x-q%69!`j zLk4q(M1~}W6oym=3x;F{69x+gGX@g|6NXdLgBe3I hgDHbKgE>PAg9$^@=EaVwOiULHHw(JFXPjuj4ghy{$~OQ2 diff --git a/backendCs.Tests/bin/Debug/net8.0/backendCs.Test.pdb b/backendCs.Tests/bin/Debug/net8.0/backendCs.Test.pdb index 5fbc81e7a0e7a4832a69016b37a1769c3d6200fe..857d4005ba9d2852b02cbba4ba5f42e5c77c53ff 100644 GIT binary patch delta 1901 zcmdmz^CN$PN&OiX1_tFi28I=^3=Av`3=GP_B}JKe>BS5T3=C^vVxhqd8(0|_CV=GK zLp@y>7#JMb7#MaKGB7AR<>V(ZFffSf2)J#P)pMVAH#XU-RHP{W-M$-)3=C}H;!Iqe zTnr413=9ma3=9kc3=9nM3=9nB3=9l>3=C=vybKHsnhXpKix?Ofq@b9I0iuDGfdMQp zJ@KZzAV`Na1H_deO)ir;8S^IxFmlv0F_`Is+zY}?3=5FhACcHjdLVfaW@4C(#D0Rr zHq{5ogD?|A8xs2l5?jjvBoD$&3^gFOD2UC##K33>W-u@?FfpVVPX5Apq@Is~g@F<5 zcLoLv1_lOxG`!M|LY_$urqMzmN76hcr!LIurd7CX#k5X0J9f>*$2Sv17P+8F#7?R z&A^HG0J9yyYzHtq0nAPSvm3zd1~7X8h+VI<0L(eS$i~2@dw`LhK}Poh zBO8N~?gK`41_NCOCN_o{x(-Yn43)YLOq>kux(mP}3z#?<9_uaui!d;Q)G#n}Fqr5u zFoV=2fJG9RIT%{?62Kw{z#<2jIT)_#9RQ0cuz+;cE3j}dsOu}RfV4G$g&J5m7%KD| zz#pv9OjeD`6@zvEPFPu;<%?-&mCM@T#}lr7m`|0!p68}HshK%9E@^|4HIP>=CCp{ zFf`2OWt3wqV{8;;Y^;-Q>;#E5c0j}$t}r$_$~O9d#k`&P7#JAXL5NX;m61V(NsOBT zl&9Dk7@3M0nOImj#26TI7|ggB#26TvD!CXKBp4Vb_ZUkv3Qc}vB&ER**RGCN`{V{= zbuCdRPzeRG&5W>e2`53g>8^y8OFId{m4^^kF6Sf+SDs8*xuTN@TzL^e<=QIFpppyX z)rLmG>eZda;KnyhAgo@?SsbB$K0)<1y1o(!^@ms)86;6-njwINgPXyZi9wo~g@r)| z9OpccIG30#XeNAPw;3>Lb{R&cMjr+SKS_j*>o9F( nYbfHjf@i41}2&;*i)Ikl2hM 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 delta 4159 zcmZqZVQi?F(4myJr}O~>6g*&1V&G;pU|=v}U|`^Y2%Za^xGIdVI*@_EA0&{#z;K0i zqM|TQ0|NsO0|P@#00TqFWJM;O$&rleTvrSk7#I{77#NHucQI-+noQotsLp6L`5vQ^ z!umjvb_NCy1_lNu23Cd~Lk0#3c?JeX1~6uutY~X6IeSYv|%*&m` zC^)%*8zgd^yO&XLawty{qtN6XJRlK%-d;wb$#Z#=7=>ldr z!oa}LA<4infpv19xLUmu0|Nse0|SFE0|SFT10*4FGcYiyF)%Q+F)%QQK`|2~Z7{Gh zFff4R#X)v3>}Ca}83qP6h7^`AHa3PwVA6%ToQ8I z8N_A>v!~aCsVuON4@(yt7efNmD^@m!uWXN5*%&r}jf-IJV&h|IVUc2GWBA4d5^rP% zSvH5coQ;pcfEgrS%X*KEjX@MFevAnuo5Ik=Cd4qE$%u`OK?7`>6B|fGn;j%_iMgDO zjUkqy{vMkcLkH6zHa-R$c921jm-Z8Dtrx!Q8zdE`th# z9GG_l%+qF21oJ+Fc}5H>U>+Y6$WTiLbubSU0hSC73|e5GG}wA~23-a=1}>yvvPyuOt$as@Ufq{u(7MKU|Av41gFb|@Vnc;ydLM1c9BQOu5 zl7-<7msc9!z&wajHijB74`L`A z!wyY^N;ZaFU>-yzJHrt$52BJCTy8TkK)l4xz@!b*2T{qvz@yCovLB+9gTX@wBneT< z!QchvL6mYbgn)Svm7EL{bP*~!876^w5S3gEbHF@^N-l;QdI*(V47b2Mh)QmTCwdGZ z`yooX859f83-mL!DJ#>Zzfo8B|{;b zC_^Kd>;#L(Q0yOM0L6M^JwqXz8pB7hL?M`b$iU2O$ncQC zjNOdkAwwmrGs8=;_)7)@rdRM~hLA2KMivoWYL6f+nysWU_~w6N+ia5LC4=`jd1xH0K5)Jrp@ zGU+iWGvqPpF=#WaVbWtTW;np4$6(EHnn{nrnc)VL9)mYnJeXk(lQTmyg9EcG*ti6S zW(FSS1cq(~2j&EZ$qWw6iD2<$hHQp9)?_HVn!$lN70hm6Xl8I_ZUC!q0IP3gD6VHP zWNK!Z&EUY?3Rbj$p_!qYc>!3_0zU>8*DJa}vR1BQr?p09i*}mOfCeI2f^e+u&g5oNH!5nHiF58 zVDcabNUtI%NY)WdCUOdZIE`S=LQatMWIGj!dSON#Mpwo-#&X69j4K%rG2UkU!pOp) zz@W*%!l1;U&A`f_#-Pc-%AmoZ&A`T>!=TB)#sJDb>nhfj=CJfpP91Io=nhYEa zRt(wzF3`ZEQOcqoXPH|?3chW$GC<8Ckc5wTVAIyUg zyiDETmL;gQ4H02r;AL_Li$ObhU}0V+BQ_8NRct5Q_-ViG-R~JvtyV@)jxjY5 zwqRjk5G-UjU}R(zkYixsVidBNJl`}^hL@d%LsT%8Q7BVLKq!|}fl*YbmQg5^k4;pl zcCwY3Ib-AIA~PmNZZ0k+s4|Pm=gd_m|1{sIXOU`RY-paCl#*(ZY+_+%Vv=f#L)1Wxp3t}rwR1{-cA2|7`P3C4kJ2z&33x-q%69!`j zLk4q(M1~}W6oym=3x;F{69x+gGX@g|6NXdLgBe3I hgDHbKgE>PAg9$^@=EaVwOiULHHw(JFXPjuj4ghy{$~OQ2 diff --git a/backendCs.Tests/obj/Debug/net8.0/backendCs.Test.pdb b/backendCs.Tests/obj/Debug/net8.0/backendCs.Test.pdb index 5fbc81e7a0e7a4832a69016b37a1769c3d6200fe..857d4005ba9d2852b02cbba4ba5f42e5c77c53ff 100644 GIT binary patch delta 1901 zcmdmz^CN$PN&OiX1_tFi28I=^3=Av`3=GP_B}JKe>BS5T3=C^vVxhqd8(0|_CV=GK zLp@y>7#JMb7#MaKGB7AR<>V(ZFffSf2)J#P)pMVAH#XU-RHP{W-M$-)3=C}H;!Iqe zTnr413=9ma3=9kc3=9nM3=9nB3=9l>3=C=vybKHsnhXpKix?Ofq@b9I0iuDGfdMQp zJ@KZzAV`Na1H_deO)ir;8S^IxFmlv0F_`Is+zY}?3=5FhACcHjdLVfaW@4C(#D0Rr zHq{5ogD?|A8xs2l5?jjvBoD$&3^gFOD2UC##K33>W-u@?FfpVVPX5Apq@Is~g@F<5 zcLoLv1_lOxG`!M|LY_$urqMzmN76hcr!LIurd7CX#k5X0J9f>*$2Sv17P+8F#7?R z&A^HG0J9yyYzHtq0nAPSvm3zd1~7X8h+VI<0L(eS$i~2@dw`LhK}Poh zBO8N~?gK`41_NCOCN_o{x(-Yn43)YLOq>kux(mP}3z#?<9_uaui!d;Q)G#n}Fqr5u zFoV=2fJG9RIT%{?62Kw{z#<2jIT)_#9RQ0cuz+;cE3j}dsOu}RfV4G$g&J5m7%KD| zz#pv9OjeD`6@zvEPFPu;<%?-&mCM@T#}lr7m`|0!p68}HshK%9E@^|4HIP>=CCp{ zFf`2OWt3wqV{8;;Y^;-Q>;#E5c0j}$t}r$_$~O9d#k`&P7#JAXL5NX;m61V(NsOBT zl&9Dk7@3M0nOImj#26TI7|ggB#26TvD!CXKBp4Vb_ZUkv3Qc}vB&ER**RGCN`{V{= zbuCdRPzeRG&5W>e2`53g>8^y8OFId{m4^^kF6Sf+SDs8*xuTN@TzL^e<=QIFpppyX z)rLmG>eZda;KnyhAgo@?SsbB$K0)<1y1o(!^@ms)86;6-njwINgPXyZi9wo~g@r)| z9OpccIG30#XeNAPw;3>Lb{R&cMjr+SKS_j*>o9F( nYbfHjf@i41}2&;*i)Ikl2hM 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 E009vDd;kCd diff --git a/backendCs/bin/Debug/net8.0/TimelogBackend.pdb b/backendCs/bin/Debug/net8.0/TimelogBackend.pdb index a5e68ed9836cf5e32bf9d2d55394767755bb2749..5863be86fc96a181c0c1adc5b58c22818aa7b504 100644 GIT binary patch delta 2718 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 delta 2827 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 diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs index 4447d4f..d5e7eb6 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("TimelogBackend")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8e4317abde8c48644e2bc317481f0f846c577d4b")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+cb7b3ad94c91aad561fa90871a3e078e741f566c")] [assembly: System.Reflection.AssemblyProductAttribute("TimelogBackend")] [assembly: System.Reflection.AssemblyTitleAttribute("TimelogBackend")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache index b7aa304..a2b728d 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.AssemblyInfoInputs.cache @@ -1 +1 @@ -c543c95dc596bfc3bc702a1cdb58fc473192e89edf57457c326e82da9108ecd6 +21ebdfea2f4ecbc0e48a6b53f27fa496a20e08b7ed0ace43e5500d5093c8a245 diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig b/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig index 5a01ff7..294666a 100644 --- a/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig +++ b/backendCs/obj/Debug/net8.0/TimelogBackend.GeneratedMSBuildEditorConfig.editorconfig @@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = TimelogBackend -build_property.ProjectDir = /home/arch/projects/wip/timelog-interview-login/backendCs/ +build_property.ProjectDir = /home/arch/projects/unfinished/timelog-interview-login/backendCs/ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.assets.cache b/backendCs/obj/Debug/net8.0/TimelogBackend.assets.cache index 6174452e12d0ce5b4dae6d518d6c2667913dbdc7..620bb568e4110b51875ca517186659fc408510e7 100644 GIT binary patch delta 51 zcmaDciSflGMvVY(cSjxu28NjnQdv&x{j-WV>;8LL&!b6SzAK$EKXa@pJFV!&al!7% I8#Np}0Y4-c)c^nh delta 51 zcmaDciSflGMvVY(cSjxu28Q2m#%{g-i7D+H9-TY+L?NX>jl;BcnR&lvW0YkjaWnI+G(A)fpd5Ze*+% z+}Xwe1|AFy3``8H3?h>SnN~CEPTtG3lCf@bI=NK6nsu>s7vnS8s4rEa++RC!|A@_Dh z&R>iS4EGrr7;b`=CyLFjP)0^L54vr5@Wat;c+l=?Pd{UcnIZjbM0plV|WGS zIk4}HW*VAcVf$>GJbpGAU!2g*}s-pwM(AOhv-G4E%Q zWRR_gaxIy6vq&+hLU}IC`&pzI^q@R{=G`pP3}#SX1oM6tX$E^JFN=9MiwuK1lvl~T zpGAft0Kx-@fhgVS%xEeV5foQ}Tk;R}Sv5Xp3eMUA1x z1f&vTpE^T`IfE+$0|P{(CPRWbLQ<3A377|w(`I-J=0ObAX7~x_!Q_}MHcwIHa1d}l zsa#j1;^DvE+#`H@eT>lNHHnq18p%oKNydpOmL|!ThKY$Ore=m|iIxTy=7x#JsRrg2 zspckzX{Kgo$&-E4?L{@}r%YmC^bKHQU|=X?U|@LB%E0hq^1^g+*0?qXhPcUl)0G7h zjuzSSdNMh-yXN1&?((o|@`v z6(%Z*G49;FC?kP!Ghdb)vwt!}5`#HI5`!^AB0~y;C4&h=GJ_?9AwwdVZ^~fCV91ch zkjP-kV8CF(U=EfsW=Lf)U@&K}U`S;!XD|V)0I4)%NZ!0SHNv0}}%)1IJ`RrqzrFllL;MWNe(A&TJqo$iR`Wz`($juf)K>CCtL0&Bm~K zIkPJxfBC=v|Fx8uG}IUvxEQn;HveLo$HCIIe=r= zWFAfh&NGY*4Al$_4DOQ`3J9}?F)=WNZ}#Q%W@LOjc_!CC#{S7OxC1wTA5_Mc` z3``6R${^k}hB&TSEKCe(P#!DK1Qr&C4mfWS3oFA*Fs}uykDcKYm^V?Pg=-oMI|G9X z$dri;>)F3Durtiqyi-n`D?h6~0ZIfyB+%6uUO;#ZkxWNe)EEj(Kq?{j zsWW((Gq^G^FhDeFGK82TBsCdsfO!x(ZH9+n9>h>>hPPlIOzxZc<^_rz4g!@CT-+D4 zl>N4!T%Tdn!1{CZj>Jk<4U1G0V?*=Aq?A;PWD^TB6O&Yh&A!zc+bY+3}Yo@g8 z%-!R#t@P9mV^({M$$!!_ji7=I-=KmZgHBB<)Y|UG67(j`_uN8gwgmZbH;An;QBjO> z?dEkE35*jBcsBE8xiR}&Fr+e=Fc>o!GMFeZFEEr4}%ovgxOc~4>%o$P`Oc;_jFV0P6V!B|qS+L+e<3s~? E009vDd;kCd diff --git a/backendCs/obj/Debug/net8.0/TimelogBackend.pdb b/backendCs/obj/Debug/net8.0/TimelogBackend.pdb index a5e68ed9836cf5e32bf9d2d55394767755bb2749..5863be86fc96a181c0c1adc5b58c22818aa7b504 100644 GIT binary patch delta 2718 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 delta 2827 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 diff --git a/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll b/backendCs/obj/Debug/net8.0/ref/TimelogBackend.dll index 520158a9049f09cb2d55344383515f74ad9c4751..805095acb5756af36ca29ad2471fa121b66539b3 100644 GIT binary patch delta 195 zcmZp0XmFU&!NPOl%(aa@CCma}d#Vq(#0hvzjO9M|c)_gD&4MiN88`oD73Ig2QW1?| z)JRS;PclwSu{24xG)zoPF*P$xOSCkwFgHvzPBk#MNHsSxOfxkzOWwRfYz>QlGD8xB zIYSbIF+(Cl3WFts2}3f2C4(VDBA9Q=V8&p`kj9Y6V98*>V8LJxmN8~XWiVhcXRu&M VWiV$j0jmJ1G-F8KyjVJx1ptz@HcbEk delta 195 zcmZp0XmFU&!E)>R{oai|CCmc%atiE=t}wdq-Sj~1!n$`Qn*~|kGj9IRD$0*3r6L-` zs9}+6Vr*!hn3R%gk!)gNW@3_Rl$302Xl`O*m}Zb>VPckSYHprllC*h+*cujp3x-q% z69!`jLk4q(M1~}W6oym=3x;F{69x+gGX@g|6NXdL ZgBe3IgDHbKgE>PAg9$^@=Ec&nECAmQlGD8xB zIYSbIF+(Cl3WFts2}3f2C4(VDBA9Q=V8&p`kj9Y6V98*>V8LJxmN8~XWiVhcXRu&M VWiV$j0jmJ1G-F8KyjVJx1ptz@HcbEk delta 195 zcmZp0XmFU&!E)>R{oai|CCmc%atiE=t}wdq-Sj~1!n$`Qn*~|kGj9IRD$0*3r6L-` zs9}+6Vr*!hn3R%gk!)gNW@3_Rl$302Xl`O*m}Zb>VPckSYHprllC*h+*cujp3x-q% z69!`jLk4q(M1~}W6oym=3x;F{69x+gGX@g|6NXdL ZgBe3IgDHbKgE>PAg9$^@=Ec&nECAm 8) throw new Exception("Incorect ammount of hours"); - //validate date + // validate date Regex regex = new Regex(@"^\d{4}-\d{2}-\d{2}$"); if (string.IsNullOrEmpty(date) || !regex.IsMatch(date)) { throw new Exception("Incorrect date format"); } // validate user - // extract user from jwt + // extract user from jwt var handler = new JwtSecurityTokenHandler(); var jwtToken = handler.ReadJwtToken(token); - string? usernameClaim = jwtToken.Claims.FirstOrDefault(c => c.Type == "user")?.Value ?? ""; + string? usernameClaim = + jwtToken.Claims.FirstOrDefault(c => c.Type == "user")?.Value ?? ""; if (string.IsNullOrEmpty(usernameClaim)) { throw new Exception("wrong user id"); } - //validate project + // validate project // TODO better project validation - if (!string.IsNullOrEmpty(project)) + if (string.IsNullOrEmpty(project)) { throw new Exception("wrong project"); } using (MySqlConnection conn = new MySqlConnection(connectionString)) { - conn.Open(); cmd.Connection = conn; - cmd.CommandText = @"INSERT INTO Timelog(user,project,date,time) + cmd.CommandText = + @"INSERT INTO Timelog(user,project,date,time) VALUES(@user,@project,@date,@time);"; cmd.Parameters.AddWithValue("@user", usernameClaim); cmd.Parameters.AddWithValue("@project", project); @@ -109,4 +128,3 @@ namespace Server } } } - diff --git a/backendCs/routes/CreateProcedure.cs b/backendCs/routes/CreateProcedure.cs index 35c8b08..bc40a5b 100644 --- a/backendCs/routes/CreateProcedure.cs +++ b/backendCs/routes/CreateProcedure.cs @@ -1,6 +1,6 @@ using System.Net; -using System.Text; using MySql.Data.MySqlClient; + namespace Server { public class CreateProcedure : Route @@ -15,7 +15,8 @@ namespace Server { conn.Open(); cmd.Connection = conn; - cmd.CommandText = @" + cmd.CommandText = + @" CREATE PROCEDURE fill_timelog () BEGIN DECLARE j INT DEFAULT 1; @@ -53,7 +54,8 @@ BEGIN END WHILE; END;"; cmd.ExecuteNonQuery(); - cmd.CommandText = @"CREATE PROCEDURE InitDB() + cmd.CommandText = + @"CREATE PROCEDURE InitDB() BEGIN DECLARE i INT DEFAULT 1; TRUNCATE TABLE Timelog; diff --git a/backendCs/routes/Getall.cs b/backendCs/routes/Getall.cs index e29a8e6..bc5fc1b 100644 --- a/backendCs/routes/Getall.cs +++ b/backendCs/routes/Getall.cs @@ -1,5 +1,4 @@ using System.Net; -using System.Text; using System.Text.RegularExpressions; using MySql.Data.MySqlClient; using Newtonsoft.Json; @@ -34,11 +33,12 @@ namespace Server string? offset = queryString["offset"]; string? order = queryString["order"]; order = order == "true" ? "ASC" : "DESC"; - // this shenanigan is needed to remove the "" around group by - string mainQuery = @"SELECT u.f_name,u.l_name,u.mail,p.name,t.time,t.date,t.user + string mainQuery = + @"SELECT u.f_name,u.l_name,u.mail,p.name,t.time,t.date,t.user FROM Timelog t INNER JOIN Project p ON p.id=t.project INNER JOIN User u ON u.id=t.user "; + // this shenanigan is needed to remove the "" around group by string offsetQuery = " LIMIT 10 OFFSET " + offset + ";"; // depending on the incoming parameters construct a Query if (!string.IsNullOrEmpty(to) && !string.IsNullOrEmpty(from)) @@ -53,7 +53,16 @@ namespace Server } if (!string.IsNullOrEmpty(sortby)) { - List validSorting = new List { "f_name", "l_name", "mail", "time", "date", "user", }; + List validSorting = new List + { + "f_name", + "l_name", + "mail", + "time", + "date", + "user", + "project", + }; if (!validSorting.Contains(sortby)) { throw new Exception("Incorrect sorting value"); @@ -79,16 +88,18 @@ namespace Server List entries = new List(); while (reader.Read()) { - entries.Add(new Log - { - f_name = reader["f_name"], - l_name = reader["l_name"], - user = reader["user"], - date = reader["date"], - name = reader["name"], - time = reader["time"], - mail = reader["mail"], - }); + entries.Add( + new Log + { + f_name = reader["f_name"], + l_name = reader["l_name"], + user = reader["user"], + date = reader["date"], + name = reader["name"], + time = reader["time"], + mail = reader["mail"], + } + ); } // serialize JSON string jsonResponse = JsonConvert.SerializeObject(entries); diff --git a/backendCs/routes/Gettopten.cs b/backendCs/routes/Gettopten.cs index 8b3314b..dc07f62 100644 --- a/backendCs/routes/Gettopten.cs +++ b/backendCs/routes/Gettopten.cs @@ -1,5 +1,4 @@ using System.Net; -using System.Text; using System.Text.RegularExpressions; using MySql.Data.MySqlClient; using Newtonsoft.Json; @@ -16,6 +15,7 @@ namespace Server public object? name { get; set; } public object? total_time { get; set; } } + public class Gettopten : Route { public static void HandleRequest(HttpListenerRequest request, HttpListenerResponse response) @@ -52,12 +52,15 @@ namespace Server // this shenanigan is needed to remove the "" around // group by - string req = @"SELECT t.user,t.date,t.project,u.f_name,u.l_name,p.name,SUM(t.time) as total_time + string req = + @"SELECT t.user,t.date,t.project,u.f_name,u.l_name,p.name,SUM(t.time) as total_time FROM Timelog t INNER JOIN Project p ON p.id=t.project INNER JOIN User u ON u.id=t.user WHERE t.date BETWEEN @from AND @to - GROUP BY " + filterBy + @" ORDER BY total_time DESC + GROUP BY " + + filterBy + + @" ORDER BY total_time DESC LIMIT 10;"; cmd.CommandText = req; cmd.Parameters.AddWithValue("@from", from); @@ -72,22 +75,23 @@ namespace Server List entries = new List(); while (reader.Read()) { - entries.Add(new TopTen - { - user = reader["user"], - date = reader["date"], - project = reader["project"], - f_name = reader["f_name"], - l_name = reader["l_name"], - name = reader["name"], - total_time = reader["total_time"], - }); + entries.Add( + new TopTen + { + user = reader["user"], + date = reader["date"], + project = reader["project"], + f_name = reader["f_name"], + l_name = reader["l_name"], + name = reader["name"], + total_time = reader["total_time"], + } + ); } // Serialize the data to JSON string jsonResponse = JsonConvert.SerializeObject(entries); // prepare response SendSuccess(response, jsonResponse); - } } catch (Exception ex) diff --git a/backendCs/routes/Getuser.cs b/backendCs/routes/Getuser.cs index 0d311a0..50bc7e0 100644 --- a/backendCs/routes/Getuser.cs +++ b/backendCs/routes/Getuser.cs @@ -1,7 +1,6 @@ -using System.Net; -using System.Text; -using MySql.Data.MySqlClient; using System.Dynamic; +using System.Net; +using MySql.Data.MySqlClient; using Newtonsoft.Json; namespace Server @@ -10,19 +9,23 @@ namespace Server { public static void HandleRequest(HttpListenerRequest request, HttpListenerResponse response) { - try { + var queryString = request.QueryString; + string? userid = queryString["userid"]; + if (string.IsNullOrEmpty(userid)) + { + throw new Exception("Missing userid"); + } // prepare SQL query MySqlCommand cmd = new MySqlCommand(); - cmd.CommandText = @"SELECT p.name, SUM(t.time) + cmd.CommandText = + @"SELECT p.name, SUM(t.time) FROM Timelog t INNER JOIN Project p ON p.id=t.project INNER JOIN User u ON u.id=t.user WHERE User = @userid GROUP BY name;"; - var queryString = request.QueryString; - string? userid = queryString["userid"]; cmd.Parameters.AddWithValue("@userid", userid); using (MySqlConnection conn = new MySqlConnection(connectionString)) @@ -34,14 +37,14 @@ namespace Server dynamic expando = new ExpandoObject(); while (reader.Read()) { - ((IDictionary)expando)[reader["name"].ToString()] = reader["SUM(t.time)"]; - + ((IDictionary)expando)[reader["name"].ToString()] = reader[ + "SUM(t.time)" + ]; } // serialize JSON string jsonResponse = JsonConvert.SerializeObject(expando); // prepare response SendSuccess(response, jsonResponse); - } } catch (Exception ex) @@ -51,4 +54,3 @@ namespace Server } } } - diff --git a/backendCs/routes/Login.cs b/backendCs/routes/Login.cs index 18278f5..fab2f9a 100644 --- a/backendCs/routes/Login.cs +++ b/backendCs/routes/Login.cs @@ -1,18 +1,19 @@ +using System.IdentityModel.Tokens.Jwt; using System.Net; +using System.Security.Claims; +using System.Security.Cryptography; using System.Text; +using Microsoft.IdentityModel.Tokens; using MySql.Data.MySqlClient; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using System.Security.Claims; -using System.IdentityModel.Tokens.Jwt; -using Microsoft.IdentityModel.Tokens; -using System.Security.Cryptography; namespace Server { public class Login : Route { - private static string secretKey = "stronk-key-much-sercret-much-more-stronk-stronk-key-much-sercret-much-more-stronk"; + private static string secretKey = + "stronk-key-much-sercret-much-more-stronk-stronk-key-much-sercret-much-more-stronk"; public static string GenerateToken(string user) { @@ -22,10 +23,7 @@ namespace Server var token = new JwtSecurityToken( issuer: "TimeLogServer", audience: "TimeLogWebsite", - claims: new[] - { - new Claim("user", user) - }, + claims: new[] { new Claim("user", user) }, expires: DateTime.Now.AddHours(2), signingCredentials: creds ); @@ -42,7 +40,14 @@ namespace Server Array.Copy(hashBytes, 0, salt, 0, 16); // Hash the entered password with the stored salt - using (var pbkdf2 = new Rfc2898DeriveBytes(enteredPassword, salt, 10000, HashAlgorithmName.SHA256)) + using ( + var pbkdf2 = new Rfc2898DeriveBytes( + enteredPassword, + salt, + 10000, + HashAlgorithmName.SHA256 + ) + ) { byte[] newHash = pbkdf2.GetBytes(32); @@ -62,7 +67,12 @@ namespace Server { // extract data from body string body; - using (StreamReader bodyReader = new StreamReader(request.InputStream, request.ContentEncoding)) + using ( + StreamReader bodyReader = new StreamReader( + request.InputStream, + request.ContentEncoding + ) + ) { body = bodyReader.ReadToEnd(); } @@ -72,7 +82,8 @@ namespace Server // prepare SQL query MySqlCommand cmd = new MySqlCommand(); - cmd.CommandText = @"SELECT u.id, password FROM User u + cmd.CommandText = + @"SELECT u.id, password FROM User u INNER JOIN Password p ON p.user=u.id WHERE mail=@mail;"; cmd.Parameters.AddWithValue("@mail", mail); @@ -98,9 +109,11 @@ namespace Server throw new Exception("Invalid Username or Password"); } //check password - if (string.IsNullOrEmpty(password) + if ( + string.IsNullOrEmpty(password) || string.IsNullOrEmpty(hashedPass) - || !VerifyPassword(password, hashedPass)) + || !VerifyPassword(password, hashedPass) + ) { throw new Exception("Invalid Username or Password"); } @@ -118,4 +131,3 @@ namespace Server } } } - diff --git a/backendCs/routes/Register.cs b/backendCs/routes/Register.cs index ba75e5b..a08cf44 100644 --- a/backendCs/routes/Register.cs +++ b/backendCs/routes/Register.cs @@ -1,8 +1,6 @@ using System.Net; -using System.Text; -using MySql.Data.MySqlClient; using System.Security.Cryptography; -using Newtonsoft.Json; +using MySql.Data.MySqlClient; using Newtonsoft.Json.Linq; namespace Server @@ -15,7 +13,9 @@ namespace Server byte[] salt = new byte[16]; RandomNumberGenerator.Fill(salt); // Create a PBKDF2 instance to hash the password - using (var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 10000, HashAlgorithmName.SHA256)) + using ( + var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 10000, HashAlgorithmName.SHA256) + ) { byte[] hash = pbkdf2.GetBytes(32); @@ -28,6 +28,7 @@ namespace Server return Convert.ToBase64String(hashBytes); } } + public static void HandleRequest(HttpListenerRequest request, HttpListenerResponse response) { MySqlTransaction? transaction = null; @@ -35,7 +36,12 @@ namespace Server { // extract parameters from req body string body; - using (StreamReader bodyReader = new StreamReader(request.InputStream, request.ContentEncoding)) + using ( + StreamReader bodyReader = new StreamReader( + request.InputStream, + request.ContentEncoding + ) + ) { body = bodyReader.ReadToEnd(); } @@ -46,10 +52,20 @@ namespace Server string mail = jsonObject["mail"]?.ToString() ?? ""; // validate parameters - if (string.IsNullOrEmpty(f_name) || f_name.Length > 30 || f_name.Length < 2 || - string.IsNullOrEmpty(l_name) || l_name.Length > 30 || l_name.Length < 2 || - string.IsNullOrEmpty(mail) || mail.Length > 50 || mail.Length < 6 || - string.IsNullOrEmpty(password) || password.Length > 30 || password.Length < 10) + if ( + string.IsNullOrEmpty(f_name) + || f_name.Length > 30 + || f_name.Length < 2 + || string.IsNullOrEmpty(l_name) + || l_name.Length > 30 + || l_name.Length < 2 + || string.IsNullOrEmpty(mail) + || mail.Length > 50 + || mail.Length < 6 + || string.IsNullOrEmpty(password) + || password.Length > 30 + || password.Length < 10 + ) { throw new Exception("Wrong parameters"); } @@ -58,7 +74,8 @@ namespace Server MySqlCommand cmd = new MySqlCommand(); // Insert into User - cmd.CommandText = "INSERT INTO User(f_name,l_name,mail) VALUES(@f_name,@l_name,@mail)"; + cmd.CommandText = + "INSERT INTO User(f_name,l_name,mail) VALUES(@f_name,@l_name,@mail)"; cmd.Parameters.AddWithValue("@f_name", f_name); cmd.Parameters.AddWithValue("@l_name", l_name); cmd.Parameters.AddWithValue("@mail", mail); diff --git a/backendCs/routes/Reset.cs b/backendCs/routes/Reset.cs index 8f63395..a9e53f6 100644 --- a/backendCs/routes/Reset.cs +++ b/backendCs/routes/Reset.cs @@ -1,5 +1,4 @@ using System.Net; -using System.Text; using MySql.Data.MySqlClient; namespace Server diff --git a/frontend/src/components/CreateLog.tsx b/frontend/src/components/CreateLog.tsx index 9017f90..ad0fd90 100644 --- a/frontend/src/components/CreateLog.tsx +++ b/frontend/src/components/CreateLog.tsx @@ -1,5 +1,6 @@ import { useEffect, useState } from "react"; import api from "../utils/api"; +import { useNavigate } from "react-router-dom"; interface FormInput { project: string; @@ -12,6 +13,7 @@ const CreateLog = ({ authorized }: { authorized: boolean }) => { time: "", date: "", }); + const navigate = useNavigate(); const [token, setToken] = useState(""); useEffect(() => { let tmp = localStorage.getItem("token"); @@ -33,7 +35,11 @@ const CreateLog = ({ authorized }: { authorized: boolean }) => { }, }, ); - console.log(resp); + if (resp.status == 200) { + navigate("/"); + } else { + alert(resp.data); + } } }; const onChange = (e: React.ChangeEvent) => { diff --git a/frontend/src/components/LeftSide.tsx b/frontend/src/components/LeftSide.tsx index 1049ce5..c435529 100644 --- a/frontend/src/components/LeftSide.tsx +++ b/frontend/src/components/LeftSide.tsx @@ -57,8 +57,7 @@ const LeftSide = ({ resetData(); } fetchData(); - // TODO this sends too many request when reseting - console.log(users); + // TODO this way of handling reset sends too many request when reseting }, [reset, params]); const viewProjectHours = (userid: number) => { diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx index 6614d7d..273556f 100644 --- a/frontend/src/components/Login.tsx +++ b/frontend/src/components/Login.tsx @@ -8,8 +8,6 @@ const Login = ({ setAuthorized }: { setAuthorized: Function }) => { const navigate = useNavigate(); const onClick = async () => { const resp = await api.post("/login", { mail, password }); - console.log(resp); - console.log(resp.status); if (resp.status === 200) { localStorage.setItem( "token",