From 00e83b856111d689493224d4760823c33247943c Mon Sep 17 00:00:00 2001 From: xds Date: Mon, 9 Feb 2026 17:01:48 +0300 Subject: [PATCH] fix --- __pycache__/main.cpython-313.pyc | Bin 8626 -> 8404 bytes .../__pycache__/assets_router.cpython-313.pyc | Bin 10208 -> 10185 bytes .../character_router.cpython-313.pyc | Bin 10184 -> 10349 bytes api/endpoints/assets_router.py | 4 ++-- api/endpoints/character_router.py | 8 +++++--- .../generation_service.cpython-313.pyc | Bin 21634 -> 21826 bytes api/service/generation_service.py | 6 ++++-- main.py | 8 ++++---- models/Character.py | 2 +- models/__pycache__/Character.cpython-313.pyc | Bin 1043 -> 1099 bytes repos/__pycache__/assets_repo.cpython-313.pyc | Bin 14787 -> 14845 bytes repos/__pycache__/user_repo.cpython-313.pyc | Bin 6643 -> 6660 bytes repos/assets_repo.py | 5 ++++- 13 files changed, 20 insertions(+), 13 deletions(-) diff --git a/__pycache__/main.cpython-313.pyc b/__pycache__/main.cpython-313.pyc index 345e0897bdaa6acfc7bb3224c203d69eb2002782..d7ab15a27504780c6db6dbb34a0c34f95a820f22 100644 GIT binary patch delta 616 zcmZ9IPm9w)7{+IkNo~Vso36Fp)zqdd9$I#(3hiDh*v&3jg$NeEGNiOx=!lyLzpJ7 z<-y|x-*a7OG%!Llcorutb7a|We8CJ3N0#Hoi`t3d+P!UzJzVDSCcP}?dV2wVGEh~# z#^R*w^zFbmN4QPHLpp=c#LFC9%K}0CouG0gmZoTxVdfjke?j>vS~=!;q4I;&ml_>S z-pa!9#gtYBV+CsKXk0*yOAE|jhm5Pmtqea|#~B`GwdF0y_-U=7Uz5i-ph$ zT^qNf$(3fZ1w-$-F|=JD??zv<4Or^ZP5k8lG;6)*6fA}kRS@|}T`&8nTH8in-ZQsK!(p6TI_n6D|eDYGcm0;cA ZHuIvKcsD9lQx@T3oYU=Rg_lkFI3x#4FM&^WwY7*;C2&cS0NYm z;z6&Y#e?8Qq&Km-dx|%~RsxY#(1Re}0ucod>P(uN4$PbP=6!GW+hOW6+jCM&l0-m9 z<@JMN;*~TZi9J*y4uICf>Wrj7Z+d|FY^+7dOR;}$a8FS^w9mS0+PBY>D9NAYCgGko zxitFkxX7k2?sxBdGDvZ2aq`wTd_Ki3fg~u<(%bMcT6KAW3=RZ^ZX^!`uo_5!1MSJ= zxPNr0r&|*TtH*L+8pS~loD4KcMvQ=!87yfH7NdEfscY9Q;Vrs>b)2m@!wROc-t(y*)Ejv=XROtjAx2Bq! zZaBWV_G;+a1&m909N}5|9h%5E-cD`%42#{3EX()^vjwA=)2*^<;uMt?I<4OnzLQ!2 zUll=Lv=JJ69~%24hz%jKD@2}#wo*GnWJfsFLR_Ew-trGOaEUwO;W|J1mG^X1qRx*r zsS#}O;axsl=MObGi&7%bbYi`&4FsSvy`50gG@{9+(Y(EAWAC4~oRGa45 z&IL&M8$eU!T`&w&)o;NTgzMyEXb@(qKSNV6q0pAG%9>|Spz~`UZ6m9+?+WWA*?$6R zGW(IpmNWUx%Z@n{7VD_Ad=@Fj95I^wy^tSc1AR`jHM cov9T05;X%EMs)@z1Do84O~UQ!qu53MA3E8#-~a#s diff --git a/api/endpoints/__pycache__/assets_router.cpython-313.pyc b/api/endpoints/__pycache__/assets_router.cpython-313.pyc index 1f6c07e729e621b5a11767628bf1ded2abd69419..208aa91b2aefcc0e73d236d9f1a6b2c7b7597495 100644 GIT binary patch delta 388 zcmaFhf6|}#GcPX}0}zBi>&#T$$XmwEB*HY=R#9W}T5d6^P}X2(R-j}adnlU*NEHwy z1~D*%GEOc8DiP<=X5`%L%rlLVk!kX6-f(G-f};Ga)Z~)lTiofXCGk++E#~5qqRGB| zHyGbfR^wOXejuv2K;@#SdV}A+$!{eT1xzl=8C;e!+#$YSey99pDUZn={BzvcTsRmH zaxgmEvK-`e6a;b(NijOxvmBCE0I{tZT^Lyo*>C{ahgtMom{|@R@qpO&j6m`TBba1n zb>Y~YCGdom^%iq{X3FGXv1x)u_COyLMSuuP5D_`~rEux1TPz7 o=ww;Bc|cuzHq)$ delta 382 zcmX@<|G=O3GcPX}0}$NV-VDb2}ixy6{GStlFvNC@Szhq7sa)Br(Z z5CcOf<75Fr5vCx{$sbvTC$sTrF|uwpA}TRMWGo>gT$Sbl05fPIgi5VzHfS9~M;ucqNNn%k+ad~D*Mv*H>)D1+qOg0u*Vho)e zChjd41riVf5g=1;v1cR}Czg~HL5z!>ykFdcF?90}ab7mYkjZRv^Q1ySN)thZE{N~| iX=2Vv%>!D!PfnXLYVs>NS)dLM`AAkqm(58k>C6D4Qede7 diff --git a/api/endpoints/__pycache__/character_router.cpython-313.pyc b/api/endpoints/__pycache__/character_router.cpython-313.pyc index f1ac4977eba8818e8ae6709bbf120dd360180595..f1780eff6f0e21f9b2b7e8aa4f22745e2321efe7 100644 GIT binary patch delta 890 zcmZ`%OH30{6n$?xo&M-2nf@tEi-l69%BL0rA|Yjgk|61%#7ILOX_aF6I4$bRAetB> z3-E1B#Jwy{7rGSLxD!$mpbN#A7+H|CDK2!O-dCwRUvkf!d*U<$rNVOv+CtWmrZG=S{FqT75Qney}*uX{%H!4q0QBfC@U&_kc(`T z?SYLXcqt-KS*k{H^Kqjz0vSU}b!M{6TQDZKbPh7knQH&TU1w95H)n6D3`7|o&|#<&Pw4s9nVBLI*V6DRbHe$&uOqAG zPOt2Ou7lrj){x&QpMp$oq2Qq~NFhKD&8~2vM!GF!B{`m&mTn{q%FJ9kl`R;LMJba> zX5*=Z+y)&5y_87ACnhCXn#d+)zgmt|9ErygQmTQv$(Tj(jRU&^k@*C0fELh^0V#El zhVBn-n*7`B$z7*+o3-td=azQ-mAp{*5r@@KC-`=R;Fb{F5xTd8?l&EIq3<@&y@cJ1X4zla5{k@QE1aLUSZk$$89>U?S++Ax) zfk(-da}vi%-npv0Nf*myYc(vsM(zo+DG7pnk-`v#si$s>c7`$vt2x2l#OP*eUQZ!I zMj8UjEYR1v#fC3}bcw3Ry6}5;n9_fIU6^LmmGE{3NADX_iPhi#`>Ke|( delta 751 zcmaJ z;1Vn}EYdITaC(v-k(d_?i!(V9>S4UsB8xZq1W;43_%vuX9GXlOm}=3X<{O)Dw*ceXY5pb_AjS_zQH-rBbh&@X1}^o5j6&Qnc`}N^N%ni?q&V1RR#5 z1s!gU)8?wE0pw*cK8m`!Qd2wP6jc0G#JrI3V2nq3x$iL<2JEJOGT2D z$S{2z?9H-`qx(U6*_?lr6zx*+-zb5d5X+fmfS>3V+VLRKJ)fJ)t@x9lg+rUv2z9q? zO1_E|hG$)GcXMlFF{8vTOQarGAipl-uaNke9v>9q3U|;3VF1AvL`_ z(+bYF2hy21UObL7O~PXTKp2`O9cN;~k|8l3! AssetsResponse: logger.info(f"get_assets called. Limit: {limit}, Offset: {offset}") - user_id_filter = str(current_user["_id"]) + user_id_filter = current_user["id"] if project_id: project = await dao.projects.get_project(project_id) - if not project or str(current_user["_id"]) not in project.members: + if not project or str(current_user["id"]) not in project.members: raise HTTPException(status_code=403, detail="Project access denied") user_id_filter = None diff --git a/api/endpoints/character_router.py b/api/endpoints/character_router.py index da7f101..c9e4394 100644 --- a/api/endpoints/character_router.py +++ b/api/endpoints/character_router.py @@ -90,22 +90,24 @@ async def get_character_by_id(character_id: str, request: Request, dao: DAO = De @router.post("/", response_model=Character) async def create_character( char_req: CharacterCreateRequest, + project_id: Optional[str] = Depends(get_project_id), dao: DAO = Depends(get_dao), current_user: dict = Depends(get_current_user) ) -> Character: logger.info("create_character called") - + char_req.project_id = project_id char_data = char_req.model_dump() char_data["created_by"] = str(current_user["_id"]) if "id" not in char_data: char_data["id"] = None - if char_req.project_id: - project = await dao.projects.get_project(char_req.project_id) + if project_id: + project = await dao.projects.get_project(project_id) if not project or str(current_user["_id"]) not in project.members: raise HTTPException(status_code=403, detail="Project access denied") new_char = Character(**char_data) + new_char.avatar_asset_id = new_char.avatar_image.split("/")[-1] created_char = await dao.chars.add_character(new_char) return created_char diff --git a/api/service/__pycache__/generation_service.cpython-313.pyc b/api/service/__pycache__/generation_service.cpython-313.pyc index 4139f6a71d98490fd74037f0d1c54f66c20ec24e..f088e87fd844f59b834dec1d341cb99203e25eb6 100644 GIT binary patch delta 2749 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 delta 200 zcmX@jF`0w!GcPX}0}y20>dbt}IFWA=lpDJ^>E*D= d%}*)KNwq6dn5@7e!_Ud6I)U>m1CRnM0szpeF>3$- diff --git a/repos/__pycache__/assets_repo.cpython-313.pyc b/repos/__pycache__/assets_repo.cpython-313.pyc index ead12a48c05b3b0f33b90f84ba7e8be0bccd8e07..8bee858966c1f65d25c76ef1ab12b08124b23646 100644 GIT binary patch delta 452 zcmX?H{I{6zGcPX}0}x0)>m+sJo|o6%(QOKvYyRt=Ca5F~OkFhqn0v#JBx!3?47 z!E7K_C>va!1t^~m5uKdKCO$cy$B30Zn8TE5a-E#T(%!hW*|zYrs1@MLuXW6^uuqBoRvC)ix% zQMjS3-r)vjZH^KUWwaG{lVCg~$>=7;a!AUF1;{xf$LJ=)c0}Hh3&=UD$>=7=c2r9f z$UY{*2qMKm2Kqep+#1zW(5yT4v@{A_0H7_ym)nSfLYQ#sQ|5U&ErgUGlrdjRz^cryDj17%#8 e{h7alWIiTsR5T^{SE+GnqX1@ diff --git a/repos/__pycache__/user_repo.cpython-313.pyc b/repos/__pycache__/user_repo.cpython-313.pyc index e36b86258c5c4a7ab04539afca71f52d6fbcc75f..35baa979c62cf48dd8b9f2d15d90bca29a0cbeb4 100644 GIT binary patch delta 252 zcmext++xD}nU|M~0SKJ#b!NJ4vWS$GE{W8&sJBGZ`|Gd7oq+cCP+d&qN*J%9U+}uH~57+xId~hh}eEqU=Xso$?x^E*aT>B zlc=)*<8(%6E|wXN+Cb(ZW=3ZomP0IhAhr>sGat(#V+kPpFb^Y$$x8?GFog- z