From 4765c56b2a7d7c51d60b2c779cdc4e068e43dcb9 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Wed, 26 Sep 2012 22:07:41 -0700 Subject: [PATCH] removed raw value --- .../petstore/objc/ObjcPetstoreCodegen.scala | 19 +++ .../PetstoreClient.xcodeproj/project.pbxproj | 6 + .../UserInterfaceState.xcuserstate | Bin 22425 -> 24884 bytes .../xcdebugger/Breakpoints.xcbkptlist | 13 ++ .../client/petstore/objc/client/NIKCategory.h | 3 - .../client/petstore/objc/client/NIKCategory.m | 8 +- .../client/petstore/objc/client/NIKOrder.h | 3 - .../client/petstore/objc/client/NIKOrder.m | 11 +- samples/client/petstore/objc/client/NIKPet.h | 3 - samples/client/petstore/objc/client/NIKPet.m | 15 +- .../client/petstore/objc/client/NIKPetApi.m | 77 +++++++--- .../client/petstore/objc/client/NIKStoreApi.m | 47 ++++-- samples/client/petstore/objc/client/NIKTag.h | 3 - samples/client/petstore/objc/client/NIKTag.m | 8 +- samples/client/petstore/objc/client/NIKUser.h | 3 - samples/client/petstore/objc/client/NIKUser.m | 14 +- .../client/petstore/objc/client/NIKUserApi.m | 140 ++++++++++++++---- .../client/petstore/objc/tests/UserApiTest.h | 9 ++ .../client/petstore/objc/tests/UserApiTest.m | 47 ++++++ 19 files changed, 317 insertions(+), 112 deletions(-) create mode 100644 samples/client/petstore/objc/tests/UserApiTest.h create mode 100644 samples/client/petstore/objc/tests/UserApiTest.m diff --git a/samples/client/petstore/objc/ObjcPetstoreCodegen.scala b/samples/client/petstore/objc/ObjcPetstoreCodegen.scala index 1451bd45b2d3..43b82ff25683 100644 --- a/samples/client/petstore/objc/ObjcPetstoreCodegen.scala +++ b/samples/client/petstore/objc/ObjcPetstoreCodegen.scala @@ -1,3 +1,19 @@ +/** + * Copyright 2012 Wordnik, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import com.wordnik.swagger.codegen.BasicObjcGenerator import com.wordnik.swagger.core._ @@ -8,6 +24,9 @@ object ObjcPetstoreCodegen extends BasicObjcGenerator { // where to write generated code override def destinationDir = "samples/client/petstore/objc/client" + // to avoid recompiling ... + override def templateDir = "src/main/resources/objc" + // supporting classes override def supportingFiles = List( diff --git a/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/project.pbxproj b/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/project.pbxproj index 0e9c949b7145..acf6e2dbb90b 100644 --- a/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/project.pbxproj +++ b/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/project.pbxproj @@ -45,6 +45,7 @@ EA07F54816135916006A2112 /* NIKUser.m in Sources */ = {isa = PBXBuildFile; fileRef = EA07F51F1613569A006A2112 /* NIKUser.m */; }; EA07F54916135916006A2112 /* NIKUserApi.h in Sources */ = {isa = PBXBuildFile; fileRef = EA07F5201613569A006A2112 /* NIKUserApi.h */; }; EA07F54A16135916006A2112 /* NIKUserApi.m in Sources */ = {isa = PBXBuildFile; fileRef = EA07F5211613569A006A2112 /* NIKUserApi.m */; }; + EA5A034416141443003B3E41 /* UserApiTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EA5A034316141443003B3E41 /* UserApiTest.m */; }; EAE96DE616138695004AB97C /* PetApiTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EA81837816137FD500341A6E /* PetApiTest.m */; }; EAE96DE716138695004AB97C /* PetApiTest.h in Sources */ = {isa = PBXBuildFile; fileRef = EA81837916137FD500341A6E /* PetApiTest.h */; }; /* End PBXBuildFile section */ @@ -103,6 +104,8 @@ EA07F5211613569A006A2112 /* NIKUserApi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NIKUserApi.m; path = ../client/NIKUserApi.m; sourceTree = ""; }; EA07F5301613580E006A2112 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; EA07F53216135819006A2112 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + EA5A034216141443003B3E41 /* UserApiTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UserApiTest.h; path = ../tests/UserApiTest.h; sourceTree = ""; }; + EA5A034316141443003B3E41 /* UserApiTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UserApiTest.m; path = ../tests/UserApiTest.m; sourceTree = ""; }; EA81837816137FD500341A6E /* PetApiTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PetApiTest.m; path = ../tests/PetApiTest.m; sourceTree = ""; }; EA81837916137FD500341A6E /* PetApiTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PetApiTest.h; path = ../tests/PetApiTest.h; sourceTree = ""; }; /* End PBXFileReference section */ @@ -218,6 +221,8 @@ children = ( EA81837816137FD500341A6E /* PetApiTest.m */, EA81837916137FD500341A6E /* PetApiTest.h */, + EA5A034216141443003B3E41 /* UserApiTest.h */, + EA5A034316141443003B3E41 /* UserApiTest.m */, ); name = Tests; sourceTree = ""; @@ -362,6 +367,7 @@ EA07F54816135916006A2112 /* NIKUser.m in Sources */, EA07F54916135916006A2112 /* NIKUserApi.h in Sources */, EA07F54A16135916006A2112 /* NIKUserApi.m in Sources */, + EA5A034416141443003B3E41 /* UserApiTest.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/project.xcworkspace/xcuserdata/tony.xcuserdatad/UserInterfaceState.xcuserstate b/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/project.xcworkspace/xcuserdata/tony.xcuserdatad/UserInterfaceState.xcuserstate index 358e03d05df4fc673e9c21c40ace0ad143833cb6..1aa7adcf1d7187ecaf1307fd143b82b5a55195dc 100644 GIT binary patch literal 24884 zcmd6P2S8KT_wc=MvV;TzVF-jFLkN&CGJrrJ37{+maf=8MsX#CZDz&!vsjVH>Zd+@I zqE>BfwRTr)m#td6?H+d7+C8k@wf)Y^BY`;jZ~x!d-|wphlK1XC_uRAZx#!+FecfFy zcV6Br2qOy7h(Rpk_`CQWQ&Jb&ovtoN@03)>oOA5$Zr9Y*HfQ_1E_mFW>UQ*nBYe^N z9db&CcocvlkOD=bOf(i{p=_i^IVcz9Aq~=^B2LJO-!XY^=sPxBwSoBd)-e*n+LthU;+yZp2M^GMX~)GF!<>T2pbY8|zK+D6?@-9g<$-Amm^ zJwolJ9;F_m-lE>7-l5*5j!^GW?^7R8A5tGtN2!mg@2KO{_tXjM2kIn^X^Q4(o{prW zXeAv@$I!8K9Gyfb)9G|BokweEEuBvn(_hCs>~3~Hdw@O2KEuAozRteE9%VmfKVgrv-?Jy!A2`fW9L}8~IKAR(>0Q=cLr${_gI> zC=dmqU=)JFQ26Bfrkwfq0oOG6J7lX`Qro-RT&_Vh3WXAi(1S>ZS(Fge4r|NdO5XK_r-jY(*-RgpyGT;1Pq;Pzo7ELWzu+ z04JWr!QbXt;wW9c9gamdXIqcGRh9$~8k`+=r@g~BdUM;HN=L8T>FDkTqueSpjYQ4w zWvfP`$9qkpUF}Z0y|>QM z0SIJ|1TLXAJou#Et_A(}nhqdE*W50A}8S_ zf+$ENi6Tl8O=7m8YT({DG#=HWI^bplY9z71ztLm`xs2=sKE6Q4lji9#8JI?G+Z=m$ zt4s#pn&vqc)weC|>TGj6oHOBpwWA9@nVt5wR+(CyyH~*cxH!q()!pSD5SulDgLb!c z*%wIweZV9Te!TJnVX?cqI(yFmK}1P{-(`1+(g)paUETJ^Hut<%S(Mr3f`Fi{*DYb{ zs%;x^^t)#?+TG^9u4cQ-ozoNOCEzU7DJnrLnvL4f9Mq0FkR8n>@g#vH5*0}z$s~oO zZUxeH!A~RVMm?w(Ie>6u;AcFUOnOK!Swxy)ZX#M1`<(vHPWupfqI~4?$Ym2C)zRkc z5UD6OmhhV<{gEU$0$y3{bKCm6-5yX9jZ{OA8pU|VnxfnO^~CTVW2 zYwPOuzP%W&Lg5?HCFoLg85v8mNcKi_IS}m%q6Sh;5)D_T-*7+>x4j93tGCnh(b5H4 z=;&>80$*EYk^XJ%-4MdrJ5GIGWq0)0-Od3?tF9BZY7NODVP2%xq75ix3%U`lLpPzD z(Jkm!w4UUWJfb05l1~aq;TANAHlj^vGrA3JL0d@?(GfFgBvvwkOeD=SMA5Rex!alt z`s~vsoIKcq>YF{`WE4W&Y*AnTobImnAwK~|OWm$^Ir^RLJ~rQj9z@}r(7otBbU%84=!tNAPpG<%W+>eT1MbDr^;5MH{&!Okh3+P4k5^4nH^G=}F(e6=+S;OR$%mTFN z0a+b>EL!#64*TMUx!%6R??^4FBn_m3jBl0YPH6|Hk^_qA$2JLEj?elvxt;y(?tZ6T z62wsRZ1rWNaZm(F7I#N$itE_J>D1|XMw;RaaJDD|eB@+0olIKi9RWO*D*Zk(izK-dq<5S-0Jl+wK`Ww{HlSTnK;KbKN4cxg#yM zM3@ukhgMmHrKQ=+GB3La(T^fM&h$#^`7`>ZRhDro6Nl;RufK!nR}tLbZa-ZuVr=f{ z0F+y0X+DV=-{sDcEQS~1oFX&M&F1L;G8y>eLDPg+Pgu97upFT zO{C6)KV~pHslEw#F^D--EPa&T1mHlJczsh{zgsj!!}_uj2Z$Qukw+X1h7pI577_*q z)DxEEdBPG+kuF*;|Q!EQ^-^@jZEK!qp%W3;}|l7%p$W% z8)=@}0)|=~(lr^PE0?3&K235Xk}DIP->?t!xh3x~Dx3_i1SgT18z2;c(4$or>jNl8 z3trRF)b8l>nl_w{GsRvRq}A6;J~TL(X|PJ-*fQ)LBo}MM=6Ph!2COCR;vjO69v?EI zZ3d-)I2;#Y!ywjSJ?S7_#2cOCVr)X;gSZ5j5<8hYh|6#}=_K<=`Ah&atjD4OYH1d+ zu50V;?Q-{b*k}4pCZ$~1ip2lCm{s9%et^g0T5=AVPs*ncO-Jh{6#JJE4v>8uA8SB@RX77V3c$zr>sl>4XPbYnUHUCy|{8Lpx5`vrJ9su* zG2H>-%1|H%BN4KU42hC|CPBO<3vsimY z9|3W@7|=9T)`_umzw7kZVzR=zxDS>{_70C-7PVeVCcq$|VP}UdniVfKq+a5x(nl9R zs1^3P5c2qjmzpbvJ)%|z0jaJK*6Chyoy32l@D2D6a^nUHk#$}>*3#AuA+OmbLKtdF zF%$K_dL5(H4N3;CzHyS`eZ?$+x+`9_4oBToNnN<3MguKdHZOo0w2i= z$yQSCeW9m}J^~e!Z9Y#$nW%DjfsT^u4V0POKK#N$*~AyO5$gsIvR>atjiYLPW7LuD z!(%j36a2g&)l5x685^ldR0}nk+(mYfog1mCAm5GTZjfkC=piO?Krq|qS2}vcm9@A4 z^Dr26N_+*Y^@iT=ff{fO@K&6#$NBVv>?X`Wq_lB}zNh z16drZgR)a|sZMGh)kU2{&8ND_z2rV}KY4&WNFE{&lig&`Hk3j+s6J`|{B==o_`MKj z@CeyU9)rJ+lPBQ!lcISM=VNs`9ZsL152>M;F7Z=cIXtL@tXx~4%iiH(BA6Djw^tQC zD?729NCa2KfaDe<#Ro%+JKwrU%tMR>CpLv=VyaG3;Zv~zFF&$C zNaW%*-s9L zW&@GUS^cd83YKLFvoz&gr8FC2XOXw*OZ@uXPd((9q7JV-)0AQh~T^1u`Odm;M>YVOG;%#a>7wa>GQ>FvDQHkVtp6Ww+gYB*&k zy{~{pT!*Ivq(5O*3FZ;vUa#+x#sd`M{qXZx-KMT{?LHKvC54gD_x2vb-rUz`gT=Y4 zrnj!Ex63ydz~1ls&_cq?kxwY_`kSa@)Th*E)aT?~a)i7`-rq!hNqt3qO?^W?5U^Rm z`vv@xNLHN`NqBzegU=Bc^F!AD)D^8?o4>vKmCV9~{;u}t+I>$HctPml!`wxe}$W8Uy2T(Ls72NxNd`Z3{KarmW94QKo+D{ZDt~EOCpj!Q|AsLb$ zR*G9&kY71N`y45kSqpjY9GAFru+Xz}kbQ=xUeL{L&QAMKwtoonnVNgul~;DWxg$X2 zOo+EiBUbdo;t>3a=<|oxoglhreK#bK^k_N(+z1^{zTQA5l5a%noF(%>r@#V*PNm0? zZ^;inw?b#oSzzJmOnNN&jvODPvuQQ?o}Bm_nFmGSMW%q(odU}MuznO*Fjr&@ zxrVb($>T9;6RZ{KGV%)vdxfrmBq5{<=}Ou{TWQ-=mnRT_kcs?Gej{M175{Y=gA{Yb zMf}?@j`PxB99<7VAU&S0rR&H^@(1~IBi%qZ(h~%X1dIhtk>(ajI$I=xf@RHF**rpa z&Q3T;%lT{FP!1M?5qhdf&S?UseLEHOOu7RW1@tVsm7Yzv(R1i_0W$(-198^jz3dfq(QlWVV2VAby2^0v;ub*hqvy;ri@O_kg(fVCe!?Y8#Leb1_~;PZ&7dC95 z-2x64Va)ao%|~^|pq_+M1^3R$EQ2 z)jO9}o`&fo8#Yd?X)!ljhtO_ssiL-~@~>cD=joJyTcipq5AH42iA^;P^{wI@{LsI_)A;{}0XNd?yvYl1uyLxD z-bmj>-z=tthNNo9pPbt4%zFS{BXBFd-fwA0Z=|QG`G-F1OwG^g5xoSs zhrUmAOZN(R^alEV0muK9V|rM0OuOkl0!|Qc@~~@qlzu{VCy&vO3pi20D$zOZBi{>< z%>SSB;-@*MXJ|3K<`3-!5n9R!|K!F0F#Qhf*VC`iuhOs4uhVbPZ_;nkZwq*gfYSt= zF5nCSX9{?%fU^Xgy%i8ULcd49Pk%svNPk2h6~U?noFm{|0c!-T6>z?Q3q&GF2|3AF zjpU28WF2oGfJL>{oTsxDSgo2OO@5(PW6sMfGHW#&t?!jhbNZ_xA@Eqik$}News$*V zu^<{~7Yv}y$@2lST22S#9o}}tV7;f4k7E_5bcF2@WHlt>8m|P~0(J)#jpDADpnIcBV=otfJL|d5>rj#);WlT9^ zW-0^>|62qMjH(v!I04rRxL&}G0-h+~W&yVdc#41_Am9}OUMb*91-x3o;Q7`Fc&&gp2zZl#!Mxug;2i?KN5EkE9un{)0)9-ukT4su zAY)p^1(|>=|H&rz|7w-!i3a^PxksYWA)#Syl{x<1h2hW!e0|M$Pt9IV&qyq~BrK|0 zWwyoY#o_{1-O=TO#hblnPWJ#506?)w`~23qV&Pv|pVQF}snZ%uX@TBQSeWMaWJTet zCe70TKIM%B-YWsGX_fW-r=|$;xc>xQ5)M%3vHEZ0@W0}=l!!lN-R%>B5qSd7vz&P& z3AI>4vaVIu{qG<-ECZ0ptLa_nm~VIbqp(y$p`lf_>~Ev+|2|KVE0*y1GY~d2MRlFf zDqHaHBIfqgq@0rM^yQYAl@cCJ|HN$kuLvaJ0fOw!x%!F9DhZ8Atup7oOO9cYX%cIQ z02zP2TqPkgxm9NW+lc%l#TrIHRBAsWtdYi^+A5p(?~MJ|JXj|UKmDH?O+$f3H*7Qw zXEvJaCEzpvDe$vd>mjah>XYNdW`Kz zAM7VbJ0vvP|6kEsGm_T#O2A=5;Xfs$exCgyY52~6oz&m3Z2ge(a2Eb|=mJoAEp9RltX@B#rlH!&|U zFQXLZ6#=^h>?S4w_lv9L|61K}#H3AIG$*Ert457MzjVqHjRER4^1Q_w%n{}zn96Cj z&&*NgW0=M<0WT8pVsRP+q**LO4hlNnylkomoVGB3X^Z%27}{6N@v{= z8-^G$!yNbS4ITt_27?c;-&k}eyjaXqD1~JNe7=A$5TOtWuh8PkYo43FBtKsd6V>Gv z!Ay1eg(GldgV?aM;l|2XxrEy?0WTkc+thqbQJDufZGqN{8yn5WpA}L9n*sL>7Gn-XQU@jK$CBtA8iUR$?W)DL7`9(e`1+3wWP>gIb z5DS*jmkD^42<38#SdokWc=x?&O9~5sR(SNQKD)Lows*!m=mZDZ#G$TO-S+sV$8h3^h;!-sJ%s(eQlrOA|f(&}u}vhf`}Ku{^|{)laZ5v7(;<0}Hw3`$m${ zvVOHrB4gnQDSeYY0@$5dO5bDOmq0xr;0H&5A`d8nTO?3ThhrQ46}Z)XJeJ9|>XYOjDF9mYx#^htTS(F0Cb z=(DLD!v&s=`dknfEJ1?&IaF-<^m$-w@mmvSEGa6~h~73iw&knE7@$ zPu&@kwh}q<+$C2a;O8L4%;}_!Y}CjZI3ov}OX8sgUrkCQ>>1Yg_sp?7#SK=7i=G$o zi~s+TL(D->nAyJh3eRRHSH?l*nOJMR=;=vvM}B zimT>oxN+Qg4jk#r0)|-eH37dN;I{<)j)0E{`2DS1J=efBauc|TToc#KO%m{j0{&RQ zp9mOC2I%N_0zNL_AN@senk0gUTV+~r_OaX130X&Nfi2IRpI4#Iw-pwt3k;Qc>WTt` zS#7P*7upQ^e1pZT9kJHphH|>Eo(9NbE-JLxit^O@JUyH>&a-LNh60;Gtu<)Pu+d|& zS*-aZ0S#qkUq20yS)X4CV^^rPMFj=w0;|oUt|+XiP-`p(U4_M*uPewmj|4Q7Sbg&} zK>7K)$_i+%28Ur*7g!1^)CRM~tk!95R=wGxtJK@{BLNL1QQtldP^GOhub{}RQyZ*$ zi@Kn&uu!cxX!UA+zNS#C)#{2WDr_SG4P`>#Jq?i6Tu^Dy+cZGk3Lv({VpUgIwS{V% z#ZqB57Zg}3^nOzt%2vL28X!xaCchvrzertJDH0p@-_`mGomQP+2xq)4R$ZP(=Qp*X zoFkltJB9r=eT4zeg2SwAHaPumHfz)dL#1AA$;&t7RTh|wbXtqoNDywBXe3~3;G+%P zaseOxJ4Rw9DqQc|I^izmR-FpM3;jy&>a)FC!-<8Y9K>v&Zs1@O;<2Q1IY;CYoshe<|RvU*_&Y!Q2jR zr+6Z*10Gi(R={6Lwq+N0&rDyLgxF^zw~M4=M>z<5{5kGr*Hhg7v%NaRLBXn*U0~?H zAFBN2UJ_XXX6?k8ShAP{VoOwiPryHjREJZZSPgUss>?=@!BZXs^!1{0gnNH@yblEY zlXtwM;&@;he?HTAOF7_?G#>Q%#Wx;Sa}Xi=fPc$<59N^DcO2N%-vs>oAa{cMLBJ;k zIK==yQY_L2f8Et?_fi}V1^S+O4m!D^-V+Y9LP=4_LN^@fgtqE#@vtWx;Oyz^hcbAh z=c{=3vt_ZqsI>?ZiJoi%_dEB8IJ1)ig*I?dvx`ZySj{YMb4!&pXWqFS>drHK0PLXh zEYI=0K+yul2o$@K59EU=nLu#@l?Z1fU=n!%)4$Gks3sTc(3<*t#8b`Ea8343@!kt4 z^AoG${kt^u4V|ACCC&d;bCfwZRF$m1U^xqf(0r>pga{?X{U|jha?=Ib~vGMxK)<**9|LR+pWnC z2iC-E8Q@&~U$>UV@Q7fFR2qoT1l1%@tmUP91`p>vPM?CB&*5_gDohZmFNe^wT&iG4 z6OF3BW@I4`tN7Ca8u?h&OXP8|2iCIo`{i zFhw&gS6uSZ$QNGVT~CM_Q&gF8S1KqqVa+q*j2s=%(pCToSG zyW{1w^o-0i-3c-@)?mii;R`{s)j>JAc`*Fsd0lQhOv-~slX&qTj37#fM6N;O*fT!&_z@@|fui@JyR}{_H8qQ8HwlJYwd8QM zObSxNEm}Hch1*9aqUmtYh6C=+a>1Qh7r;$ftI=Axnc)_+9xh?njJBX{a7WgI=y7xa zPWHcnK0rs|Hmpz4?-=6{90~VcCE^U6i*<0zRTZwm4h!R=O;;>+miHkMk(8QlO$ij|D15pki<1 zYjHGR&o{s+Xm}b2)tA(0fl7eG(6dE*B%Xouw;+C+EghTr9~yxZ1(Pctsr(B_VxuPa zfOz-J|Ikvr&B4<$rCd7Fh+gKWqF{a+KV1}Q@l?Nl%|=4n-pb+XSTyEq5RGSMhd8t-{&elFhyj)(8$=LuA@K&1}y z=kW6dDovoW{6c%a&lB2HDgX6C;SnJ)-!CCG=3mxTK5IR+Qgea(E!9A{(LJhl`r zpKD|%vdwG@JB6Lb&VVcE9FW;|K`MI@I{;VEErsjn1oleyUbsq5&Xsd>;3~MaaP8Z} z+#?*U1mN1YSGgnHC)^j@3ApA>!AC)?7R!%@z)S^~yruGKya57|Qn=d93|G5Z!T#6q zanXS_9ew+5_AH3j-Dh zoEvan!1)0rU|GP5fQtgw2J8xWEZ|VU2Z2mrbYMzgUSNJ;VW2+H7+4b65x5}G9k?)X zAaF_G(!gbbR|KvJydm($z?%X$25t`A61Xk!j=CupziOxFvXL@MXdG1n&tx5PUHBaPT|9p9Oy%LWe|!j0w?)G>5c= zObMA5G9zSG$dw^$L)M23hHMJCEo5uR-64BI_J%wb@?6MkAwPutIx1#V@~G5NX``}7 z6^_!4GK{JoHEz`8QSGC8Mma_;808xE$*6Ba+0dX+RcK~tbLiC26`@y#J{0_FJZVaLOM2>U7Q*RbEi{*Z;s6tW~)sw_>G zDa(?nWoFqpS%YkXtVuRWHb>Se>ypiv^~szvw``$oh3tCSX4ze`-Ll7IPssMk4$2P6 zo|C;Gds}u?_Lb~+IW3pTAq4j&gj zA$(>y311byI{eD;tHZAi-xhvH_?_W9!tV~hCwx!%li^Q=?+-s1eklBv@YllM2>&4b zqwtTzzYhO4{CEV82#t_MghwbM)DgK6nuz>}!U$7@IifPc8c`pyIAUqUmWZ7ZuSLAA zz=}|XToIv&Qba3a6)B1g#aKnQB1ciIC|6V{EQ%V%ctxF}LD8s~s+g;oujo-Y6mG>r z#bU*|isgzc6>Ami6gMkwRcuh)uGp@)OR-b2OL4E_b;Xa7L6Ku4b&d0}CwUPCa zjgb>0nS%ObZ#J{|dP6po6Bs)(8zH8-j&YJOC2R9}=c zYDLslQP)PTiCP=AF6!o}?NJX!Jsou*>Y1o#qn?j?G3w>0_o6U3reOTiL60Df^X+lmp6D%C*Xyl(#51 zC^srMD|adHQ$C=4Sh+{JS9wVJyz)imVdbmJ*Of<=$CRHbzf^v${8o7~8bwplY&0Jo z7#$U@jE;_ujZTlwiO!4GMi)dEN0&yIMVq55qi02*AAMc)_0bPU?~i^f`km+_(eFop z7=1MQlju*QKac)0`p*~~L&vZ&d`w_WaLlNfuo!tvL`+UhY0QKedyG3~Rm}RBJuxrE zd>Zpz%<-5LF(+e#V&$>QSXFFNY)Wi)tU5L~Rv&AKEsnLsT4SqXn`0-(PK})rJ1cf} zY*%bwtTWafyD)Zf?1izH#;%H89eYjeb+OmSu8rLudtdAmvHN2W#vY1&G4|!yS7Kj_ zJsSH}?60wZ#^E?RE+8%_E+j5AE-7wo-0HY>al7K~jk`bY!MKOx_QdUtdo1pWxP5U? z#~p}!FYbf5kK#U#`!w#0xUb{Bi#rkbQ`|3czr~##tr)EtJ%03@(T>rBqwgL4%II(6 z1LIZk>iD8~eY`QgB;FKX6<-ry8{ZH=F}^u|b^HVIhvQEs1SNze$P*$Gq7z~hU`dpa zosg4|m!M6!C*iS#CldB0Je}B(I3uw$u`6+YVo#zYaY5pFiRUMh#AS&q5?3Z(lK4>K zQB{PhLgiGgR;^RrqFS%osM@UBqS~$6r#h%QqPd1WEl66Hv?^(J(v?Y9Cta5um7JKI zot&Rsn5;`SB$p>wCfky0lE)`cOrDy2e)5gUJCh$u-jn=j^5eJ1B>98nqshmT zKTrND`Pby%lmAS?DRc^(5|9#XoTir>;xAC3Sb|zSRAx-=+SVdU8zkn4~eOW9r7V zjF~#-+%e0?Tr_6ynEhjpjrlq)G%Ynvlcr6}Pb*BTNE@G4pEe<_Ic;*H=SH>b}`pObD+pO=14`l9sn(l1C~mcBCmlJr&S ztJ7~v-;w@c`cvu8q(7JbV*0D;ucyD2{!aSG>BlqZ3@#%uBP1g%BRnHABRV54BReA} zLz7XEq02C4lxCD?RAyK+=4C9;xFzG+jANNpW_+eCvnjJVb5iEy%#KWZ=G@GAnF})A znTs+9GB3-#A#-i!jhQ!PZp*wq^N!3rGat^}ow+A-Z|2jPFJ!))`D*6tnV)8Uk@*B1-vQ}qZm33{_^;tJ&-JG>PYh%`JS=+L?zrYvfs#lEBl@7_tX>Av(&TIbJTYAUFzNHN7Rq1pUBbXl;xOn zDsyZ(ujd@i`6TDloG)^x<#y(F<<8IT&HX+P#B7Vbj`ZSx@o$Zy1BY8UAL}Rw?OC8t=8SA zds6p>?u727p3_I@N9z;xDt)p(6?PKx^!fTiyvRHGU|;+W2Mn%tTB!^)*Bm*Q;lWNFC-B|^#ak_$^#mt0kHZONLF zwI%CHHkIrud8Fi-lEWphmb_l_X35(nM@x>Cd|vWp$u}k6mHb-DmC8!vOVdg-OS4OJ zOSPrNrKVDIX=SOcw7PUc>9o@J(!SDx((_6$C|y>1Vd?79t4gmeT~oTYbY1DD(z{A` zm+mXwU;0exbEPkqzFGQC>3gLglpZbpr1YE8Urd}S%p^BOm?BL|lggB0N;74cvP^1I zk*Um7ZJK17Wtwf8W9l%?H91U9Q@?4E>0Hx!rVCB0P3ugXOj}I1o9;C2G(BY6V|vu| zxM`p1Y10d)cTAs|j+=fk{cQTp^hX(A7F0H>EUYZNOi>nJmR_bQGnJXkEM-+?!mKqL z%u~$0<|XD;<}1uso3At9U|wgw#k|41$$X#rLGy0&Ui0JTedhhl?^S_SAyqL|2~|l|sa2U(*;Tn! znksA6%&KKomsG8(T3dBf)vZ;7Rhz1IRUN2$wd$R!_o_au`nc-Ls&A@}SDmQ(u{yKb zQa!VJZndM@S>0c~xOz$T(&|gAud2Sb`uge{t2b0{s@_t4d-e9}S8M2++!}q2v8KGH zuBN$Wa?P}wnKd0Xoi*pw^wc zHE-4$YD;QsYFlcj*3PJHt({YAubo%hU%R;W+}fqJq;^^DirR~6@2GvT_Sd@9I(1!9 zovE&>Zd_ec-L$&aI#*qP-T8Gw-SWB%>#nZ5zV61lo9hPaHrH*fyS?s#x`*m^*X^w@ ztFNuEuWy88@80@D^)J>Ru79om?fN72AJl(T|5^RF^}jSw4Pgz624zERLt;a6!9{<;WRh{&V+N}Jh&XLfGgoDxEgMN8{rnX6>fvO;BL4d9)-u?ad;kH zfEVFqcoW`*kKq&e6#fJ4ui+btro1Q#C8d;PhvYdQ*LezM`g3Q>oe19BK(wMXjLLQk$qP z)E;Ut^%J#^+D{#zexoi^SE#GhHR?KbgStumZl`Whx2b#7ed-bQlzL9RMiB9k2jU|! zk{~HkBYzZt0#Oi3MQO;4(vbyapiE>%S*QWZMmeYjYKaO^E7TfwMqN=i)D!hWgV10! z1Pw*Q&~P*YjY6Z*muMRL8cjzIGy^R_3(+F96s`-&&`ER(okN$<6?6yvfgYg8=oxx}UZJ-%kM^W}Xfds({pkQYgbt@8=!SGY-IQ)g z7tn3#c62AYGu@T$M)#z9(Is>#J%BE!2hoG+;q(X^(;PjP9!F24C(%>w^fY<~J(I4Y zm(taA4ZVzBPOqR>(wph;=}v z>C4y$Geel6jGYf1 z$~I%0vu)V6Y&*6a+np`$$o61M*}?1(b|^cH9nOwmN3!GDFWCv~M0N%{lbyxRWmmDQ z*>Bi2>{@mm`z`w&`#rmb{ek_7J;)wnkFZDCv+OzcJbQt?$X;h}us7Mq>|gBP>?`)I zVViS@I-?tDljoo?^w#tO9;Uua5Y|quMw0# z@qKLTl-D3TyL<1-vhvLG;-W&4h`hJ#RW>-kXi)E-MFi~da`#1rqG(5Rv9Dv6+mKEj z2u49s*TzL%i%U)e9`FEs&=C}ah?Srd=nM)$7f=Mcf^MKYR$)J^#{M_}2jU zloQI~@G3AGM_^k)lcL`J>gJ3GlYmb(_!3M26R{TSaAY-@OqQI2qsT%diJ-pWb!|BV z7^=Wb9F2u_^X7mhAYuiW3+93OU;$VN7J=(Av2kZs=oLl_~r&WRd*i0752=|Qx zKZ7Gn!C~+VPR9*!P95!I;3V)_3XX#l*n%^bf>Yo$&cs$i>v3SD{S+{PByb7*+A+Un zgWlaLdzbYqDj&L(KvL@nTn5+vhrkU&ARA|eWK4|!&L0<%+u%;;{FY4yRu*+FDb6e} zFB)16Zi8fy>KeWW{wNfQKO(pmvpZL-2KVZ(cOSe05o^E$@DMx#kHHi06g&fef#=`_ zcnSW-dAK2Ngd5`~I3G8~&2V$v0=L8kYrsF?HFyKwf_LCO1Q0?BB1l69x5904JKP?3 zz#VZX+!+_*F1QGH#kN9Gq@yZAFSVNDjq!>4oCH%`oG~*YK0cvP6i7zoj=~6^(42VZ zs39Rf^V6szJ2TFdqqip2O>{`L@s1-A8Xv2n4pfKj=oO*yuo~;Yj;j&rMC!ynpajaQ zpcJ>pZ3;!gtg_Pny-SJ%Tb2zh?^awLW|l|(NeMB1{rvYJ3tAhlI~OY-tTKTr+* zLBx_J*w(BL5)4CJkUBsZ40i$A43CQnOtu?G){R8MsLxSjVch3{M5zB9V1h}X15#ny z=Ku@LZ~FF3dBK%{PRNU}M;%T}5#TaRg#^?J9eh7FSdjmGBu8ANQhFBlgJom~{ow#u4l7_K90&(Fkf23MB`(Km`ip&5)LGL8i-wv12NVsEj4|f$C_K6b zR>7sP8rI-3cpUx`Patt;s4(688@QH4Be({StpW{6Fts@j2}8ZVg`1twO?Z4A^qtV( zdprEm3HQpsp2gGf*JSj#NNTUMk4x~^&u#MxyjB-G;dMO2scPr`e|K_l3*N>v@tjW_+=KT& zTjK$Ih-cy1IIG>q^D!i2bZra-bt^uDFMyBaQ^18U;oo>Jo<|s4?X4ERh40{dz^4El zNKq7WobzrJxR_{Z0bY8JVknjjxl!&Ej|>A!0Jl<}aE2q(C%@-nT!k0@i|tWjTxWNS zKHA!6q$n97CLp=;KsW<0A!}7REsyM)QW33F6j@tXYavts73jzpN77UfvAKM)j^_f0 zP#VVuaX3wd67U9bSem*s93xVulOiTDuFW87bZAGnaDY^ z+tl!&54E9FugjQUz2;a;j6UsMb^)sx8%yYEN~*>+uG>5r2y} z;m!EF6;vk>0z#-RQJb$_mFrS%_ne%)QAp$^jyl61?dI<0t2r zFKUs=wna@Vdli=l=9Cwe77s2f?^{vF%3NxJYtDRvy1(8W$56S-zLcu@xTj_KAkM0r zwvt-?aR<&tY;^R#AtjpQ*#tFVqq0D0PfFPMyFf@hN;7pTTGGIeZ>p zz!z5$U7e=RP-n^WJavKmy+p`e!oT9*$n!G3LjGPQ5*PdaYQFCFtNmWL)fd#?AMO4XzFuedZ@`gi>Miw-dXI15Tlnrr+eZ{)>RUA8vB(YI z#J`iEFjpC(L;@uIY+QuA@ojvE44+f_E0GNOem1N`Dtr(BL596l{&1j!i|tEJMvuCq zq0T>1Fp2>Y-=GkrL7^xNg`)_hMLHCTqEIw`h#%p{_z8ZBpW(mobNm9o#D9MS!cZJ& zh!RjD(jx;hB9qe(NIL!skKo`D4xZ%T84f<>;4_W_M53gqC=^Moq)h1BzpQt^%8JZx zn>_uLFdErVW8#}A7v-Ubs1g1Lzs7Iy+Zxma<)fyk8GgsXG!D+=$cbVjr`d*h)CRRD zCW+djcKAI9;ZoEAb>tx8U;;6-Pe&apavp0O1dg3eM#<{Id${1#r)+`mXd2+2-W!z> z|3ZCGUsQrhQ9lmS9Ar4ia?p)~?#obrGys*O3RKBK9tS-*DB+-#gYnM2MLPzBi5-gr zUW!K|J5f9Of`j}jggGc6d}o9!4P!{WLu1i64tjFX=abeapvgpSXd;@#K`#ypm!hxG z6b_0w=uK4jI51H?6V3U57(^fhLrgHzf+E8glMs!Ta8UL!djfn^jcU*`*o1?=98_>n zj?0K7IEO6QJA5@-M|=x?gVvz698_{p#X-Mnv>t6h8#$=vpg#u#2;Yr@`xb0-(%#O& zz>gUa+JQ)Eu^jD0yU=d52kk{aaWII3!5j?XpoW8?91L3ytI+{cJ2gZ<6PNvxgW<$y ziE-#^4}Xu4X^!n78e)rT2N&!c*@VgNYnW{SYr`4&p~}X-O^sP z(3u!>(8xi9GxZJ0{9Zh6}j z&JyOVE+n{CT6CauHKNOukJ_d+bf{|!B(V(^Xz64Sv0fykb#$boeWcRPK{E#}9L(fk z76-FAXyafW2ODut_L_3AIR{&EuoVZ}aIl?oVhWu~r_p9Qowm>!bS7=3v*-qNHl0J; zXtMVX9PGwHqUkaYR&a0-2ZwTSBnQWEa6AVma*#O3*BqR|!P!oK_xYIH(oI~Bo$lDJ zZ|BH}_Hb-4^6EK0-NH4VQ79^L>}k@v7A4l?DgG22=r%4Ct7B?hWqo)@7rX(1M>*{I z(T>G2?hdnFTp#B{yvcFQONeuXCn^;2^`a5|A?oCQzBpgnt3Fa+*D?+NXBls4X??8z zF0966pC$G8M`{IUz{@WbO(FZMaGZ!?9D8Eq^?4lTLTOgVqcpBQVY_Rz1tHw$bH>KF zMhXaH<)1S%!8OwQ14U*1)uy<{+Bz1;_pT3jxZv%{oJPjlE)YG7o=@C@o=wl8=h7s& zk%-=jgPl28SVJ$M7lIIaF$cSFq!Qc0K~k1GGEzr0AG$L2QuB_(jfQwqu*RE`4I^7S zOV_x%!j)b{lQ{PuRM*oR2-R;n*qwvLPO3c!Rf$CtPj97nIA?96x6?n+KXR}a2Z{Ie z;b7kydMCY$%-X|2;y|U&S^ZqRFylszY*y^plPZs=f1ywO=c*^^Q)E7gZ~Zwqz&XF1 z%+ECk$J3YStN%Ic8hza*fl7{4g&!m^->kILcj*WJIqM<)$Te#)2Zwx^<%|=pHz-5n z+c_mgx)@0xh4q3aq3S<`^@e^+NRi`q7zc+tNs;`Eka9dU1;jH9<3T1eEaS$wGdvEG zqmM)da`bUE44)CWco@aO(RG|>q>i+2k?>o)c!<*{)bYT`8NdJHfl)L5E>dGTIIiAy z+9k#tEp46KNvKCDl+pbsrAQ{q+eM0;OB3q2nw;bt&m=OWZ}A^{NoG<&2$RM^a#Bxr z&iabzZfk0g-OAXUYyF$SFu6>gYpJOmoK}zPab-v}`2P!_8ADnX|E>h4HPgmLYB~oU z^+?$}+5#7Qxo9OPd~Dk=otbX`Nvk_k?4mW3gR|<tc zkJG}Ncj~rmYHeA{%wgs_k~0ICYGxiY-(kv3w=)Zw<)q`xEMgWjOPDHVDH*F_mT{2$ zTfxCq9Q=lZYdN@{gCrT+w31oDtYlU(tC??@HOyLO9S6VTAkqF-4sPS%UJjD%XCDVi z!B;PqGMikxTV5zi7!qCE&y6lA>zNW8>-Z}(v|cb|wz?2kI-;z``tTht_-e<%&*6Jr z@HLK|pTiHj;OiW2S)b84;(~8*H2WNW(gpw4G52%$ITw7h<3?7Rn7PQ1)<_j|iG$x) z!3xs4a%#n|>4zGJxyIc1pW(WZ+sxhn7`e|pbdEgW;Pxu!5l8wwwVDoMo;fxB7YBdD z!n35?lFPh=dCcF;E7F)KW%e>}9S<4=$oF92&cQVt+;N(D&jQk)*vCSaa)e|@*mrVp z_bHYJe3oHZXQQioQDu=8FdW=fYYePA%j@(pX>33Ss|m;hq_!q~ZSv+q60n}6IhNP2 zd-0HFMU}mlvR)vyKEQ<~V!aDRGE%@dF6-IA)rxc+&gLT@R_wTtoott~@_*kyt76sv zF%ra*mh1<~uo@2T|BwT+;Y2cQ1P2fNn`BP1u^e=Xg`8#wonnaxc0TC}?PE!iBdWKT z+GYb0(g!86de-=9K@$gmu3Iq0xnL>>5C7YO=U8jqf}1(`i)%r$9^A@Ob;JXS5^`A5 zc3H~W*jx@C<>0ZUY(ti$g~vHaS}l%vTNiN)wt%e9lKk*g6-!dY(*#~)iwtMmvzS%fWLTJYUTgvR$ZA9K686CwLFRePJtU$o2$BYS>KFtkb{>wc!h(`ntx61{0R07mRu42f8^2Z z7?vD7*Ex8DgEt9sS)MkNoy1Q4H{@yT*DMLrw>Ws4gLlYLX?a}RyCOGRfuR%#bQ$Sv zmfdtQuPc?mt4<&D*eX(35k?oV3)uneVs=R_yZ1Qw2jQ55e{%5ta+dU0*&22k>9SUH z@PV_oddR`Yq}lqVGouf7tk3m#tY|#m&aNj)*uZXddV;fW?u?A%YF-KBIQYnA#GBa7 zF4Hew%5DOwg(B~QvhGDg1B)t2YLH?`49sjI`lGfmV7HRG40w_|!n!*n_D6P?Q@uM_ z;&#MqUo2&Jvm`MhCD7a2Q0Ps3xVGuc9&m+}=gvyJUWj9Valv1be6!TCJD>4qkFm~s zDE2sef`hL(_|H=I6nmP3uQ~XJl)5+b!|d!O_VWLrTw$+r@Er%=J9~elcGpV!;};kA zq;tC(te~T41ACVQ`zmG`d!K#4EW#w8$#fPd6s(Q*B=T?KDAHY{$#Foo`l&QP%W9dG zL3uqO`?3~DA!jOHe`jx8aK@QQJEk?4+JPHv)v~gvvKT|)4tzl{hy(_Z0xaZGycM|$ z??VqHSKk~xnp}NPq$kr;$i4R#`WXEyeV=|vKc=6Oo9q|#-}FE98^)6nlACNXxy6<< zzKn__MgdF=(}Em`>zOMoVEtGV+md)rAzMT)kxR(!F}9N{T zeXF~DzxyHg!|q4jkGr3Af5l^YJRYCt#S`&-cygYG7s-p}#q#2LNxT$Z8ZVuf!7Jg7 z;Vs}TI2f8g)t@8$2~AK;(nU*KQj|Hi-0zsbMFzr%kna2N0dJ_3~>LJ%!T5m*G7 zf-FI=y)= z1kVJ|1uq4!1g`~e1@AqfC-P)G-8^}od{0l$RL|C)Lp^7BuJ^p)`OM49OY7CZtI%th z*J!VCUSE1m^jhGx%!jBeud80yyl!|s@_Ov`#Os;YYoWW4 zC-e{sguX(hP$g6gb;3wtlrTn^Y8R#n%|eT?v9O6SU)W68N!VFfC@d285ta(egad@5 zgp-A{giD1r!sWu1!quWgQJN@E)J)VuR3K_C>Le-@6^XiuibW-&3ehal2GIf0anUK! z8PPe>P0{b7TcSIn$KE1uxwpx?iFZ%$5#Ce17kO{=KI(nk`=s}2@3Y?a^WN9IuY2G0 zzVH3Y`?dF5@Ap3LKK?!-KFK~-pHiQ4pM^eKeNKx##Y%CoI7S>NP7v$GW^tA{SDY_y zCT=J0DDEuoA|4_hE1n{rCY~;yA)X~(EUpq)iiGL6u5MLGF7e5j|5&tEA zA^uw;l>|#dCE*gCB+4#{kys@SB+VrSlGc)Tk`9tik^z!o61#+xjFya*Oqa}-%$3ZS zERigg)JT>~HcNI$4oi+pPD)NoE=Vp(ev@30{2_TJ1yU%bq_osqDv`>hzEYJ`Ee(@K zN~5K*(s*gQG)tN-wMiRG^QFzCEu$4Tc%tEAsb4@$2~ z-$>udfQ*vSGPNvB7A;Gbb(Hmz^^ujx`pNps#>&RaCdekqzLHIq&5>=CZIXQ_+alX0 z+bi2IJ1F~Ec1rd}4&{+@y}Z4=P(D^ZT|QGjTRu;|K)y)6LcT`6PQF3@t$de!pZtLQ zkX?RMeq4T1ep>#U{GR-w{IUG0{H6Sr{I&e8f>nqWehPm@pdwhIQA8_Z74eEhg+XCb zv{wvOe5F{c*sl0l@r&Z9;<)0Z;}I*>F4L??-%G7?5FVy^Go(i z^)vff{4)Kr{IdOQetCY4{F?an@*C_o$#1dWI==&cm;7F+`RZVGq&i9+qc*9N)G6vL zbpv&dx~aOEx`n!f+TKy!S>0FNPu*W#p&qCntj6l`>Iv#e>aWyO)eF>B>T2~e^=kDR z^*Z$i^-t;}>Wk_t>TBv7>O1Ot>Oa*F)UW+%e{X-8zrtVXAK)M4AL1YCpX8tEzs>)Q z|8@Vr{r~ZQDz8Zf` zkVc~k(loHKtSGEoSaI0Iu;pP#!=8ovh9`$x z!?VM4!yAUT4DS@)C45eJRrsdx?cqO#9|^x0{#*Ff@EhT`!taLv8U7&rMfj@-SwuiY za75#XRuOF@Dk4Ti*zFN3BQ{2CjyM}}CE~i)R~x1c*G6b{T9YXLsdXk@16{GMm#(j_pKgGzQa4yP%&r@$!@AMBak>e*$-1e!>AFq2 z?{(XBKk9br_UiWQ4(Wc;9n+oEozb1wUD93FUDMsrJ<>hVJ=492EQ;(G**~&8a$w}| zkxwF@MLv)GJF0Kgkf>o%Bckk4Pov&PlWUx4Ho9qa$LP+{U81{1pNhU3eLebS^zE2- zF+E~>#q^1>m&RO(xfOFK=3dPG*paalV<*Q>iTyhEQtX}Bd$E7UK8$M@*CVc1T%Wko zxNC6_;vU64iTf+w9N#d$aeRJ!^Z0G?2jUOKAC5noAWH~Ih)Re}NJuawBqd}fG)S-| zE(K*Uab$*hv=j9 zvHAqPUT@MT>#h1m`T~8CzK_0C-(O#$AEdYIN9o7v$LlBRC+lbG7wgyPzteBk|DfNg z-=jaQKdQH%(4W$u)t}d2)BmA=X#fUfU=2Kjz#ug!3@U@#5NHTCL>lx4v!S7(rJ=Q< zouQ+l(9p}!*U-<<-%w!~XqaZ$V%TqZV0d8!Mo**6=xg*d1{i~lk;WME|ArEcMq`pO z)7a41#@NN!&Dg`(+gM^8XdGf3ZX9XEcH=1HB;yQYm2tIkt#N~Klkt1wF5_O~e&a#o zVdD|wS>qMsE#p(;YvVf;G|?tElgK1C$xI59%A_`hnc_@lQ;sRm)Y#P2)WX!k)Y(*I z>SpR;>SY>W8gBa1^tEY*X|`#eX`yMkX_aY>X`N}KX_M(k(|*$_)32s0Ci`{M@1{GZ z$EIhd7pA{WuT5{0*d$SsIw>$IBq=OOn-rOpl$4T`mSjmfnRF%TdeZMncar`{x}WTx z?42x0mM8lr>yopQvy*d^8ztu_UrWB1{4~WoMUi4kX_C@DrEf~VlmRJ~DT7mnrHo9$ zDWg+nq|8p4m$EQrNlJCf@|0Eflr<^qQhrF;k+LggZ_3M5I+aazPvxg(q&7)yn%X?I zAaz3OtkgNF^HLY4o=Ux%dOh`K>g_aDT11*IEh;TGt$W&lw2HKWX+zT1rfpCAF>Pns zp0pQcWM<7gv%u_S7MY{W$>ub(#cVYOOnLC<0o4c4x&Hc^x3iBZIQ1fu} zZ1WOxwRyRDrFn<>g!z*BviYj{n)#;rw)t7QTe@$$UwS}#M0#9$V!AQilHMe}AiYC+ z_w@eh1Jk+miRsnptJ8l|qdWs=%*v?F zSe>ypV?)NKjO`gaGInR|&DfXmGSeqBGE<*v&dkWn%FM~k%d|JjY@1n_*)_8`vsY$W zW_jko%psY>GOIIBX1=wuR(GqHRb>sfhFT-6k=6vO!J1@EwVJIt);w#WwZvLs9b_G9 z9bp}99cP_joot$0P>l`{qkR#1e@&V-!FHcy+<=4bP_1=%Ls=Gqq7s%$m3Rkk&@^|p<+Ew-JugSHd4%eEV~ zTeiEl2e!wyXSV0Ice!r4qTJBj@LXMPbZ%U3Vy-c_QF3ltt|ix++aR}jZp++OxovZc tb9?6Y&MnD3pZk06?cBS$f9AE$>y=lUSK;auP?YQG_TlMz10ZkU{{jC$#{mEU diff --git a/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist index b9ac11fb120f..aba405e3f0a5 100644 --- a/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ b/samples/client/petstore/objc/PetstoreClient/PetstoreClient.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -237,5 +237,18 @@ landmarkName = "-testGetPetByTags" landmarkType = "5"> + + diff --git a/samples/client/petstore/objc/client/NIKCategory.h b/samples/client/petstore/objc/client/NIKCategory.h index 7c66bd1aced0..376287775182 100644 --- a/samples/client/petstore/objc/client/NIKCategory.h +++ b/samples/client/petstore/objc/client/NIKCategory.h @@ -3,12 +3,10 @@ @interface NIKCategory : NIKSwaggerObject { @private - NSDictionary* raw; NSNumber* __id; //NSNumber NSString* _name; //NSString } -@property(nonatomic) NSDictionary* raw; @property(nonatomic) NSNumber* _id; @@ -18,7 +16,6 @@ - (id) initWithValues: (NSDictionary*)dict; - (NSDictionary*) asDictionary; -- (NSDictionary*) asRaw; @end diff --git a/samples/client/petstore/objc/client/NIKCategory.m b/samples/client/petstore/objc/client/NIKCategory.m index b0ca3f239a95..52c7990391ae 100644 --- a/samples/client/petstore/objc/client/NIKCategory.m +++ b/samples/client/petstore/objc/client/NIKCategory.m @@ -3,8 +3,6 @@ @implementation NIKCategory -@synthesize raw = _raw; - @synthesize _id = __id; @synthesize name = _name; - (id) _id: (NSNumber*) _id @@ -17,9 +15,10 @@ - (id) initWithValues: (NSDictionary*)dict { + /* isContainer: , baseType: NSNumber, complexType: */ __id = [dict objectForKey:@"id"]; + /* isContainer: , baseType: NSString, complexType: */ _name = [dict objectForKey:@"name"]; - self.raw = [[NSDictionary alloc] initWithDictionary:dict]; return self; } @@ -31,8 +30,5 @@ return output; } --(NSDictionary*) asRaw { - return _raw; -} @end diff --git a/samples/client/petstore/objc/client/NIKOrder.h b/samples/client/petstore/objc/client/NIKOrder.h index d3f9d23fcce0..085dcb9c083d 100644 --- a/samples/client/petstore/objc/client/NIKOrder.h +++ b/samples/client/petstore/objc/client/NIKOrder.h @@ -4,7 +4,6 @@ @interface NIKOrder : NIKSwaggerObject { @private - NSDictionary* raw; NSNumber* __id; //NSNumber NSNumber* _petId; //NSNumber NSString* _status; //NSString @@ -12,7 +11,6 @@ NIKDate* _shipDate; //NIKDate } -@property(nonatomic) NSDictionary* raw; @property(nonatomic) NSNumber* _id; @@ -28,7 +26,6 @@ - (id) initWithValues: (NSDictionary*)dict; - (NSDictionary*) asDictionary; -- (NSDictionary*) asRaw; @end diff --git a/samples/client/petstore/objc/client/NIKOrder.m b/samples/client/petstore/objc/client/NIKOrder.m index be0ff590c50b..8024915e3b79 100644 --- a/samples/client/petstore/objc/client/NIKOrder.m +++ b/samples/client/petstore/objc/client/NIKOrder.m @@ -3,8 +3,6 @@ @implementation NIKOrder -@synthesize raw = _raw; - @synthesize _id = __id; @synthesize petId = _petId; @synthesize status = _status; @@ -26,13 +24,17 @@ - (id) initWithValues: (NSDictionary*)dict { + /* isContainer: , baseType: NSNumber, complexType: */ __id = [dict objectForKey:@"id"]; + /* isContainer: , baseType: NSNumber, complexType: */ _petId = [dict objectForKey:@"petId"]; + /* isContainer: , baseType: NSString, complexType: */ _status = [dict objectForKey:@"status"]; + /* isContainer: , baseType: NSNumber, complexType: */ _quantity = [dict objectForKey:@"quantity"]; + /* isContainer: , baseType: NIKDate, complexType: NIKDate */ id shipDate_dict = [dict objectForKey:@"shipDate"]; _shipDate = [[NIKDate alloc]initWithValues:shipDate_dict]; - self.raw = [[NSDictionary alloc] initWithDictionary:dict]; return self; } @@ -64,8 +66,5 @@ return output; } --(NSDictionary*) asRaw { - return _raw; -} @end diff --git a/samples/client/petstore/objc/client/NIKPet.h b/samples/client/petstore/objc/client/NIKPet.h index 6d1e649f06e8..c6f0683f7309 100644 --- a/samples/client/petstore/objc/client/NIKPet.h +++ b/samples/client/petstore/objc/client/NIKPet.h @@ -5,7 +5,6 @@ @interface NIKPet : NIKSwaggerObject { @private - NSDictionary* raw; NSNumber* __id; //NSNumber NSArray* _tags; //Tag NIKCategory* _category; //Category @@ -14,7 +13,6 @@ NSArray* _photoUrls; //NSString } -@property(nonatomic) NSDictionary* raw; @property(nonatomic) NSNumber* _id; @@ -32,7 +30,6 @@ - (id) initWithValues: (NSDictionary*)dict; - (NSDictionary*) asDictionary; -- (NSDictionary*) asRaw; @end diff --git a/samples/client/petstore/objc/client/NIKPet.m b/samples/client/petstore/objc/client/NIKPet.m index 3af9f9e9a893..2d8fb47ff046 100644 --- a/samples/client/petstore/objc/client/NIKPet.m +++ b/samples/client/petstore/objc/client/NIKPet.m @@ -3,8 +3,6 @@ @implementation NIKPet -@synthesize raw = _raw; - @synthesize _id = __id; @synthesize tags = _tags; @synthesize category = _category; @@ -29,7 +27,9 @@ - (id) initWithValues: (NSDictionary*)dict { + /* isContainer: , baseType: NSNumber, complexType: */ __id = [dict objectForKey:@"id"]; + /* isContainer: true, baseType: Tag, complexType: NIKTag */ id tags_dict = [dict objectForKey:@"tags"]; if([tags_dict isKindOfClass:[NSArray class]]) { if([(NSArray*)tags_dict count] > 0) { @@ -40,16 +40,16 @@ } _tags = [[NSArray alloc] initWithArray:objs]; } - } - else if([tags_dict isKindOfClass:[NSDictionary class]] && [(NSDictionary*)tags_dict count] > 0) { - _tags = [[NIKTag alloc]initWithValues:(NSDictionary*)tags_dict]; } + /* isContainer: , baseType: Category, complexType: NIKCategory */ id category_dict = [dict objectForKey:@"category"]; _category = [[NIKCategory alloc]initWithValues:category_dict]; + /* isContainer: , baseType: NSString, complexType: */ _status = [dict objectForKey:@"status"]; + /* isContainer: , baseType: NSString, complexType: */ _name = [dict objectForKey:@"name"]; + /* isContainer: true, baseType: NSString, complexType: */ _photoUrls = [dict objectForKey:@"photoUrls"]; - self.raw = [[NSDictionary alloc] initWithDictionary:dict]; return self; } @@ -99,8 +99,5 @@ return output; } --(NSDictionary*) asRaw { - return _raw; -} @end diff --git a/samples/client/petstore/objc/client/NIKPetApi.m b/samples/client/petstore/objc/client/NIKPetApi.m index c92bd9ab3369..3a0a760f6805 100644 --- a/samples/client/petstore/objc/client/NIKPetApi.m +++ b/samples/client/petstore/objc/client/NIKPetApi.m @@ -22,6 +22,13 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; [_api addHeader:value forKey:key]; } +/** + * + * returnTypeIsPrimitive: + * returnBaseType: NIKPet + * returnContainer: + * + **/ -(void) getPetByIdWithCompletionBlock :(NSString*) petId completionHandler:(void (^)(NIKPet*, NSError *))completionBlock{ @@ -38,21 +45,28 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(petId == nil) { // error } + // not a return container [_api dictionaryWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSDictionary *data, NSError *error) { - if (error) { + if (error) { completionBlock(nil, error);return; } - completionBlock( [[NIKPet alloc]initWithValues: data], nil); - }]; - + completionBlock( [[NIKPet alloc]initWithValues: data], nil);}]; + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) addPetWithCompletionBlock :(NIKPet*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -90,21 +104,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) updatePetWithCompletionBlock :(NIKPet*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -142,21 +164,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"PUT" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: + * returnBaseType: NIKPet + * returnContainer: List + * + **/ -(void) findPetsByStatusWithCompletionBlock :(NSString*) status completionHandler:(void (^)(NSArray*, NSError *))completionBlock{ @@ -174,13 +204,14 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(status == nil) { // error } + // it's a returnContainer [_api dictionaryWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSDictionary *data, NSError *error) { - if (error) { + if (error) { completionBlock(nil, error);return; } @@ -192,11 +223,17 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; } completionBlock(objs, nil); } - - }]; - + }]; + } +/** + * + * returnTypeIsPrimitive: + * returnBaseType: NIKPet + * returnContainer: List + * + **/ -(void) findPetsByTagsWithCompletionBlock :(NSString*) tags completionHandler:(void (^)(NSArray*, NSError *))completionBlock{ @@ -214,13 +251,14 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(tags == nil) { // error } + // it's a returnContainer [_api dictionaryWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSDictionary *data, NSError *error) { - if (error) { + if (error) { completionBlock(nil, error);return; } @@ -232,9 +270,8 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; } completionBlock(objs, nil); } - - }]; - + }]; + } -(void) getPetByIdAsJsonWithCompletionBlock :(NSString*) petId diff --git a/samples/client/petstore/objc/client/NIKStoreApi.m b/samples/client/petstore/objc/client/NIKStoreApi.m index 70c89413658b..4fdfdcca1da2 100644 --- a/samples/client/petstore/objc/client/NIKStoreApi.m +++ b/samples/client/petstore/objc/client/NIKStoreApi.m @@ -22,6 +22,13 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; [_api addHeader:value forKey:key]; } +/** + * + * returnTypeIsPrimitive: + * returnBaseType: NIKOrder + * returnContainer: + * + **/ -(void) getOrderByIdWithCompletionBlock :(NSString*) orderId completionHandler:(void (^)(NIKOrder*, NSError *))completionBlock{ @@ -38,21 +45,28 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(orderId == nil) { // error } + // not a return container [_api dictionaryWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSDictionary *data, NSError *error) { - if (error) { + if (error) { completionBlock(nil, error);return; } - completionBlock( [[NIKOrder alloc]initWithValues: data], nil); - }]; - + completionBlock( [[NIKOrder alloc]initWithValues: data], nil);}]; + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) deleteOrderWithCompletionBlock :(NSString*) orderId completionHandler:(void (^)(NSError *))completionBlock{ @@ -69,21 +83,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(orderId == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"DELETE" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) placeOrderWithCompletionBlock :(NIKOrder*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -121,19 +143,20 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } -(void) getOrderByIdAsJsonWithCompletionBlock :(NSString*) orderId diff --git a/samples/client/petstore/objc/client/NIKTag.h b/samples/client/petstore/objc/client/NIKTag.h index e7043f7a350c..86a4100da577 100644 --- a/samples/client/petstore/objc/client/NIKTag.h +++ b/samples/client/petstore/objc/client/NIKTag.h @@ -3,12 +3,10 @@ @interface NIKTag : NIKSwaggerObject { @private - NSDictionary* raw; NSNumber* __id; //NSNumber NSString* _name; //NSString } -@property(nonatomic) NSDictionary* raw; @property(nonatomic) NSNumber* _id; @@ -18,7 +16,6 @@ - (id) initWithValues: (NSDictionary*)dict; - (NSDictionary*) asDictionary; -- (NSDictionary*) asRaw; @end diff --git a/samples/client/petstore/objc/client/NIKTag.m b/samples/client/petstore/objc/client/NIKTag.m index ba5dfca98494..51b38a786441 100644 --- a/samples/client/petstore/objc/client/NIKTag.m +++ b/samples/client/petstore/objc/client/NIKTag.m @@ -3,8 +3,6 @@ @implementation NIKTag -@synthesize raw = _raw; - @synthesize _id = __id; @synthesize name = _name; - (id) _id: (NSNumber*) _id @@ -17,9 +15,10 @@ - (id) initWithValues: (NSDictionary*)dict { + /* isContainer: , baseType: NSNumber, complexType: */ __id = [dict objectForKey:@"id"]; + /* isContainer: , baseType: NSString, complexType: */ _name = [dict objectForKey:@"name"]; - self.raw = [[NSDictionary alloc] initWithDictionary:dict]; return self; } @@ -31,8 +30,5 @@ return output; } --(NSDictionary*) asRaw { - return _raw; -} @end diff --git a/samples/client/petstore/objc/client/NIKUser.h b/samples/client/petstore/objc/client/NIKUser.h index d6cd60bb5274..3b061d73cdf0 100644 --- a/samples/client/petstore/objc/client/NIKUser.h +++ b/samples/client/petstore/objc/client/NIKUser.h @@ -3,7 +3,6 @@ @interface NIKUser : NIKSwaggerObject { @private - NSDictionary* raw; NSNumber* __id; //NSNumber NSString* _lastName; //NSString NSString* _username; //NSString @@ -14,7 +13,6 @@ NSString* _password; //NSString } -@property(nonatomic) NSDictionary* raw; @property(nonatomic) NSNumber* _id; @@ -36,7 +34,6 @@ - (id) initWithValues: (NSDictionary*)dict; - (NSDictionary*) asDictionary; -- (NSDictionary*) asRaw; @end diff --git a/samples/client/petstore/objc/client/NIKUser.m b/samples/client/petstore/objc/client/NIKUser.m index cf51906457fb..5e6a393e0a44 100644 --- a/samples/client/petstore/objc/client/NIKUser.m +++ b/samples/client/petstore/objc/client/NIKUser.m @@ -3,8 +3,6 @@ @implementation NIKUser -@synthesize raw = _raw; - @synthesize _id = __id; @synthesize lastName = _lastName; @synthesize username = _username; @@ -35,15 +33,22 @@ - (id) initWithValues: (NSDictionary*)dict { + /* isContainer: , baseType: NSNumber, complexType: */ __id = [dict objectForKey:@"id"]; + /* isContainer: , baseType: NSString, complexType: */ _lastName = [dict objectForKey:@"lastName"]; + /* isContainer: , baseType: NSString, complexType: */ _username = [dict objectForKey:@"username"]; + /* isContainer: , baseType: NSString, complexType: */ _phone = [dict objectForKey:@"phone"]; + /* isContainer: , baseType: NSString, complexType: */ _email = [dict objectForKey:@"email"]; + /* isContainer: , baseType: NSNumber, complexType: */ _userStatus = [dict objectForKey:@"userStatus"]; + /* isContainer: , baseType: NSString, complexType: */ _firstName = [dict objectForKey:@"firstName"]; + /* isContainer: , baseType: NSString, complexType: */ _password = [dict objectForKey:@"password"]; - self.raw = [[NSDictionary alloc] initWithDictionary:dict]; return self; } @@ -61,8 +66,5 @@ return output; } --(NSDictionary*) asRaw { - return _raw; -} @end diff --git a/samples/client/petstore/objc/client/NIKUserApi.m b/samples/client/petstore/objc/client/NIKUserApi.m index aaed562d80ab..98ac2a772899 100644 --- a/samples/client/petstore/objc/client/NIKUserApi.m +++ b/samples/client/petstore/objc/client/NIKUserApi.m @@ -22,6 +22,13 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; [_api addHeader:value forKey:key]; } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) createUsersWithArrayInputWithCompletionBlock :(NSArray*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -59,21 +66,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) createUserWithCompletionBlock :(NIKUser*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -111,21 +126,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) createUsersWithListInputWithCompletionBlock :(NSArray*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -163,21 +186,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"POST" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) updateUserWithCompletionBlock :(NSString*) username body:(NIKUser*) body completionHandler:(void (^)(NSError *))completionBlock{ @@ -219,21 +250,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(body == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"PUT" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) deleteUserWithCompletionBlock :(NSString*) username completionHandler:(void (^)(NSError *))completionBlock{ @@ -250,21 +289,29 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(username == nil) { // error } + // not a return container [_api stringWithCompletionBlock: requestUrl method: @"DELETE" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } +/** + * + * returnTypeIsPrimitive: + * returnBaseType: NIKUser + * returnContainer: + * + **/ -(void) getUserByNameWithCompletionBlock :(NSString*) username completionHandler:(void (^)(NIKUser*, NSError *))completionBlock{ @@ -281,21 +328,28 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(username == nil) { // error } + // not a return container [_api dictionaryWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSDictionary *data, NSError *error) { - if (error) { + if (error) { completionBlock(nil, error);return; } - completionBlock( [[NIKUser alloc]initWithValues: data], nil); - }]; - + completionBlock( [[NIKUser alloc]initWithValues: data], nil);}]; + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: NSString + * returnContainer: + * + **/ -(void) loginUserWithCompletionBlock :(NSString*) username password:(NSString*) password completionHandler:(void (^)(NSString*, NSError *))completionBlock{ @@ -318,21 +372,42 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; if(password == nil) { // error } + // not a return container + // not an array, need to get json string as response [_api stringWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(nil, error);return; + if (error) { + completionBlock(nil, error); + return; } completionBlock( [[NSString alloc]initWithString: data], nil); }]; - + [_api dictionaryWithCompletionBlock: requestUrl + method: @"GET" + queryParams: queryParams + body: bodyDictionary + headerParams: headerParams + completionHandler: ^(NSDictionary *data, NSError *error) { + if (error) { + completionBlock(nil, error);return; + } + + completionBlock( [[NSString alloc]initWithString: data], nil);}]; + } +/** + * + * returnTypeIsPrimitive: true + * returnBaseType: + * returnContainer: + * + **/ -(void) logoutUserWithCompletionBlock : completionHandler:(void (^)(NSError *))completionBlock{ @@ -345,19 +420,20 @@ static NSString * basePath = @"http://petstore.swagger.wordnik.com/api"; NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init]; NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init]; id bodyDictionary = nil; - [_api stringWithCompletionBlock: requestUrl + // not a return container + [_api stringWithCompletionBlock: requestUrl method: @"GET" queryParams: queryParams body: bodyDictionary headerParams: headerParams completionHandler: ^(NSString *data, NSError *error) { - if (error) { - completionBlock(error);return; + if (error) { + completionBlock(error); + return; } - completionBlock(nil); }]; - + } -(void) createUsersWithArrayInputAsJsonWithCompletionBlock :(NSArray*) body diff --git a/samples/client/petstore/objc/tests/UserApiTest.h b/samples/client/petstore/objc/tests/UserApiTest.h new file mode 100644 index 000000000000..0b13ca037910 --- /dev/null +++ b/samples/client/petstore/objc/tests/UserApiTest.h @@ -0,0 +1,9 @@ +#import +#import "NIKUserApi.h" + +@interface UserApiTest : SenTestCase { +@private + NIKUserApi * api; +} + +@end diff --git a/samples/client/petstore/objc/tests/UserApiTest.m b/samples/client/petstore/objc/tests/UserApiTest.m new file mode 100644 index 000000000000..8631692aabb8 --- /dev/null +++ b/samples/client/petstore/objc/tests/UserApiTest.m @@ -0,0 +1,47 @@ +#import "UserApiTest.h" + +@implementation UserApiTest + +- (void)setUp { + [super setUp]; + api = [[NIKUserApi alloc ]init]; +} + +- (void)tearDown { + [super tearDown]; +} + +- (void)testLoginUser { + bool done = false; + static NSString* authString = nil; + static NSError * gError = nil; + + [api loginUserWithCompletionBlock:@"foo" + password:@"bar" + completionHandler:^(NSString *output, NSError *error) { + if(error) { + gError = error; + } + if(output == nil){ + NSLog(@"failed to login"); + } + else { + authString = [NSString stringWithString:output]; + } + }]; + + NSDate * loopUntil = [NSDate dateWithTimeIntervalSinceNow:10]; + while(!done && [loopUntil timeIntervalSinceNow] > 0){ + if(gError){ + STFail(@"got error %@", gError); + done = true; + } + if(authString){ + done = true; + } + } + STAssertTrue([authString length] > 0, @"string was zero chars"); + NSLog(@"got login %@", authString); +} + +@end