From f77d3c9e419fd9a66c5efcee41cd27857f431ce6 Mon Sep 17 00:00:00 2001 From: Arthur Drumond Date: Mon, 21 Oct 2024 14:42:01 -0300 Subject: [PATCH 1/4] Serializer e primeira rota feita --- .../api/__pycache__/models.cpython-310.pyc | Bin 686 -> 715 bytes .../__pycache__/serializers.cpython-310.pyc | Bin 0 -> 634 bytes workshop/api/__pycache__/urls.cpython-310.pyc | Bin 295 -> 296 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 570 -> 854 bytes workshop/api/models.py | 4 ++-- workshop/api/serializers.py | 9 +++++++++ workshop/api/urls.py | 4 ++-- workshop/api/views.py | 14 ++++++++++++-- workshop/db.sqlite3 | Bin 135168 -> 135168 bytes 9 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 workshop/api/__pycache__/serializers.cpython-310.pyc create mode 100644 workshop/api/serializers.py diff --git a/workshop/api/__pycache__/models.cpython-310.pyc b/workshop/api/__pycache__/models.cpython-310.pyc index b5faa2c7c136f9664297d92ae12dcee1124dc695..75bf3ff82387d9443ae4d432bf1483f78929af45 100644 GIT binary patch delta 271 zcmZ3-dYY9tpO=@50SMf>#nQ7U@}_dJ0yz#qT$N_yhV^({3)YW}8$DYeK6#T#x*ydHWU-Qv@WJMBkLf%G2g~)4PWQ^uqthC{B$_; z`H>CdX*J1@&0yxhfX%P$^`#vQ^T*1M!?2p{!kxLltrl@^CZl|5f&Ix-RHQV)79mB* znBp1tU3AZS%D1R>MzBIa=^r_b*P$HMllVZ8u?=2lXzZ@HVXALDj!vq)zy~p{M-0up d>!&pD&-&}q|GLC%zuDUX{g7I2o3;72_y#B)kP83+ literal 0 HcmV?d00001 diff --git a/workshop/api/__pycache__/urls.cpython-310.pyc b/workshop/api/__pycache__/urls.cpython-310.pyc index 7ea9cb0bddf2ea7dd1042aef69f4683124ee28b4..6509ef2058459e4ed2c523b070730f1101a65ed9 100644 GIT binary patch delta 31 lcmZ3^w1SB@pO=@50SGE5ilygI|2)O_N delta 30 kcmZ3%w48}IpO=@50SNpU1=4dT@}{tII3*URPAuOD0A4HyY5)KL diff --git a/workshop/api/__pycache__/views.cpython-310.pyc b/workshop/api/__pycache__/views.cpython-310.pyc index cacb53658ab163a91739a4a11c2dae4161fb088d..5b98d71856cd85ed5064ed4c16e069a9fa415a09 100644 GIT binary patch literal 854 zcmZuw&2H2%5Vqs|?UF?lD!6dqngg2`K&XhS2nnqaU4fKKO2`j%Zl4gGJrJ`GN)SO6 zscA_m+JOpcRx+@e2vt}|W#sKh#dT69l)NG$7ReP6iKLgTOhtM~^4>L6A~|)*i?^@e z&*dqY={srKW@Y3xV8C2B=4J`^UAzyao^v(dNIk))w@(1h9*B7iN|KTaQU-#G;EI$C zVZj}W2-?Q3hqVlLoZz!R2PZ^%31XgrvSdNO2H(g0CC$-7PONc^E2U!yX@>DoaLe=1g+{7lmuPvimd3isA{5s*+sVEYeGeY| zdQ;4rS{7W}*;*I-(kyM$76*K?R)Pyze2_@gozM3{$zu@h>_y{wa zVSDD-RN4f}8bs8m8ST@}U`xXgvVT#5wBQ0f708JoFfJW=XnCMB20mB*H4SoZUL&b;y delta 356 zcmcb{wu^-?pO=@50SNpU1=9C1OyrYc)S0L)ZRF07!kog=!jQs}%Gk^t#gf7r%%I8k z5~Na-@fN#dfM-}{YWYgWTO2{D#Rd6!#iPCmh8Y6cPn3m|C&SzZLvdyB&+ WH$SB`C)JJ-$SY<85WWoBe#XJTPyR{sk&cOeN|2t6fHNPke zGbbYxGczYAFIcLTfqyT5>&C`PehV`uHU?R9W6t1$qRhM!1tXWt;^fkj%p!&4{9J|n zVuj?Q%*0|N10xe%LjzqSLj^-~D-#1NQ_Jal&ojCMolwgF^k?nH#zKBO8zxQ$epya! uMovc~m~qk7N{J~csVPcU3e~l>vFvCj8Cn^b>KPdunHw8y-+iCa)c^qZMpWNEx$z}RR!VC-y zYzz$C+|06^i3OSQC5gq^lXvS&iV8C^>vE=KCFZ5)$0w%bX6D7`{)rP(`B|75IoY{@1~KygVc`F>S+L3h#Jy0bCz?`GiN4HVeOzkT<8Mppv>QPDI* From 187af29555d23e6f6a5acba1b3cc623c2a6a67da Mon Sep 17 00:00:00 2001 From: Arthur Drumond Date: Mon, 21 Oct 2024 15:23:38 -0300 Subject: [PATCH 2/4] =?UTF-8?q?Cria=C3=A7=C3=A3o=20dos=20metodos=20na=20vi?= =?UTF-8?q?ew?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workshop/api/__pycache__/urls.cpython-310.pyc | Bin 296 -> 352 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 854 -> 1468 bytes workshop/api/urls.py | 5 +++-- workshop/api/views.py | 14 +++++++++++++- workshop/db.sqlite3 | Bin 135168 -> 135168 bytes 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/workshop/api/__pycache__/urls.cpython-310.pyc b/workshop/api/__pycache__/urls.cpython-310.pyc index 6509ef2058459e4ed2c523b070730f1101a65ed9..a792b4f190b1d36ef1b4ccd477bbe9442b7e2760 100644 GIT binary patch delta 195 zcmZ3%^ngh_pO=@50SFe&6ieR*q#uJg$bc2daRB0Cn~BU!*i?fTvGE>WM@dan* zrRSuA1i*aO5|C6C7nstw$xN~H(`296Ajee1I&roP8#mB^BJPQMBk@rGGGC69Dul3XQH;G4I@J;V+uqw^$SoO!jXsJ0ir7>ULmJ+Ys?yh(Uf}B-BPRP>#wI;Tx=2;|Gv3A{16cG5tT0o z2jw12^9+O}k`|<-8Kt;p1uKIrfOQ~w!OJiUy*(_VGR|UekBX#hWDQFGBr=xCYa$ax zkAtiUdP6orZ+d+}F7!y+`UJO-l)8BR(Ss)=^%9oJwldRdV$>&E`*>fNz4z2b#tJ(# zu%(Tbp3);xj1H6@V302d1LYn}a~*^t8I>esl1lcPWC11*Z!SYfAaV_iW$^9+9{W5H z2b>!)%?b!h#`GWdjvO%?9Qt4<>?pAOFc^o&6hZ~vKBUG=F?p3nI)o!GuAYz8z#12b zqR~>yOde7`u(_iISOor85?}+KBvk%{BR;RCAFjN+kF%gI+ zZP6w@Se(PK3f^;2V9IkS9)e=YAstgmPv{XlWC)7B2Jhes+R4+nQ7n|8&pp0>RQdyNU9fQ@oG$!i!ju;iEW*3*RQw&ww zsB!fXl99>xffEvt75mDA?W4G*zxw@0`R%pe@{R4S_5RkTi_fn})0Pq1=)S{aL547O8?Ch+`BFS7$rO;4v)+|o@$m*n|G zlq%0%GtbLP&I(+&^8Ce26tzb$WB6ZCoL%Hsc$;p3Krnp45|YqX>rY?B1hDFD02b(Z>3q`2(QeB14ZLjy#Z43*#ft#E1>P$# z4e~gFdTF$D)0SJ-(0Tceh5}*ptokO=_$P2zzH));|4VfbM^H&sn7Yy1=eO3JTR7`u gQ>A%#7a zv6(rFBZVWFL6dXh1kH(ucQUd~u4Oc36qvl3F^rLYG8dDUClk;xMj&dDy^Wewv(<1z6qPxr#P=pBpzj81v diff --git a/workshop/api/urls.py b/workshop/api/urls.py index 1db1bec..c48dcf1 100644 --- a/workshop/api/urls.py +++ b/workshop/api/urls.py @@ -1,6 +1,7 @@ from django.urls import path -from .views import TasksView +from .views import TasksView, SingleTaskView urlpatterns = [ - path('', TasksView.as_view()) + path('tasks', TasksView.as_view()), + path('tasks/', SingleTaskView.as_view()) ] diff --git a/workshop/api/views.py b/workshop/api/views.py index 890e507..035af81 100644 --- a/workshop/api/views.py +++ b/workshop/api/views.py @@ -1,6 +1,7 @@ from rest_framework.views import APIView from rest_framework.response import Response from .models import Task +from rest_framework import status from .serializers import TaskSerializer class TasksView(APIView): @@ -11,8 +12,19 @@ def get(self, request): def post(self, request): - pass + serializer = TaskSerializer(data=request.data) + if serializer.is_valid(): + serializer.save() + return Response({"status": "success", "data": {"note": serializer.data}}, status=status.HTTP_201_CREATED) + else: + return Response({"status": "fail", "message": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + +class SingleTaskView(APIView): + def get(self, request, id): + task = Task.objects.get(pk=id) + serializer = TaskSerializer(task) + return Response(serializer.data) diff --git a/workshop/db.sqlite3 b/workshop/db.sqlite3 index 9a5af92518af2304991246732f64ac483e7ab99b..a76cfbc18a20d6c427156ae71b086c24bc70c565 100644 GIT binary patch delta 108 zcmZozz|pXPV}dlJ_Cy(HM(vFWQTmL`&Aaut@78DZoWRA*@5{iym%o+YcVnYHzl9ky z8-uL5F=uc=QD$C=f{9CJadK%%W|2a2ey&1(u|jTQUVgEWfsu)>p@FWEp@N~gm5G6s Mspa<8^NiIF0KA|ds{jB1 delta 49 zcmZozz|pXPV}dlJ) Date: Mon, 21 Oct 2024 15:43:20 -0300 Subject: [PATCH 3/4] =?UTF-8?q?Rotas=20e=20m=C3=A9todos=20criadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workshop/api/__pycache__/urls.cpython-310.pyc | Bin 352 -> 354 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 1468 -> 2027 bytes workshop/api/urls.py | 4 ++-- workshop/api/views.py | 13 ++++++++++++- workshop/db.sqlite3 | Bin 135168 -> 135168 bytes 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/workshop/api/__pycache__/urls.cpython-310.pyc b/workshop/api/__pycache__/urls.cpython-310.pyc index a792b4f190b1d36ef1b4ccd477bbe9442b7e2760..2d6a2be0f0ce2deb6ad05084fff2d165d9c712ef 100644 GIT binary patch delta 56 zcmaFB^oWT!pO=@50SI2r6HDJQk+)B@imfEEIJ;QCiW@@PWTx2ZPh4lu22xhUHSu#U E0O$D;g#Z8m delta 54 zcmaFF^ni&spO=@50SFe&6ieSWk+)Cy7HdgjadvSP7nstw$xN}ExWS%{8>ps;d*atz E0LfJmIsgCw diff --git a/workshop/api/__pycache__/views.cpython-310.pyc b/workshop/api/__pycache__/views.cpython-310.pyc index 084df337b149fe6fe9e016fc1dbb532ce4fa4c72..d4c80412652f9931e3bd8215b5dd05c99fcd2e32 100644 GIT binary patch delta 690 zcmZ9KPfyf97{=#cr`_Fd2_m~lToqx}20{oi@dFSIr=r=$gE85VokF&3z|52oNXcFd zw>^+KLJTBc_UOfvCqG6#_yN555q#fn{DafXuWz53>CE%AUur+5f`fX!N}zrG(AaIs zPr(^m9aCKgrEtw*ua_88i2Z{s88hvIS`KN6<6>vKKN#Du>>FLM-^HB$%-8AC`OlWG z{R69 z%DEr^>lxnU_|S9I+0LxS&^+SE{v%8df6xXb79=SwsWTM9d-3 zjlP4J2ZX-Hv*{Y*Ho`+-B>FC*g+MElK<;66AMpSXI)yOF-j1F^j2n@r*UCY28LUA*&oL})W8j(4v zgxDyg&%rj#EFFd}_<8{ke~cAUC4(eO{+cOfHsknZcYW(s;mJnsI%UG@8zte0(iC@HE*dBpYq+ii( PTXl|U8)h`^g|qMrz9xde delta 159 zcmaFOzlWPIpO=@50SIo+5=%eJypgYsNl%lph!-ewi@mrsIXShs_!diEeo3k(QxQ8* z6f9N529jq3Y31rlqoWfEr;-|?{BoET3 q03sAYga}Zvgs>8jDGtQNEI@*Tfrqh3X|g4IC8H8hR($d)c0~YO4', SingleTaskView.as_view()) + path('tasks/', TasksView.as_view()), + path('tasks//', SingleTaskView.as_view()) ] diff --git a/workshop/api/views.py b/workshop/api/views.py index 035af81..4551852 100644 --- a/workshop/api/views.py +++ b/workshop/api/views.py @@ -27,5 +27,16 @@ def get(self, request, id): return Response(serializer.data) - + def put(sekf, request, id): + task = Task.objects.get(pk=id) + serializer = TaskSerializer(task, data=request.data) + if serializer.is_valid(): + serializer.save() + return Response({"status": "success", "data": {"note": serializer.data}}, status=status.HTTP_201_CREATED) + else: + return Response({"status": "fail", "message": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + def delete(self, request, id): + task = Task.objects.get(pk=id) + task.delete() + return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/workshop/db.sqlite3 b/workshop/db.sqlite3 index a76cfbc18a20d6c427156ae71b086c24bc70c565..0efb19d39d7492aad0d377878d2873d58d11b2e1 100644 GIT binary patch delta 48 zcmZozz|pXPV}dlJ&O{k!MxDlltqF`v_H!}uw=(eWR delta 100 zcmZozz|pXPV}dlJ_Cy(HM(xIgtqF`v_H!}w`!ewF Date: Mon, 21 Oct 2024 15:58:07 -0300 Subject: [PATCH 4/4] Troca da query por get_object|_or_404 --- .../api/__pycache__/views.cpython-310.pyc | Bin 2027 -> 2041 bytes workshop/api/views.py | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/workshop/api/__pycache__/views.cpython-310.pyc b/workshop/api/__pycache__/views.cpython-310.pyc index d4c80412652f9931e3bd8215b5dd05c99fcd2e32..695505f6bb3f75c3475d3b76344f4edd17dc9360 100644 GIT binary patch delta 1067 zcmZuwyKmD#829<@#AyO)%S(j<h4k`l+vNB zm597Dv}~Q3SYc#gzJCG64zTfkZrV^(Tlc%~rMutvxS!=eGM44BpO`Z1&bt1B*HC)gOvCEgE!_8 zd8!qOAblN2P1smao2~V~d?QY_LGF=i_L;l{xu9;p8iCuT#kFNN)7V3t+~BEweXIm|f>lXja2>tWKSQs?1%#5DBS*}i&zs*GX<;WR?^2u4AY z`dZ3GIrFvWb7Sbaa^yZ9$goaGi<`M%6W3&g?7Oy{{nDMyi(nLrAU&0mZFNHvYERoD z8@kYXdaQ2|sEq3G5vi`Ncm~5Gn1PUIkdwu1_Y8K#R;rkc2>HrMycv=`2P>!JW?%KW z%?7CdbLf#+qbe}cd-{&P3;Drr>?%YNCiE7pvDPNk_^1jiwyC+TE~3W*yF=~VS~#$J zj?Zqu4Qw3Y48mCiB$0P%iJeFB0)SWiKgGP46X?fE4cdd!C4@YzE*atU()on3D@v(LRN64I!VZ+bCh|zXzb2 zA95WetR=_!vK5=yrt2`Y`rb(P*qVP=p>ep{O7HOHl!<0n@H`(m!Xhq$B^Gv~Hz`}m upN%Z?h_&G&zN~uWOuDF7$1e>^fU32WAd0R zBwxu(7+2_MD+hb0ZrnXMka3*yw{0!YsB(c-7*Y<#d97M+PU+NbL1y((hQ9JlTJoE& z5I0$3PuB8C6c8>UEX?3Cj8fid$2y<1+4GG>jNG1u&nGG$0w^KI(>=>0fusE72YWMM zKx|>844|!uM6^c*8IeBItjC6=&o%Gy$Q}|Xo9>*Ely(}Sqio1mSp;*mQI4CLDnnb% zl&7>VQm(6UV@?gl$?~hP&}hpi-}uI0AEy6n>5+&FI--5hb7G%bY8C#SQ;S&I6-=N? zUMIpnqS}jm;f&}mMqJ=C!ZU1k!iN5ix`$eq5S9_HAfOB|XaKl^!)pLxFt=3W