From 68124b85deb889813a526db270a4498a911260b2 Mon Sep 17 00:00:00 2001 From: emile Date: Tue, 1 Oct 2024 19:50:38 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1974272 -> 1990656 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 18353 -> 19342 bytes .../__pycache__/models.cpython-310.pyc | Bin 11580 -> 11637 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 4028 -> 4603 bytes .../migrations/0030_chatnotification_users.py | 20 +++++ .../0031_alter_chatnotification_users.py | 20 +++++ ...otification_users_chatnotification_user.py | 25 ++++++ ...030_chatnotification_users.cpython-310.pyc | Bin 0 -> 766 bytes ...ter_chatnotification_users.cpython-310.pyc | Bin 0 -> 778 bytes ...sers_chatnotification_user.cpython-310.pyc | Bin 0 -> 945 bytes osinaweb/osichat/models.py | 83 +++++++----------- .../api/__pycache__/urls.cpython-310.pyc | Bin 365 -> 425 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 2080 -> 2687 bytes osinaweb/osinacore/api/urls.py | 3 +- osinaweb/osinacore/api/views.py | 22 ++++- 15 files changed, 122 insertions(+), 51 deletions(-) create mode 100644 osinaweb/osichat/migrations/0030_chatnotification_users.py create mode 100644 osinaweb/osichat/migrations/0031_alter_chatnotification_users.py create mode 100644 osinaweb/osichat/migrations/0032_remove_chatnotification_users_chatnotification_user.py create mode 100644 osinaweb/osichat/migrations/__pycache__/0030_chatnotification_users.cpython-310.pyc create mode 100644 osinaweb/osichat/migrations/__pycache__/0031_alter_chatnotification_users.cpython-310.pyc create mode 100644 osinaweb/osichat/migrations/__pycache__/0032_remove_chatnotification_users_chatnotification_user.cpython-310.pyc diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index c65798313bc6c97941eaf1a53fe6422e7efed1d8..a28c7aed0be7f8964f6b8b1bd8326aff0658c56a 100644 GIT binary patch delta 1574 zcma)+T})eL7{}l9(Vm|6e6*C(b7&dZEq*M}oqhpjAq(4*$;^N{4Ht`625mS_TMA_v z$rdP7YGRg@pq`oOGMKyARHG0K|Mz)6CYDZ3ERE$|w%Z61YwI8iAv!$M7=T7^?_mQ%$R=I@C4QV4Y9K`IF@@ZB zef2A$3YyMmPk_Fj?E-Df1{aH>tB#PSRvL3FjRZgf6hH$8zz8sa319&;U;#LQ2LwO_ ztbh%u(pMVot^Jf0{i!i|`_nY|xSBhfw*%FH1E|rD=A8@Q?Ic!_fc7H#Q!y+g`4xVT z;*Q$e9yEQ-$8o~gZi!^sX#yw@)s>qkgK(YYqC}UBPA`9T6f-lEvJr3x;iSK z+r5W7f&^MZ;wAnY-pvhK-ZrnXY13yWxAAx5WrIN9gwALA8-zqIfv3)y4!4bk52(XU zw9Giw4l)zdzJ8ysnN_^3cKV|HF3laGkmjC~udw9vjI+I+oN{PG1^HLjm>n~g=IUR} z%Q=>CVRKG>H6@*+ri=1)v39!X`l#rpt!|D>A@M`;W#KR3W8t(A=6~a_@-KnI+gxhV zwiMyUU!0T-$aSV8IimIt_N5gi;ExW+UQM2iMe+YcGOfnd{=T%DOhiXVV#6cbH~STT zu*s)1DZU0@b6Zep3k1E*Ev?}|_|T*i5_CV3z!&X%B^?_s1sdO)U~?#cs4dXq4JiI_ zFx)X&1ECH)5=ztDuu z8oIkQ+q_)6Ykh#H;Ym+9rspYysGP}}p*qP)xsrNkInR*hmXwO6ZE|6IF|9LL|=|LX4SZmv4xuA>L(kFLYK_vX)=@sb_Fx>S4V*h&Nv6bmUB6s@_q z-C7HJL1$5 zAwRBe)!Km!&;fLMTeYs}w;D~s?p!^nJHd8ULuBj)nCod{IhGl2EC6DEKQ}{uAIoUjT1?V!g3maQ;NSURiw=6eU?bgt?d=%Vx#R ztlF{Pa9q>S3{ENIRHw#}&W9-L)1hs-)YKeqS%x8g%IYw-n?2iQjz$bdY_i+)6Pd;g zhf?l)JcLl-bF*r>hNW@FOvl-yLa42orft&3$c8%Fq%zAT7GzV48hcdYe<7A(F=uBg zUTIc!mk~|3ZOYkh)eki_;uwVM|JDB8D&ZQet2=vc#B~2g1~GKq+ELN1CY9PQC7R`! SHl=%}>MpT0P6(&l3;zQjV)Qlu diff --git a/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc b/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc index bbf77517d41ca27269b124a26673fc2258c4475d..5f8cd1a2dbc6c650b46881bcace7d8a4199be899 100644 GIT binary patch delta 6177 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 diff --git a/osinaweb/osichat/__pycache__/models.cpython-310.pyc b/osinaweb/osichat/__pycache__/models.cpython-310.pyc index af06a9810f367b14b103c89d5d8c5dc34772bdcb..1c33fa26111187f5d3c421e9e8ecc6ccac2c5fb3 100644 GIT binary patch delta 4096 zcmaJ^eQXrR72mnfz4Q5eKA$mQjP1iIU{YEwl9;-TL!m7rcu)xl;W|Ev!_y%#%H{}_| zxjyv`s=lh#EaKuF;#XQM2xa&&FNm}Lu};I2ix{=KNB0mF)kCwMMBRBM!}MxB{Jffo zomV_cqJBuxYF<)XSf^-JpXl94%WZ#pyp&BFCf`J(IVS(y`4F^=LqJYwZr-y%+ksLs zsT+C2GQ=xtnstcJ)J-)Tz-|ZZAUGtp20GaaF&a3)n#GO4)~+~MYY6OMe~BB}vEq}) zY1?y{Ol14}dWZUY_wM7;N;|~g0(IM^J_)8@ZcsG@!~9W@s|ffO0=kyG;^N)zAV3yoVG!OUGF311>?AUw zX7Z`AIYVnO>@`!jpbfZgZ z59U*rVOq(2X{=Hf`U6=rSt{nUMdReHOVz7bRRXi_R6fr~#4p18eNe!2B2=@j?F7h* zy&xI3N>(bL)F*k$%9e_!#CXlNu3iZ40U-Ff3$Pd9I4L`kOzAqOsN_T9_ca3>zX;w@ zz|#N=P~JyU(n&D;G0_{@NI?cyoQ+)R;aedMduIPZ4j}_Ow#6(QK%rKictjkj{aI@g zycA#*kOt@ggFsX1;*UmKpW+2)Bn?mkI|rBmoC0uw2{-{LA6PmrM8;k;%Y|ESL_c7U z9V59rUILBDg~OD|Z~!+ZjFhF-@j57y9`L41lSPYe&=G_(@`EAudn<7-V;e*80;i8S!O{BB3tbx?cY+wg$$X^YI8| zQ6snv0 zti#^?2>>i$tA`IA=+7E?ozG%Uh7QhUtK7&KoNmYa!H_nPCOVDbGype}TkS}L{S0w%s`+G(GL_OC$sS@Z7G$C7Xq=ys5%#Z@7k3|k9_0D(+FQRYas|efv_bmwtT) z>tqlN5G6*M8hp~X-w|h;+BQqSeh(sV0Hkvt@+&cL8~!4}AH*k3P3%SKJlERs>gQ;V zEFeq3R`I9ynE1xp?t|Mf>z+?6qU{y3QNn}CV#&&8vT0e)NTwozNN}ke-cy9H`O_`0 zfGtfWvv>`LlYqs%;orm%bx!j+dgFrfrT%`W@b8nre-*L4Wq(zL)x?FCl?mL?$rHI- zId|li(mGiEaOl&VG|@HUeny`eBv6$oi=xH3`L+4h77&fCqciUkQ*+r>14TWXp@cK2 z63sbt?xB>W$Eq_&ao+CUHDIFoPT% zq&j&2shl$`MxA5Q*Gbelk~A)&Fj0k6OXf<{AN3_qaGj(Y=mdXPiBOe@d@pd!rs-3} zNAyTL9&Z*$)@h%+K@$&KXnA|=7dO{+uPaAK`QA54QxomVe@q0wDV-NIF8{j ziEp==T~}yA3zP%hN$7H@E@m}0C+Hq7~qTWQi*ng;9f>iK>c` z^FUq*wmtLp;wQ9dGX&w3UqviJcEip#KcROF5!Cu4E zBIP?rc34CSe}rIA3ol=Cm)#iMDdBZuwjXrBGz|KOkZSM}*Y+#?LlR1h_qsk}E#k}F z@uM9yw!Kf4=wC>u?RL@xKLd~fhYdKIhOE#WWz?}d49Iaasq&%C#NF<$hHcSUv^zQ+ RZK1!xsE>X(MXOf${s+z|T3Y}B delta 4015 zcmaJ@YitzP6`nggyF2@|yljQRCc!q34b8IbjF)xRyUyJ) zV6(29LQ9&;rPYm68i-2MJnEE&Aks)pQ&p|hl>SK-RaK=CKT;`GMOCSa+Wtt|gr4t? z@fybz*pGA1J#)@IuY1qGlW!-Z#YiNm(4Y6;b%qXo{z`PGx-Lx15dFI8S31lTWg=Tv zh83F;s;8LAE~t~BJ*N7&%Im~wb&NeEK33bN?CRl~i?Oo*2aGBE6;tU~G{vqRzs!_L zohcKW&00HB)=#nX%Jb@Ez}9T987~LSC1%~U#|%%i$)N4C{kCogB%e*Iv=8~_vWY^`&JE=L<R(a+%G<@mfd+V@lun3UzHHqYWr&$!Gjdu_R-d7? zCTsc?BPy=@60B2v;(M^|Zg}F)94+QDR*Bz3s~IN$yKxP)${`>b;wgWIwTr*|*Hszd zwE?yOM4R5mVq#F=%@X1TeZyc2xJ|eAok%K`$)`)DjFr!)Qe1v5p$j5XPX|#$^eZ7T zx}veLrn4vuvugT9S)B0>a_xg1owR+UgNmE4164&Z!0!jyNWeD|P@d(P*Mk9vZlF_c zalzp0#mV5)Yqt`a)Q9rvY-)_>=N$_ta-wo0H$wTx_9=01Xe)bI@X(qik3h!&pyEoK zxExCO&Vad3{4sR7U1|^J)3#NzQ~6?czAW?ya-~$Ukk1vYZ(h9|Ze*c@;Cj;eJU=A< z5b5JYc=n%$N>_*;UzE_=iBg_uwAp8p>K=0Qro>b3Gz|E zQ2hO$ZzXVi8E#R*$cz|%*Tz>}!Pn~=;+4$EqauOh$9@hDT0HZ-7pwiIew0ucit8ZrGR55Y!-}+}8c0mMvJ1{d_CMUsJ zFJ5hE3dt&&UBB1xn_4#@L%BS~gS+VwFE_4cS@CXT9os7Y(zt467N6f96(>wLjhz}B zH7SthP0_KmVXCguoQrLjKL`0gx$qYcst9lgJ2 zAk{axdv`MEmW-J?GVUhqycln4y+<`!|di3#sr@7?!ZY|F@@ zDBUN+1~u0c{99P!ilQEpdRqkb!jju_#D7Er%}i`;?p?GQB6|wfK#{;Lc{t3!4Uh*w zU}cZU)^LLbg|p=iYC*(aAzmY+=PF2quEbajPnCxgU+fJm6H60ErhYK@p+r!UpryJu&2PrrM$ z{}`Vva0Z?1=-m2ZI)j0Q@4%X7AUmDQm*$nW^r#IAE)jHAoY7d!TTKq}OR{m-u3RG$ z?Yh|7<`++`ST=(I%RM#f|AFRVa9!u452Sm!$o@c%tcRgm83S% zY5u7bp)1vL0^s0g=%JAjIQNy(7EO&e+PfpKOE-65x8 z`QHBDeqCTt#`q#W$4$bo02Z_LTiVDYij_XCW*poMb?M*QrsNq0=rxd!y1e4#NWOtY z`i$tEFOWMP=oR`h>2<3U8BYdEmPIotMyAgm(Xa4pB*eu(+JDDZh@W+=JkU;S$NNx` zrdGF%F&J@-DsH90fV>XneZz4vaCsU8R{G|uTxd+(+u2@!FjgDuhz-ONv3M*P^U>eC JVxcSXnO#5QIDUlKIGN1@M1m9&69_SZKoTB?L@XksiFv0VOsrl^;g~1HC5I9 z?c}2=uj9J5hF|y7ht*$4*1a+Ke*NI(6{az(>9pL63tE(6`5LSOvsvLYZ51ls4&yLa zF~uFmV@1W3c9;_DQ%oN+{mRY&8&pg`8=BYr;RkfS4=I!ptZ=a&e6s%63niSmtqzNt zf#?LRz90|7-c!eMsn8nG&_#xkPx=}(43=TW8f;`)mYJJ+4}_Tj%Q0(B@983!=nZQX z@T9z4g#)8!(eTj1wNUU*r&a4lu?T{C-0n7;@-9r+s5M$)dl^^%0#p5FwcZpFPpuAT z5f82|S8nUGP?0a{>&FV{Ol%_T(;cvZPoTH}2>*R93KZQl*kgv88@J?0VMZRv46m@< zn!b@|7R#f@MosHw6Jt*M=$)RKm<=0y0lS0UP0S51$!vlsic-U9Sc%DO{M)`w%mpjl zF?%^&)xR;Ysr4+hlTR$PGu5+`{KjBnH-^v};jqG8VuVJv;;ibtsi@tJ(Z^C_Pa81# z?j2(jK)Zf1$tOAH&1y*&jpYUa*sl!4M1q(dFfu+T68zmOBqBss~QJgx> z5KCZtnmVxvtJOu`!MsPlAs^+ZCvvT*bv5GggC8)3U+HP471vS|7m9A|KPAh?_{sqJ z(N8c)Fhnp+u#12^;!h)NAJ$zYml&TRem_B;l!Y@`l^3@BN)2)=^{7y{jt}BUq?xeU zOwDj{F>15a+*0teHi;$GJnq`6D=xGp-JtI(=g(p5_> zR*yx!y&#^5v3k;ROBZl8s!{Mnv_=-wapPoVoCzjKbRY}JdsUAFk}sA};ue3s6dCc6by*o{uT zjkR=y=w}f8-TXO{j}oYOK2MTzdpAj0g2%OL(Nx9v5=v>dTIaFgB?{D&za-b({U=@` z@@0b41eANfuoX;t=-l<68-ngtFPnzPd^ Q-3BX%eLwax_I?lk1@d{Mt^fc4 delta 1204 zcmYk5O>Epm6vzE+ukHA2Ka#Xf8)YF0Y1|Je6vBrhQG^77CTT+oQNm$yGtS1#epKTr ztF1N(QhLoHnkxt3L{%Xndf?Ji#hEK&E{Gd&=z%K|^gZt??OOBm)Bnwz_u<)pXC79= zP7t^n{{Ff6=XQ7OD4c{JkIt`umKe;b!vU}n=HAr~VADTVJm%+0aI6F@%$4w1DY88JzkPmp}KGhQwyyD4P6+F^67{0waE--exvV#DD;69n02V{ z>cZ;l4f_Bv+LqtJy!;!c+!ffVXUQ@VzlRC$|1>yAz4gUbvwKdJuM9}*Xv|S6d zJD~_gv2S6`IFUnrU9+?ejiGPPS{uH*fDxr$j1e|Q_<02OK&K6N+k1AtdjyRxbhRju z-<#Eas*rn#d$3vA+KELgY2C!uYJ)cq$R8qZ@FMcBM}S*(Wwf%ovN92i+gVgr))xs+ zw|mOoNn#vKri^+bl=*R%a9*Jk%7jtE7(!XwX;YwYJU{*f=_e8Lnsvc&_=McEs@7>z z&&WTl*|T&+Hi^*n5;zdTH2C<0FbU3=A)G?$|MP_hAKAa^tLG@rMkxD}G)qNiSi%L; z>GLRurI|?ETjFU&e4M;*lh++aEp_V3Y{r?8J$D)w;d#00y#vcqdiUjep(ST}bF5JjwJb^6{3>~AQc(e?^ppP{EXn`;Dr`KM3Vs3kIJ~^C%y!&Ll)J@~SR{<@ zsL#-<4TZ>1*5KPJlXp5T<>lT+Cv7K;&r*UHD8U4uCp#kKBRx-6-oYud3WTShm2Nx7 z)}}O07hV;%Q=W;u)@QquKNQctb&>YINO*}rf6d4n%<^RtULnw2HUqq2T-3U$*r}zA ze=5tRS#OKnuM%F9S4wkGll9W)b_0c#s4RageS3mWk#~WxOxPeaTO4&EMG SgU8WbaBN&5u5-95Av^&Y$rHc; diff --git a/osinaweb/osichat/migrations/0030_chatnotification_users.py b/osinaweb/osichat/migrations/0030_chatnotification_users.py new file mode 100644 index 00000000..c5f67cab --- /dev/null +++ b/osinaweb/osichat/migrations/0030_chatnotification_users.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.5 on 2024-10-01 16:25 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('osichat', '0029_chatnotification_session_id'), + ] + + operations = [ + migrations.AddField( + model_name='chatnotification', + name='users', + field=models.ManyToManyField(null=True, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/osinaweb/osichat/migrations/0031_alter_chatnotification_users.py b/osinaweb/osichat/migrations/0031_alter_chatnotification_users.py new file mode 100644 index 00000000..19f65e72 --- /dev/null +++ b/osinaweb/osichat/migrations/0031_alter_chatnotification_users.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.5 on 2024-10-01 16:25 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('osichat', '0030_chatnotification_users'), + ] + + operations = [ + migrations.AlterField( + model_name='chatnotification', + name='users', + field=models.ManyToManyField(blank=True, null=True, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/osinaweb/osichat/migrations/0032_remove_chatnotification_users_chatnotification_user.py b/osinaweb/osichat/migrations/0032_remove_chatnotification_users_chatnotification_user.py new file mode 100644 index 00000000..d5fb4201 --- /dev/null +++ b/osinaweb/osichat/migrations/0032_remove_chatnotification_users_chatnotification_user.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.5 on 2024-10-01 16:40 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('osichat', '0031_alter_chatnotification_users'), + ] + + operations = [ + migrations.RemoveField( + model_name='chatnotification', + name='users', + ), + migrations.AddField( + model_name='chatnotification', + name='user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/osinaweb/osichat/migrations/__pycache__/0030_chatnotification_users.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0030_chatnotification_users.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..382786c57f60d2c609a96580e1d1b521ca9642ed GIT binary patch literal 766 zcmZWmO>fgc5Zw>kaom*lP(F?ow_NI|oTw0Lr4~3etwfTG53C&TCTv*m8n2@$Ck}A! ze}E%@X|J643y7~-r_c&k+NYV>XTO;@W_vq9a9%z9KD$d0`r?z@CxGM_t~~_ch+~CH zoMG%^qDV^g-a`HJBHr` zda0BnjpUJ9st3};d(e$nr_n6-7rT*4UemP$a}W9;oRSDwpQO<_Q{XIFVu zegwXQ>G#c$c}0mLYw1P4EZh+u;6;NVC6 yt7TmDBe%5?J1C5vZ9M5-SNOEGuN}Rm-we2k9>Bj{{A6SOQ|#p;fF9Y!_vmkhdf7Gr literal 0 HcmV?d00001 diff --git a/osinaweb/osichat/migrations/__pycache__/0031_alter_chatnotification_users.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0031_alter_chatnotification_users.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..716a1e128cff79e46501e26813b9f2ea53b1f5e6 GIT binary patch literal 778 zcmZ`$O>fgc5Zw>kaokkRp+X=egt+-q2e?+Km0IA?v=T`!zN|LcO>ny2HC{(iP8@(^ z{{tNPOMB(SUqF1#I)zq9thA$ShG2uCQ5zQT7X#V)q8X$rltDRD_zENb2q zMq3w^Mo496o_71hP#nRvhY%#nu|PSI^kX2yW%LOPydZf8q+&q?mEC0`0+5C`5nfRd zUC{;3cSHwTh+TL1M-Rk1#ul^Jyvgqm22Tgfr`j~dyqL8ev6Ypzb^U*F7q$=Ml)7-L zxW06OUMb~BV*pCpDVXM^1l-4PUPvX*)1Hf2i!F=R z^Qz)gco(vgT1Y+H)UXxg_KqjxmuxaReZ__sC#Pqw_m@#f>yl&D$ojcgto_E^-jM6f z*!b9@E-{t7w)``y?*gX{-#%m$KW`?>LP@Dqv60z{w3m&kvJqEB`S6TazPPYOGc#od z?rENBxo#7&JSUbGR6+nkFk}GO|@z zWV1SLGEqw97lHwodlS9y=Fs@oamoWUU?qfEi4D$Y7rfm6LKvCZNeAx=n9UsKo?$KT zqVGYNFEO9_(94(eFu#?r=nmF7b6IfaU{{}Y5m~6ZyO%H!Q%A^ba-25Fm(I{`40cU&BZ52>+5Tz=l6nUC+K)*-nyLrm>;gr^nZn+~*)2d3xSZ7c{ z$)KDpYSh(IE5oD1H}q(PBbzETB4#*9~M`Bk_rYRG2g zTUaQcTC>08^g^l6^aTj6#Z(|53t*qAD`kQ%~%XY#sN6b77%ZO zJZVG~k5Zl$k9N{Z2m3N>CZdQ@g))sxI5kdtX`4KSv34}|@%8_SQLSgRHjns^T>nlF zszvP~PR+Z#Z=BGviTm62ZDLkeulI=iEBI-4MuA#t0SzXioVN6KFEVUwlxT@ty-E(+ l-#xfwtX|dB=zFh8YQ2Y;Q^Ctt6V)`0)_FCgUxZyu{p8KTVE_bIhcR vSb>J#;w~-9DM&0SNiE7NUdd1da!L``#24iPJU|u?0}mq?3l}3FBgbC=k7z1$ delta 114 zcmZ3<{FX^OpO=@50SNY)9#2~Uq#uJg$bbdNaRB0ClZo2;TVdP@rV&wP-0Q3IG42p$APgBl~^jf2$?d$4Ib11w_K%uFF|T55t< zG`Rl&c=O_qc=KrDf8fQv_>Y+2dn2H;nQ!LJ``*sH_r3k%;ZP743O>W}{o?PHce%Zw z3~%=)`X!O!-YV<>FYw?M+ktAp?FtJAKYtpxApP>gnu79K3`>30YBYpW4~3Ga@jwm{ zoJmIQH!z)ius_0V@-+Js-Y0X;ly?rDp(Sr7O=ogpn3y93F2Q+%34+TAsjcdpLWX2d z5?nzD9eI`Z*9qnj(&U#jT)al+^a;!)o;%mSgLVTDj)#XEO7$L2l_GQ|yKJ591BV0X zfws`fpk*Ck-aV^p@ysymWwgDXU59Rl+q=-SwPP&cS+ufUyPK`K-R!=1z<}ui?r?V( zmRW__eTG!OJrC$WSB`t+a@Z4cGM#Tf2G(P-%=MQ{mD0l9mR^fx)T!$zZptF&9fBn3T6=u@SXM4 zZ7CsZ5trtFx9~4j8(%2paW5<#b;Jz1(!$^DYTV>XjiW9hSXLg2;6Z?&gKOUG0w{y` zGJq1Ibto5+7!D?j?gJQ4Ub_=;A^GZ-E3u&ie^om{|rlTmZB7n>f37*JA^smNk- z1Dmdk1W2VMh+qd1G9W?=L}&tuTP($iWvN9PAifTW&;}BkY(;t?wi$>p2NF?}Ke9;* z7=gIPaKdD=6uSkR4Un(NH+c@HJEPL%C!E@h3X=u6WOPkI%0O~R8o*jjfMT~eY;yBc UN^?@}7=gTEsmXC%(oB4e07VozBLDyZ diff --git a/osinaweb/osinacore/api/urls.py b/osinaweb/osinacore/api/urls.py index ad939256..05fcd334 100644 --- a/osinaweb/osinacore/api/urls.py +++ b/osinaweb/osinacore/api/urls.py @@ -4,5 +4,6 @@ from . import views urlpatterns = [ path('login/', views.login_user), - path('register-device/', views.register_device) + path('register-device/', views.register_device), + path('update-device/', views.update_device, name='update_device'), ] \ No newline at end of file diff --git a/osinaweb/osinacore/api/views.py b/osinaweb/osinacore/api/views.py index 7d63ec93..84556ddf 100644 --- a/osinaweb/osinacore/api/views.py +++ b/osinaweb/osinacore/api/views.py @@ -49,4 +49,24 @@ def register_device(request): device.save() return successRes(msg="Device registered successfully.") except Exception as e: - return errorRes(str(e)) \ No newline at end of file + return errorRes(str(e)) + + + +@api_view(['POST']) +def update_device(request): + try: + registration_token = request.data.get('registration_token') + token_data = verify(request.headers.get("Authorization")) + user_id = token_data['userid'] + user = User.objects.get(id=user_id) + existing_device = FCMDevice.objects.get(registration_id=registration_token) + existing_device.user = user + existing_device.save() + return successRes(msg='Device updated') + except FCMDevice.DoesNotExist: + return errorRes(msg='Device is not registered') + except TokenError as terr: + return errorRes(msg=str(terr), status=450) + except Exception as e: + return errorRes(str(e))