From 100dec28bc86a947f133d8220c77990d09b24e50 Mon Sep 17 00:00:00 2001 From: Tinsae Date: Mon, 26 Jan 2026 22:11:23 +0100 Subject: [PATCH] commit after reset --- .../target/classes/net/tinsae/Client.class | Bin 0 -> 4016 bytes .../target/classes/net/tinsae/Delegator.class | Bin 0 -> 5511 bytes .../target/classes/net/tinsae/Main.class | Bin 0 -> 1569 bytes .../compile/default-compile/createdFiles.lst | 3 + .../compile/default-compile/inputFiles.lst | 3 + .../shop/target/classes/META-INF/beans.xml | 6 ++ .../target/classes/net/tinsae/shop/App.class | Bin 0 -> 374 bytes .../classes/net/tinsae/shop/Factory.class | Bin 0 -> 2329 bytes .../tinsae/shop/InvalidItemException.class | Bin 0 -> 391 bytes .../target/classes/net/tinsae/shop/Item.class | Bin 0 -> 1834 bytes .../classes/net/tinsae/shop/ItemDao.class | Bin 0 -> 5903 bytes .../target/classes/net/tinsae/shop/Util.class | Bin 0 -> 1550 bytes .../shop/target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 6 ++ .../compile/default-compile/inputFiles.lst | 6 ++ .../src/main/java/net/tinsae/Client.java | 19 ++---- .../src/main/java/net/tinsae/Delegator.java | 61 ++++++++++++++++-- .../client/src/main/java/net/tinsae/Main.java | 18 ++++-- week5_TinsaeGhilay/shop/pom.xml | 58 ++++++++--------- 19 files changed, 130 insertions(+), 53 deletions(-) create mode 100644 week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Client.class create mode 100644 week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Delegator.class create mode 100644 week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Main.class create mode 100644 week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/META-INF/beans.xml create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/App.class create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Factory.class create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/InvalidItemException.class create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Item.class create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/ItemDao.class create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Util.class create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/maven-archiver/pom.properties create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Client.class b/week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Client.class new file mode 100644 index 0000000000000000000000000000000000000000..45a7b0c796e9be8dba1e94345ba1f7390277a22b GIT binary patch literal 4016 zcma)8`F9gl6#ib4cG7g%%Gv@2q-a;8fE8N`r6owTK&7Sb%QPL^fiM#@6BHHqec#1> z-#y1&DW2oeU;U#ze(%jBosent^fWW?&3*6Q@B8k(@BRJH`9A>c!#63!5Z92<(SSyQ z<;RUvMmlfUv*{z#$IYB4(74;OEpLxNyt8Yng{zV}nvfD$d(t>zjyiVE@UFMKIlj4` zVSBE?uFkQAeI~r3WzP=Q&UDpIH9^M`4NG+_!*YQYw&|rk%XSSjJ({;no8iPu#k@dE z?b;Mtuu{V+9jmcMpjAa6H<Z*;Hc8uhfz=U!yQZ445$zf_>DY`d0$VDpFN~<{MWM3tS zNTCP48v1lxinKsy9n8+m>G9HZ-g4*6B9kWR-07!^z)(aub)AQ|8k7hx*RdTt1QO#% zCME?AhX}1DziM?|KYq?A4_D~u$CUyN({fT^W4$yQl!<+njsXmk^<0q3Z9c_SdFQA3 zUq@YE6(f~VfY6PdnT_~>|P{{T4VYc!KjA)Ix;vQu&&lex#kkC zX%nJRhsB`2tFRn3BfLiQ>l>2TgUD*QM#r@n6KJaqsk|qPnBB%JxuedEsd`hk1r%EL zrXwUQB7?GlYt`L?t|W8iIvq!4uEfWWP0I14j$^WeH15xgWhOIn>UteF$f@|%naL*H zgqtwxA;T<{*OfxyBDV@NovSgvQ z%YH+`L*3YqH-$Sft6@%uCELzQ#ZR>d0j(hY+2-NW$!W7VX-wy-NXwX$GxAeL(URj}GU3fxEcKOR(rr~^XI(US z{>o&*alNc!GP18`=~Z?zA}y9X`ud1c3fet)P8Neq6xa}H7^I)Tn(C<8MT5vMtFvx* zEj4@SHI=z1XBK4Rbu~OxR!fOo`6AUS1z^{7W@|U?|I?C0jCGUHhoBaY*_UePEVGQBxx#!cc?@+3qOue1I{S}beCn<<>dTN>V$ zJ>eaJ4pl9Rf6G4QoG{aVQTbPx14hnsiY&*o;noot`d<7l>voJe&WTbX;zkpauWF$@ zjU&u&4%z#+t@2494sz7U=O--BB&B-Rw$0*b-f&%$dTW(C%u;y>EF7j9K3wF?P!}L| zWK^u#9I95+P54OB@TtJXi#Ou%`9qmPOErAK+f@zeQCw>His@V5lnvP@9$R>r#&{8p z@sIaJzO~7dl~0XFKm%<4Ivh1)dqLz+% zTpUNwIdsqCvKZ#EQ{d2#*wuRuyMM*L!+rC(THsr55LW@U%Mh`Wfvw{8ay5^hHQ2_t z9<=hh(WV0I_8nFN9KziUOVFkT_uw=G>*p@_;y&(qKX=pl&7V2LnFlzN;LL;ke;AJh zF#aNK4g8V`!B~GDhkzO|44q)c12BgPrq2g6kZ4Ur!f7X%O@y);Td7?SF2d#L;00%! zg0s_iT!E9pqj-$LF&G6bM(b4ySe$E;3Rt27%%3?!NMT@)+7tIA*fEP1svhB zAP!bW1xMe7IQCM9Vd}7t7)GeWeyWhc9vld1Fa-{*-D&lxi5%CgU=5r}2d4peGQNOR@UCwRiW*eCn j?=?25nth+g(+3=X#PJX>z#nt`37?;F{5ihF*J%A0pc(W9 literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Delegator.class b/week5_TinsaeGhilay/Task 2/client/target/classes/net/tinsae/Delegator.class new file mode 100644 index 0000000000000000000000000000000000000000..e09014730426a7fc8100bbe421ab48bc0f952ff9 GIT binary patch literal 5511 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 JI^0zL{=X}Ucj*8C literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..5fe1ffc --- /dev/null +++ b/week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,3 @@ +net/tinsae/Client.class +net/tinsae/Main.class +net/tinsae/Delegator.class diff --git a/week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..954887d --- /dev/null +++ b/week5_TinsaeGhilay/Task 2/client/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,3 @@ +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Client.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Delegator.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Main.java diff --git a/week5_TinsaeGhilay/Task 2/shop/target/classes/META-INF/beans.xml b/week5_TinsaeGhilay/Task 2/shop/target/classes/META-INF/beans.xml new file mode 100644 index 0000000..96b4c76 --- /dev/null +++ b/week5_TinsaeGhilay/Task 2/shop/target/classes/META-INF/beans.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/App.class b/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/App.class new file mode 100644 index 0000000000000000000000000000000000000000..cdff5eebf020d26ec0b56e3a37eeaa0ae98b6e9a GIT binary patch literal 374 zcmZvY!Ab)$5QhJ>yKUW8tF0cqDBjeAd4P&g1W${I%HF4Ipi{TWvdPxx@+5fh0emQN zcJZKKLjKA86FxHY`Stz*V2=F+9d!GMMu^ctmoWwI=Am)|1hG>B{E4LUiq(jKVl&Yi{fH!c>p6D8!khE~g@+iktk$ zjKY$=!a@2EYo?GqxVp;C4L5*+@Gn-hA%(;H+6G>mj6Dl%ZmkRLKZSLi{%z$~7k3nv zLX9_6)B=n&m5dYgWfaX)vSk>eTaxKE2jcTLs8=yMNJN`5Fu+iB)ZSx>+iiWP)iHJ@ M4yCpyXW}va2A3vPsQ>@~ literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Factory.class b/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Factory.class new file mode 100644 index 0000000000000000000000000000000000000000..5288b022acda91629f4f0c6c1b30a6aa6fbada54 GIT binary patch literal 2329 zcmb7FYg5}s6g_Jj3p*+}I6z#QLIO?9qo_@r^Z_B^VG=h^a4~@f`V#gAM1;ghaypq# z|5Mv(Nv56Y59p8T^sFQ(Hioueq}|oI=iGbu?CQ_Ie)|K!Ja)54AgLjxqYG()+@ATu zG;Gt^F;=$sWIYf_&svTZ%n2lmYZ%rsf~x}8_RQy| z7nsI(zTx>s-SwogD*XeOL}RtU44OU@UR*8Bua%Yr#+dHE;hE7W#x%U6<2r5#44o6g zl>JzwR{SsAs$XX(aFqE%)3O`VVW{ z?ttb_H>52C8L4e5>U%oR2dOiTyXZQBbZC;)qT3**w_-W+adUrLdTZvk&6U22TQ}`> z)3ek(UQ7kM7QJxV;_(@n5xB4;1NvGWAR;q0YsaC1JTgw4GWu+1gU*qru-bG2YhSKg zzD50c$8qTqiQc?Io=bm&ZW~HXe&PLXWf^Qeg zox{&PGGu9QY4u6S9a$*i9#OZ?IfsWV18v`zN|n-DNhMixn_gWmTgq8_Y?f(t>j_+L z3#xiuozO zxXPP7!M_IGuI_e@(j4=*!RG>Jb4YRo%qzvoLtNhY8E?JDwL=vD(T4{rRbgnlQ=F~ zW%MP!iZgl;mz|3nJ;P+~wj>kPJk6So6E)|K6Unvp{Ofl4)}ANv4FL&!8|FL8G)yK` h-GcD3jrxgkTtfqr0euX)!khlty#oJwqu5Dh{s!&39MJ#( literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/InvalidItemException.class b/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/InvalidItemException.class new file mode 100644 index 0000000000000000000000000000000000000000..cc6b65f31eebf6aee06f56b31228cfd439325033 GIT binary patch literal 391 zcma)2O-sW-5PchC(#C4FprAKF#1C+PK&2p}PzWBZ^uA4(bR^j=$)@ygc@jMM1N>3q zY!wvr;0z4&9&g_c@9q8N6~GmG2?DIe2s>CuByjMk7D^V%f zt{&8+V5XPaOci5Qk;h+T=w?(49H;*=?+e7Gu4|RA?0y|8kc@0oW%`!mWc;R2+ z5HY9YOK@{OJll*0%z8dLJAa0F;w?bJ(`N~^SlPw~Z+o9Abg;>Y_1Hpp<+aTyz|IF* CgkN(2 literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Item.class b/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Item.class new file mode 100644 index 0000000000000000000000000000000000000000..006094926007546803cb5472e95b84d5403a4303 GIT binary patch literal 1834 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 literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Util.class b/week5_TinsaeGhilay/Task 2/shop/target/classes/net/tinsae/shop/Util.class new file mode 100644 index 0000000000000000000000000000000000000000..797148b53fc378a683f79c0c8f1a690a07b2bf47 GIT binary patch literal 1550 zcmZ`(+j1I55IuvCmaC*7S-!+p)=uJxi$(4iq1ZtZN>Kuof)%k`l~gUu6s!yj*;#J@)G9^f(2I`s&W75Ee9q6IjHO!0MU# z#LV|hr;|T!ok`0VSlYE6+rKZcu$69VhzP7Z($D+0f9JIDg>UPo!Hl9kU}{fn-Pe`vb?} z_V&OLNN-hUX*GP;b~=Uh<&uh?K?@pE0&6pH>8T}$ibTV@z>S%sK5~4!F9UxJYuHd4 zTot%Bzn#%_2S1ywo-CxBF=)81lD{Evb?eO;#Bme1G;AjD4)kd*uV*Q+V!6`vWy9yt zmkveVn5PTY3lZEAc%k#RUoRDnl5Q0DDkZ&qsMn4Sz4Wl$Fd90w?tA)HOu^L8ZtLZm zQTn!2*T1WmtHt`MepEWuizmi$xkjF9sb=H?v}5+AZj>GxW6Ih|r84uirDwVJSit{- z3|-rjI+Lpe@nh<0$5k5KPYgNa6ZlZwVA5>28>8XSm7XWt>Pj*K;i2hwna6)?i2>v zY4%3UCcHmrb6Tm`j;xLPE$JGn22}LGGJ8$awUs?t4EtT%;~iGs)E5N-q0TqAZBTXe zC8>t>xM~h3T#;R?H|;mi@3Yxvg&qjUxCKjf#)S3t`l2`17>ry?9@;ABsA|t`B|mPn zfq@Z<(`VT0)Yn%K@)Oz8w_k+vUey4>iU_ z@bxr7vB$_TechM1c9c2C+X9tr>h?L_4dMIjpSY7fM_S++u2*TLrdG6;yY~Xyxr+=T z4EtydsnAMIt!OoyBP4tA49QvQ&nZqE>l84DyQT(=uP~{hoVD|(p2ZE;$*sy2h=J|CBNYt4Pxf?I7I9f140^Z nYU~f8A@_;`@)cJ$t?|<0-w>6F>k>L!-=myS?yyJh5cdBCPcu=d literal 0 HcmV?d00001 diff --git a/week5_TinsaeGhilay/Task 2/shop/target/maven-archiver/pom.properties b/week5_TinsaeGhilay/Task 2/shop/target/maven-archiver/pom.properties new file mode 100644 index 0000000..d133594 --- /dev/null +++ b/week5_TinsaeGhilay/Task 2/shop/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=shop +groupId=net.tinsae.rest +version=1.0-SNAPSHOT diff --git a/week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..50996ef --- /dev/null +++ b/week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,6 @@ +net/tinsae/shop/App.class +net/tinsae/shop/Item.class +net/tinsae/shop/Util.class +net/tinsae/shop/Factory.class +net/tinsae/shop/InvalidItemException.class +net/tinsae/shop/ItemDao.class diff --git a/week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..8173d6f --- /dev/null +++ b/week5_TinsaeGhilay/Task 2/shop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,6 @@ +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/shop/src/main/java/net/tinsae/shop/App.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/shop/src/main/java/net/tinsae/shop/Factory.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/shop/src/main/java/net/tinsae/shop/InvalidItemException.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/shop/src/main/java/net/tinsae/shop/Item.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/shop/src/main/java/net/tinsae/shop/ItemDao.java +/home/tgk/Repos/Trusted/DistributedSystems/week5_TinsaeGhilay/shop/src/main/java/net/tinsae/shop/Util.java diff --git a/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Client.java b/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Client.java index 0abee46..33bf599 100644 --- a/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Client.java +++ b/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Client.java @@ -7,19 +7,13 @@ import java.net.http.HttpResponse; public class Client { private String url; - private String table = "/items"; - public Client(String url){ + public Client(String url, String table){ this.url = url+table; } private static final HttpClient client = HttpClient.newHttpClient(); - public static void main(String[] args) throws Exception { - - - } - public int postItem(String json) throws Exception { HttpRequest request = HttpRequest.newBuilder() @@ -54,7 +48,7 @@ public class Client { } - public int getItems() throws Exception { + public HttpResponse getItems() throws Exception { HttpRequest request = HttpRequest.newBuilder() .uri(new URI(url)) .GET() @@ -62,10 +56,10 @@ public class Client { HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); - return response.statusCode(); + return response; } - public int getItem(int id) throws Exception { + public HttpResponse getItem(int id) throws Exception { HttpRequest request = HttpRequest.newBuilder() .uri(new URI(url+"/"+id)) .GET() @@ -73,6 +67,7 @@ public class Client { HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); - return response.statusCode(); + return response; } -} + +} \ No newline at end of file diff --git a/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Delegator.java b/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Delegator.java index 6c76660..1d846c4 100644 --- a/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Delegator.java +++ b/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Delegator.java @@ -1,14 +1,17 @@ package net.tinsae; import java.util.Scanner; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; public class Delegator { private final Client client; private final Scanner sc = new Scanner(System.in); - public Delegator(String path) { - client = new Client(path); + public Delegator(String path, String table) { + client = new Client(path, table); } public void executeCommand(String command) { @@ -25,7 +28,8 @@ public class Delegator { try { System.out.print("ID of the item you want to delete: "); int id = sc.nextInt(); - sc.nextLine(); // consume newline + // consume next line, safety + sc.nextLine(); int response = client.deleteItem(id); System.out.println("Command executed with response code " + response); } catch (Exception e) { @@ -43,7 +47,8 @@ public class Delegator { System.out.print("Price: "); float price = sc.nextFloat(); - sc.nextLine(); // consume newline + // consume newline, is just safety + sc.nextLine(); int response = client.postItem(makeJson(name, description, price)); System.out.println("Command executed with response code " + response); @@ -75,7 +80,8 @@ public class Delegator { System.out.print("Enter ID: "); int id = sc.nextInt(); - sc.nextLine(); // consume newline + // to be safe + sc.nextLine(); client.getItem(id); } catch (Exception e) { @@ -84,6 +90,47 @@ public class Delegator { } private void delegateUpdate() { - System.out.println("Update not implemented yet"); + try { + System.out.print("Enter ID: "); + int id = sc.nextInt(); + // consume next line + sc.nextLine(); + + // get old values + String response = client.getItem(id).body(); + ObjectMapper mapper = new ObjectMapper(); + ObjectNode node = (ObjectNode) mapper.readTree(response); + + while (true) { + System.out.println("Which field do you want to update? (name, description, price, done)"); + String field = sc.nextLine().trim().toLowerCase(); + + if (field.equals("done")) { + break; + } + + if(!node.has(field)){ + System.out.println(" no "+field+" field in database. please choose apropriately"); + continue; + } + + System.out.println("New value for "+field+": "); + String value = sc.nextLine().trim(); + + if (field.equals("price")) { + node.put(field, Double.parseDouble(value)); + } else { + node.put(field, value); + } + } + + String updatedJson = mapper.writeValueAsString(node); + client.putItem(id, updatedJson); + + System.out.println("Update successful!"); + + } catch (Exception e) { + System.err.println("Error in executing update command: " + e.getMessage()); + } } -} +} \ No newline at end of file diff --git a/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Main.java b/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Main.java index 87516f8..ac435f3 100644 --- a/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Main.java +++ b/week5_TinsaeGhilay/client/src/main/java/net/tinsae/Main.java @@ -4,21 +4,31 @@ import java.util.Scanner; public class Main { public static void main(String[] args) { + + // host url String path = "http://localhost:8080/shop-1.0-SNAPSHOT/api"; - Delegator delegator = new Delegator(path); + + // table name + String table = "/items"; + + Delegator delegator = new Delegator(path, table); System.out.println("Hello! What do you want to do? allowed actions are \n"+ - "Insert, update, delete and read"); + "Insert, update, delete, read or exit to close"); Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String response = sc.nextLine().strip(); - if(response.equalsIgnoreCase("exit")){ - return; + if(response.equalsIgnoreCase("exit") || response.equalsIgnoreCase("done")){ + + break; } delegator.executeCommand(response); + System.out.println("Continue with another command: "); } + // we must close scanner. leaks happen in java too. sc.close(); + System.out.println("Program ended. \nDon't forget to close the server too. \n Good bye!!!"); } } \ No newline at end of file diff --git a/week5_TinsaeGhilay/shop/pom.xml b/week5_TinsaeGhilay/shop/pom.xml index 1adc2c3..ec24641 100644 --- a/week5_TinsaeGhilay/shop/pom.xml +++ b/week5_TinsaeGhilay/shop/pom.xml @@ -1,22 +1,30 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - net.tinsae.rest - shop + net.tinsae + client 1.0-SNAPSHOT - shop - war + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + net.tinsae.Main + + + + - UTF-8 - 21 21 - 5.13.2 + 21 + 5.10.0 - jakarta.enterprise @@ -30,18 +38,7 @@ 4.0.0 provided - - org.xerial - sqlite-jdbc - 3.45.3.0 - - - jakarta.servlet - jakarta.servlet-api - 6.1.0 - provided - org.junit.jupiter junit-jupiter-api @@ -54,15 +51,16 @@ ${junit.version} test - + + com.fasterxml.jackson.core + jackson-databind + 2.15.0 + + + com.fasterxml.jackson.core + jackson-databind + 2.16.2 + + - - - - org.apache.maven.plugins - maven-war-plugin - 3.4.0 - - - \ No newline at end of file