From 825c392b37729ef86f3ed14db400e767f5f5989a Mon Sep 17 00:00:00 2001 From: Lou Date: Mon, 10 May 2021 16:39:48 +0200 Subject: [PATCH] Adds index and show defs, and relatives unit tests --- app/controllers/api/v1/tasks_controller.rb | 22 +++++++++++ app/serializers/task_serializer.rb | 6 +++ erd.pdf | Bin 29305 -> 30224 bytes .../api/v1/tasks_controller_test.rb | 37 ++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 app/controllers/api/v1/tasks_controller.rb create mode 100644 app/serializers/task_serializer.rb create mode 100644 test/controllers/api/v1/tasks_controller_test.rb diff --git a/app/controllers/api/v1/tasks_controller.rb b/app/controllers/api/v1/tasks_controller.rb new file mode 100644 index 0000000..df8dac1 --- /dev/null +++ b/app/controllers/api/v1/tasks_controller.rb @@ -0,0 +1,22 @@ +class Api::V1::TasksController < ApplicationController + before_action :set_task, only: %i[show update destroy] + before_action :check_login + + def index + render json: TaskSerializer.new(Task.all).serializable_hash.to_json + end + + def show + render json: TaskSerializer.new(@task).serializable_hash.to_json + end + + private + + def task_params + params.require(:task).permit(:name, :description, :user_id, :activity_id) + end + + def set_task + @task = Task.find(params[:id]) + end +end diff --git a/app/serializers/task_serializer.rb b/app/serializers/task_serializer.rb new file mode 100644 index 0000000..c4cd819 --- /dev/null +++ b/app/serializers/task_serializer.rb @@ -0,0 +1,6 @@ +class TaskSerializer + include JSONAPI::Serializer + attributes :name, :description, :user_id, :activity_id + + cache_options store: Rails.cache, namespace: 'jsonapi-serializer', expires_in: 1.hour +end diff --git a/erd.pdf b/erd.pdf index 0d0f8a194cbf07fcfa12e0b16665652218f5c2a5..27683c4d0443fef64b5c7b02c57c1a89ac143728 100644 GIT binary patch delta 13875 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 delta 12996 zcmZv>bx<8$vptNv1PksS+z%cgxVyW%21t;>^`HlWy99T4CwOoV5Hz^E{GRvT`_-+R z=bJyK_VldoUfsQ`cGcSP$IuTu(D90ZwtO@R-@C3O?SmzE0^OqK9)gZ{FsS?kggId3 zF|e>_>V=ahB=z|zNv_%n{p5HB6k^F^Sd@4;U38`nn{wX_Ptw5Q3s`k?$+kUF1D@0m z7lDQ+1PoZ_*9&-8bVSraNg_~udLO|kR2x~#^>_NM$t3ru!aiJ`D-N2ezqSCRSuAN` zzcmNwV#Jx}z^Sio!_!K9B?+_gb>02bxbm?D7PEmG&D`01ptYYE%X>H{J5z` zSvkDUUW>=!hO!s)aRgh|xK$T#e7AcnDdLx~up_{4DKo2{Wazw$JE0Ffe!9O3hG@}` z=!`6J98>C|K9A&79@cs~GE@;%|$;Y@XU1Dd;j^EJhs@~B*_KdtgqOt;vh9p0<) zFho%;WFpk2rIghiR%uOuKfe@t+1M$*QI&FMGD8Yig zP0V_gQ~OFWv4O9seidETAmxK7=}u$@j-H*RQE2&8V&OB6B_8JzhouKNth103$5d9R z*V`xe6~tCwAbY61b{{O3YIc`B`B8L_g!j#sM&BuqJh|#74$~o<@{CBVeB&H*a-Ug0 zF`T;FK9L$E8J<)7^bSFwa8pIl5mxtuE#jfFGL#Y{@&tNuT`|i#V%Pn@$uu_lY=uu`4Zdq9dTwe1f zi{g^kJW+8j!v$G0{Q5eb{f2U+up_7Tk;HbnTY`mwr7#8{eDPDziGHcf+8edQswGb# z14~YS+3G1c4#h|xjn!58o%|E!g!e;rlvD!KC3w^{*NGsKXq(i#)u!yYKXF9An_F`C zcVnoJ$bn%Rikio+SYJx>+rtMW7|HEc*9|LX5Q;`i~7wGAvd8A~~rg+6`Nwx9+oa%(Tdg`>;snW?_^i0f|i>EQ*nN@K#e zW6Q!em86^Oysq7BER*@Sw-#ZXgdedI3#}n=n!y`D&B`h(y&1CMKslcO2y>u)6AMv> zjF#NtLlY9Wtov`Qw2=@ix8LMTyLC(m?@u~LWo#W+Mk!&SZi{OBY@WelE(&Ixb26WM z@s&SzBMoAQ%s}_@nIg{6eKLsj$NgQ#)x;v}k)BfMOkEkTD5g^=kF*4HpPekBoBl~% z>!)Q8tNf>}7A=Gwlmb}2B0ok?U%A^+AFQJOieBnu`)GZ{udo{7(Vw-Ct#2{+HS|j% zsqkd5?7Tent?+oz2%Nm^6kObpIfQwDi=P)oLegVaHY#)|f zL51diU_raQ!De1-I;#4y-cAg)37+#QORyao>*&s}d*klqX5C`%m(OJDezp(r&pT5V z>7BSkVO-58-Ij`i{T|7?4vB~(Gx1b@RP9QYZ-Z=4{FJArnbpQ??jv>ff@Ju}2^!+# zafWr*WrJRZUM2YaLZ2c^KC>JiG%$-arN(zqBW0|GLizBv2fk~?-N$MFR@vg#o4j`d za_;-$VSCqyA)ZY-@bCia_SOZ4lZDp^ec>rl!rhCkAM&$bbKHGgKnd@ha7=%Qh~K;U zlgioC)ur2-d4Dsle4oAhPNSZ!LD@r0GnwFhzqQinW%MiaG~4O+d(!SFAy4w|()AMRMvG-=S)sr{oD>oP2s|(P$b+m@zFQ(b&au4Sqn< zO{Q5uy^defSqfn+iWgW&IhwGE{PLny+q(rXcy@ygVJxS$a>Mpt!=bNaaAojIST zp!U|NA317BAC5B;+_hOd3*J?9K5q7n=`2~buA%#%2S7!=MggziEXSr6Wgi8PRo-|+ zpDBfvGyI|X!tH7N)x-tnN|zsaGsbH}S@D_bEsI3Lzvpt$eaVddJ(Rk6{?6U~Slo%D zIm-O1)h%|5A9L7cU{M`m4&zEq8Y!-`>ob%P^bR5_>LrDN$QL37Lr+QZ#Jk{yU=6G#ZM^|>gYr5LWQvE5Y*OH1+n`les)&ymu6X~Okqn53NTZSy62 z{t@2m*Kv;PX|aA8s}HggEUJ#!!{^P>ilXMs`^{OlCDDz$LjRPmn~|gw1f;;H2W|9? zPL-_j^ofvdX02bnUjiD20=RX>8iTAt#h5A@#rsg|@Gt;f({8+5qH_`ZQ3LItO}_l4 zdEtfM2PBFOx@OMAHn0&Xq~CDeS`s$iUO{7u!mm_LibOxXEapCA=~gXdDEc?E@j>DZ znj@J+)^iwZ)r{PawMAs^13uqdkehG&ij0h`q?+XkY_?9(Kg*|fx71%fx7r))_+e;lTpbJvqD*R+&qvv2 zt6a4`c!@r5>$}-ohm=dG8?>rV>c?15$iBw3CW`{7&bP~lANnr(urA6x?R*{ z)*aCr*2>vh$!hjBO51iHzI~GF;`Xf~a{Lv3K_$~?k*3F0Tl3T5c8Roz`RKeR8LyZM zj7f)G&sNK2>Dkb3*ugHY)iVLdx!?D{%v{Eo54mvqc6;-0rp8$u=ylNSL-F< z>`MFgrPVtzF-2WN-9o9lP>Xneaf@{_i;&JVlJIX|_5 ziAuh8%eu6dDoJNftuRz>jU3T-(-VFTL{sopvsoq|4x+ghB<&;IP*6(zu0ls>eX8zv zoA;^S%(H!{K_f_)d=WL`AxcbqtC;T*doqbkh*cVJh7_q zO^cACC2er>e&yyc1WCgwg;W(#`Es@ao2pnpa*>(|nOwr*skkFmn8aIasT%uDu|&Av z3$gVnVKqh8$c7wA{n7taf@4}IcE)`WM}XbQBlm`i#Ty+!uVa}>AsL4aFX<9(qSh`6 zIy#!B?Z)2Xz&hpGk)7T~rb4KdhoeC7+9{7@w>eiVEwW82T{XGx=(VixEgGf(O5~Bl zk66Ou3Rm&yS1<1`FC1Sx)K~DnH@G%jyjj63j%=01mq*bBs;qEHU%4jhXoeD|4U(Vh z_kxYitWjGn?WIHvgIiMrqX{`@%<8h5;7?mh;o7d-ZPt6%&$7I0ji9|Mlm{<~Z=zeE ztI}jrTgxX?GKyt z=h1kj8L_6*@RJ%UXesWn&fP7~ft(Q8w>cOp=e^&7LNS{E*yKLY@-5(nluZ$qv<9Sb$f__!KaV5q(QSZ zd_y{r6mPXUf5A{K%@|sh@tb7&t72^w{QNm5WU%0Ao-IT;ZftXpF6VW9mF?!2cG%%~ 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 diff --git a/test/controllers/api/v1/tasks_controller_test.rb b/test/controllers/api/v1/tasks_controller_test.rb new file mode 100644 index 0000000..8a53ea5 --- /dev/null +++ b/test/controllers/api/v1/tasks_controller_test.rb @@ -0,0 +1,37 @@ +require "test_helper" + +class Api::V1::TasksControllerTest < ActionDispatch::IntegrationTest + setup do + @task = tasks(:one) + @activity = activities(:one) + @user = users(:one) + end + + # INDEX + test "should access index" do + get api_v1_activity_tasks_url(@activity), + headers: { Authorization: JsonWebToken.encode(user_id: @user.id) }, + as: :json + assert_response :success + end + + test "should not access index" do + get api_v1_activity_tasks_url(@activity), + as: :json + assert_response :forbidden + end + + # SHOW + test "should access show" do + get api_v1_activity_task_url(@activity, @task), + headers: { Authorization: JsonWebToken.encode(user_id: @user.id) }, + as: :json + assert_response :success + end + + test "should not access show" do + get api_v1_activity_task_url(@activity, @task), + as: :json + assert_response :forbidden + end +end