From 518fbb3e1e5d0249155eee94bc795b0da84afaf7 Mon Sep 17 00:00:00 2001 From: Okechi Onyeje Date: Mon, 31 Oct 2016 00:52:43 -0400 Subject: [PATCH] Etsy Ended and Sold notifications implemented --- .../UserInterfaceState.xcuserstate | Bin 25217 -> 26103 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 112 ++++++++++++++++++ Vendoo/EtsyRESTAPIManager.swift | 22 ++++ Vendoo/HomeViewController.swift | 25 +++- Vendoo/ServiceNotificationManager.swift | 38 ++++++ 5 files changed, 192 insertions(+), 5 deletions(-) diff --git a/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate b/Vendoo.xcworkspace/xcuserdata/okechi.xcuserdatad/UserInterfaceState.xcuserstate index dc2f0c7659d6d6b55b6eee3deec3e3e2dc2331f8..8169c3e037faba4c77173dda7d493d976868e296 100644 GIT binary patch delta 12257 zcma)h2V7Iv7k}=3_r1pmGGr!!B!mQ_fXEDc1xO$RLL7A=MN}$70r$wewpw@9=cua+ z;%w`vdvC4Ux>v2O+PbxlYTefVO(@#-*Z=4LCw%hq?mhRObG~QXbMM6mz_X)Zstk#g{jbLPgpZ8`>Jga7z~DhPrw*37JLfEf$?Ahm<48o&p{Jd0+xbhU^!R;R)R0V zCa@W70b9XAa0q-0&VaMv9QXzN3a){N;1T#8JO*!}00Iah1rekn1HE8t=nZ914uhcr zhCn4$!B7|jV__VOhY3&v6HPD&=E6LvgI3r9c7&Z^8SDki;Q&|*>!1yC5W`R5L^uh4 z4(GtRa2}iw7r_R&3@(Q&;3l{kZh>3jHn<(`fIHzX{t=McuEQJfCcFi2!#nUkd;*`t z7nCa{q}-@hlsn}?c~V}K4;4U3s6a|ig;HTuTPlKzq@pPel}IH~Cdy0|Qbm-7DyFPd z2dX30iRw&!Ky{(IQsq={st?td>Q4=$hEpS`k<=*4MvbQ?P!p+1)GTT?^|_5|q!v@l zs4uB))OKnIwUgRK?WXoqhp2CH+nbdO|&?UQlnS zKM_O}Vv!RPAu*DmKoo?eNQUGn7^zSiN=F$e6J?=nq(wO>7v&)x(xX!JAu2jX=ma{6&Y~aCMf4-OjIN-o=sLQA?x6eVck~!NLC?_(8qlt^C+$y5Xc-+shtX;} zf{v!+=_ESMM(5Ibw2s!(MYM(PMt7%s&?R&kJ&+zm52lCEL+N4kaC!tijvh}>peNGP z=vnl9dI9|f-9#^;m(nZgFX^x7ujy6vH}pn&6TOE%K%b{C(AVf&^nLmX{hWS5zoh?U zAj2>$PW`Ah+0V603BrX$mh z>CTify_gDS08`7AW*jq>nZ`_K<}&k`70gQJOXe%)Yi1R*li9`WX7(_9 znSIQD<_L3?Im!IM++=Psx0yT4UFHwwDf5hZ%L-V)vNqO@ZOsO-QdY*Q*fwlDo4{(= zL^g@dV6|)xTfmyx61FE>%6`a}vAx(@wvMf52eO0M!R!!rBs+>7&5mQovs2j_>`ZnJ zJC~iuE@T(8P3#hODZ7l_!R};tvAfwl>|S;syPrM49%K)*-?7KpQ|wvxN7nBudz-z( z-en)NPuM@$H|(EIj1%kR#6LjkK*zVEN4jGGF`zMMjX^91ar_qgCbgTpw{9_WiB{Bb zwcJo{1osIyj+@9$;ihpjxdq%JZaKG_TgPqUwsJexH45`wolRU7SIzb2`tYqpBW(v? zPB?J1bGPAfF$tP*S#)%4?8wssXMu~r74!rB1*#^{1#|`7KzFW!`-tnuRW^YEpcWW` ziR;e|uusEVYoEjY8?cV_ZQ#amV@cnq{8>?iVjI}~pY!Yi zdma47a}#)_SV0{I#~gAT2PYiuleo!zKe0k_9$flQg?<7*JLo>+i2P!C=yh=CKk4p* zdxY*jH=W~&Of&cw;_%QX;Dw#`5AYN`1JAix+-&Z1ZcY<;30@J}H{4uq9-*CYw^^Hm zZ%&#{q;((OJ~l2UhJdY!N*LK?czaE3djkDC+#w5vM0{@{bc3xNa(%%q&gzX&je$A~S^bUW@Uefl4vGCLG!=p9vQFhs)W8zvI0Vcup|C}cSW)i;H+!}5z zndck+MPS=dJv99%tr->)S_`+H+dybH@&!SmRA<<|S#us@Q`Ad{H-pa4MX}?dJ|~2f0H{kcZRY zOgM}CmOI29;lAe|O9zK95KM1?UvP)H*e;!;wGq|*BdSVc|B67^2%GHe7js7&;1cdT zewM6VyOnT_K(z#Z3BQ70!&PuKcZ@sEo#0M#r_zjF`%3C%MHH1|t9x;vn;DEu>D zQc$2;24BI~@D2PEzNG{d;2v_1xZk48>ATlr#5?d%?ZrUU9E6 z5MTiK6^hYuttszC-1AccqrgP@Qhwb`#m0g4r5{$77nj#BCN2Jgq7J5F@^Z?a!YGl0 zobMSDW(%UE|4@Jmrb37Ul!ANHKqM;nwK!kyKF*S%9 zELe+K!xx|G8}tKQFX4qGcpUkaDWO1iifSSrv4mRM z$y6NKtF*q<>|eR=*RY<@7S?Rv< zQUc2=YBg0)t);$kfYSzpwgevx!ZCJKBZKO7l?+p&DA~9%(L3<3yk4QUe!Fp{@ zW?6m3pbGwGTOa;>TWs4yWZX;bv&&dtQC03(S}nIeH(?OfEa3s_V6!mgjnn}_QHh7A zwWe3;P+4g`Nw!H*v9e5~$46a?2Uqm2ADUlmHZ}Y3Q9)IMpcO}Pq0R5d1yw5rd#IDt zDe5$JhB`}~qs~(os2}1vBL>7xH5epekb*%P1{oM+VW7nz*X|eZ@*nlHJ;*UgDDkKw zQEuYrxwR2ezcx1}mUxsqLO-yTLP*_eZcHxm_^7!tBar9X3tfL}Zci=o=<8_j9vSNT zdvja*`?M-{a-%Le9vO_5^D4GUSC?3tAx`mKV2D)LbWJI4ZKKt^OjW>koZkOdVZ!iyw;o*0y3@F50e81%xR90QUw`e4v^ zCF+Peq0WR;3i)(H-BAyFR;j??BMfHQ`A%~DH(_uYgQuL3KOUFn+NH8|XwATSYi)Ts zFN=@nd&jrs3*&v0J&OC*4Az!^IIvHj^4htWm|z(3B3NdQbViJ8el{u5sbuOls!4y zIE6iY-<&jS2K--(wXVK5qlX&4YZCh@h2n$UfM=}l-qI)DzMLl}IF0ZFnGFqlk$Ku6F~ z!eKu89v$OPCbnjYG6c7={M|$abqby4J(J|r89@9x0!L~?chNmQCE1_)jmWaqRgBOB^pGEv904BjP02Id9hnRLVK?zp3}*6OQvy8C zpqJzli=xAqjg(!Iig9bYQjdol~6-39_A$v;@;bI*? z(+RYu#3Pg+kf#uuYI>D7(uwwk#L?hpZ)m1Urc?Opyii1^5_?qVsrX%atb|UdvjnO} zI)l!{UBw3%WJDk z>&yR&ZMvB5L}Ht^(jDlI7<`GrR~US~nC^^HXp$XQIY2l}V!N!A?n%}#x)g)e@5&Rp z7hOq$n=Yq&(|zc^bOrqp-4BB`7_7yBMB+LO)?+{x-;E@=>1w)$?oSV(YiW{sNN{h$ zU>gPpFgS<-iJ5OnbWe?Lk!vJPa?bzmdFYSnPk@mgi@|0Lw%DV5E59;LQTQ&1=}Git zw3AqYB=CJ0Y$qOMx5cDpOH3C`Z=`v81_nDY*!?a^(X;6}Bm>f)W3aPmm&HG|5J)y^dtIr3{GQk4ukV80qfyPBz$U5VMHh*=UD!2rf-HLUkVo6 z%{7ll9%*M24 z{K;04@n(D&U&arED;QkG;1>*jZDIl#5w(GlU~mnCJC3692^ZGcP~N+~V@3Jk5)U6z zJr?(`tZ=+KmS6kY+r{8mq>UtuKd@Bv>FenI%c~g$6J}=@!YCOP6N)9^ItDi|xQW57 zCbD>?Fl_}=yHk@T^fv!nHvWL5jz#YrfQe@`#32Q}I7tJOh{0WsRLvy8Fe!qnMkbXZ zwc8kSslnhS2Cp~;|29P=Vd|N|{~{T}48`CL27mH# zsUbFI6e&Mjpu!jmTA=#G&T|Yi7DIp`de3t_GwELwPG+WHNY2qIPEn}H82<1ddh*Py z{~`a}K~9sZBZJS;xhKwN8p%lkvw-=6S;#D68Zcxrbi&XXLl+EPmoST&CT0ni*Mh8BLZE))dwUzq)Psos@8rHkVin3Y|b)yzh+>tWU~YngADbY+^PuTY!<-M(SqR8bdjT!NjLv7&)&YdmeA%wK;#=X4g5&$v^dS z{<2=mPtq3$wD`aQ<`CICGY2vBZeYH}(1))q6x*2Z7?On=1dF-o2Ie@1zVD7Cm{ZJI zvh)Z>lRhOEO@1)vIVFaE?%_XW z;J~_K81ha_wiWB~u7}t}`M$@S^(8&bk3{bV)(=C~`z{eHAziE(!_WqY3dC0a{QX3K zzDFE69GA0-_kx6AsD3X0b3==TaID#N?Dbei%ltR9{q3`YLC6NSVf0Etf z7%q%&Fv)m}si=#;UEBK7vVPe$RsCzr>*`2--?6lE;5*sNS#oZ_-?T zW0-d3IN%9^@?wdFEJ z`@g?LtN&W_*;(vtQX#;649OY6*v{6zc0^_EJSHf*&W`s=*aZuBF6`~AJ3YSCY3N$iQgwV!tUZV~z% zd%>QF?DYcs1BM^|wFt781XYXKpV*&Sl7P!FBob7-TM5};*z50>Hg`wWz}{eQV%Q7A zaz4CBCBDZ#ct_CO|B!uzVIK_p@>NB0@l*E2zxrR=$CD^3=T{U3ir+esljue#ffHGQ zD>1BUw1<*Cgh>3nEehd(EeZnN_yOKxKHZ|`#mWBsI7@5f^kMoaeUZLI|4d&cH=#G_JM?e# z19AhZAQzo^%rIsWvy55JY#>*ayU8`>e&!%^oLo|#X3jF_nIFh~WD2=oY#_E?%dTTL z5-V%7bPl=D;Pw=PaDJ}x4cP?vC*NS7#=IF|&MM3-cnONvX5i^-+COD~s7mw_%5U8cJ% zb6MlE&SitkCYNtrPPtrix#e=l<(|uZmxr$TuEnlBUCUkjxK_AUyY_djb**Z8IHq32=+bFmDZm-!!T2-_f)M`kpVXa2Ay3y)! zt3O&jYxTl?p!;a|Pu$14k8{86{?z@s`%CxN9yJ~#Y#yULIFHdD_dH&Byz+SC@z#^` zob36T=QK~=^P%S(&$nK{i}D)iHQMVFud!a^ydHYJ@p{`Dw5D2r(t28JzV*!3v%Ous z{k#Lb#omG5G$`@pZOUw6L}zf!*uevAFq`u*Vdi{Askhknoe zk-wY2yT7M@YkwdAAb**Euz!fZ%0J9M+y5i~A^wZ}SNL!A-{=3G|1tj){-^xU`2Xa8 z+5f8lum0ElZ~8y<|1-cfz&pS7Xz`oSS$_`w-?8Ve)nLEJ%HDy|j}77rB<7mpO%#N)&h#FNBR#8bu7#q-3=#OuX7#Jj|M z#QVet#K*)Z#HYk(#OK5p#8<_4#m^-`LP=-|D{+>1NxUV#5`T$EB9SO1F_JV%fy655 zDCsQeBIzb6m-LZTNcu^tBsG!=lC_duHpxxNL&=|k&Vjyx(m;8jB2XC^8WLU%7Mo5#S+0qVU_kXof3rJbc+q}`-FqClbf$E+bdI!9 z+9X{nT`pZI{Ytt)x>I^odPaIqdO>od`Y^d?xr@@P*)u!Iy%6 z4!#onOYpVe8^O1N?*!iqz90NB`1jx^!B2yq2ftL%3J--?p;EM0q$u(f7DabOUqzi_ zlw!PMhGL;&rDB6(x8kVcoZ?r-HN|zsO~n(%GsO$VYsH@-f)KY5_YlvJ)**EvT*zl3 z(?a-=nIW@7=Ga2!g)9j9Dr8m2nvico)`x5i*%GonWM{~QkZU2&l(f=c*+!{RW-7Ck zTBT9hMOmusqwKF7psZ8!%0>w=P)Sr$Rj?{V6|G8C<*GWVx~RIVda7(?s@|#!Ri&y%#i>44jZuB7nxLAj znyTVeGgY%y4XUqH2UM3-k3yNypwNU+L+Iqt8KLt+mxO*3x+Qdb=&sPcp@&1i3q2ls zD)dYk8x|av9HtF3hgrfpgmn(<8rCDMXINEOec0fzVPPY~J_-9YY(m(iuqk1i!mg`5 z)grarrjAs{sWs|kb(%Uyty34MP3l7R2kNfsQgyX@pn8aUxO$X&jC!1UqI$CWGxg`{ zdFtir)#`858`PWCyVQHs`_+fkht((4Kd7&U=Z5RUE#W=G`-E4A4-X#~J~4bs__XjD z;j_c%hA#_W8UA(nn(%eu8^gDRZwtQ?K}WQUuze8GHKJEUWyHXUArUxYT*TyvhKR)x zt0Fcn6+u`}XO#HEOzBd$hVi?|taC*rq=hY^n>o<_Wgcopds=@Kc7bdR(}PKulo zIW>}xeAUjWol84mJNI@Y+Kq2FvEAf$Q`^0Ya*A?^5=Oa4RYwhv8X0Aa8r}YRG#$-G zJ4XwnN7|w%L{EyI5Z&nF;ipsm{~D%V&=yzjA@Kn60<&LQ_R+w z?J>Jz_QvdwIT-V8%=wsCv29}e#ZHc05xYP3r`Q{@w`1?c-j971=MmRB&NnU~P7)`L z3yxF9g~hdvi;T;T%Z<~;6~vk1isGzso#H-->lRlMXDf}XisRy@#O;hb883);i zi`T`M#rKaN6F)9~V*Hf&Y4J1SXUETtUl6}2esTQf_-*k!sNv1x)eYE8JNohDk7s7cYJYqB(2O@GZe%_7YT%~zV$nzfppn(s9yG^aJ^ zG(TuAX)bGi(LB;T(LB?<)VxU)BvOfVBAe))C`(LEG$-~;9G^Hd@yo=`iF*?FB_2pT zlz2GtRN~ph3yBvKe@eWZcq{Q~5=in*QYUGW3X=LH**;3DO6s3fmozA8dD7aXtw}qQ zb|>viI+*lr(%GadNjH*iC*4bWknEByO!i5RO-@YioLrvVH@RPOb@GVhQOOgNrzB5H zo{>B+c|r2ZfO}) zsgF{hq`paG(wx(TY3^xWY2In_w2-vWv^Hr8X-R3RX&Gt8w8FIFw2o(Vx+ZAsgfwm8H}qr(a9IoqjLWO= zn2flL(u|=Q(=z5}EXY`t(U`G1V`s*mjQtshGLB??pK&7NbjB|k*E4Qq+|9V3@hIa- z#t*W^T#cmbpLkMCQfJ z2bsTT{*n1S^JV6nEGEk}t5ud~R_iQTmLf})rOpb^ipdq?)}?0wk>vM*)d&VHEvINSC#`-N7Z zrL>IJS?j9x*7|8hT8UPz)o7EoY1&M!R-32I*BZ6mv?baPwdLBr+J4$?Gf#F+GE-i+EdyewLfdGXn)Z@)4tTc$r0pGIZTdwj&DvtjwDB# zBhQJlj^tE?C!Ar_rVAGIZHGovuJ<(iQ5u=*o2cb#=Ny zx}mxex>366x`nz%-4fk$-Iuzrb$fJ2bjNk4bZ2$vb=P#ab@y}+bWe28bT4(U^^D$K zFVV~OA^K2#xW1iDAFYqo=jzS+Zu$~^slJ!KkG?`*s~@Z%rXQ)d=_l!@>1XI?>*wni z>KpY<`X%~R`fd8%`hEI?`lI?|`jh(8`b+xT`X~Bl`j`4Q`GR~Zzg50xzIVP~z9>I1 zUz(ql-zR@;{@nbn`G@k)FiJ7OXDVUa+fRZ^40rZwrnTTq?L-aIfHg!J~pF1y2o>!O7ra5E?uUtqr~ge}mEx zWr#7v88n7uLz+QvFc?gRLW9N7!O+Q2ZWw8pW|(VOW>{rdV_0X{XxL%cW!PibXEN%?n6a%f(%9Y@Ym7H$8*`01V}a3REHrjE_B4KI zEI0Nweq@vRA(Xp@u4)8uXPH3gU?rXW+4$=2D_$27_`(KN+0%{0R_+cd|t)U?dB+_ciP z$8^ke(sagj-gMD)$#mOv$8^{9o9U&QHM^MI%pT^}W?yrFS!E70w>3waqs%epc(cab z*<5R$WL{?8Yd&tiX#UB3#r&)JhWWPniTRoNrTMk_&q7d06-E^16jl{B6z;VZo-Djr zc)9SG!fS;$3V$zrRrqHSD58q|i$q0%MY1AAk*cUmQCU%CQB6^8(ZHf1MZ=0dEt*g? zxoB$9m7?E@9u_?=dRp|>0xYd89+uV?UyH(`vZyWL7QMw{sj!T*%(N`Gd}&!_S!-Eu z*<{&j*9uI0YvVX?&M_M`S80$FeMC)YhJZqD6t--p{y2ZNPy2rZT zddPa%ddYg*df)oU`o#Le`pWvo`nH3-LwbiVI;`oip~E)EnY{qQ=BJZe^Rwlk27#I#lfRSK4m;fe%NnkRV0;YobU;$VNR)CdY6<7_{fVE&9SPyo9 zonRN(4UU3i;5axBE`XoFHEX0GEljckup(cDvz>I`IMEiQSGSqR0rx4s(|WA z6;i#ZepD4Tgc?c>qlQx>sFBn->I-T-HG!H%&8B#24z-l}imIhn+No{Sc4`N;liEe? zroN{RPzR|))M4s4b%DA_U81f~SE=jN4eAbcmwHG&qMlLDsaMor)IZc)L?MJ)Az$Q& z{80cBAu$R>5)_1zQ3^^$X-I?8Q3leYOr%3uC>wQ0Jx~Gai3(9K)EgC{V$=uOOHh9_ z7*(L*XaxEkjYD6c@n|wyjFzCK=qt1gRiheIi|WufXd~K$Hlsc0J9G%uqaV--)PT;R z^XLM)h%TYa=qmah-9R_dUGxw=LXXjN^a}k&3ur(ybaUE+_N2XNZ#sY$(PBE74xvNo zFuJXsj;51o4Q-{n(cS4DbOBvV_oD~VgXs!-I6Z`GdL7JYXI& zFPT4?e^|&;tSjrm`miEa&W5o{R>P*V8AYs?&17|K7MsoL*&No$=CM|`J=>A(!HlG*fxV!e^%D91CAFiA)@Ev1c9yP|W z>W^-tViQ%-5wh5XnAkC0M#aad<053yW6lU%1#SX&FaQh|gw_E)$N>hB%k|_6xn5lF zI#2;BK^_>w4dyC{!b(o5(C*=O@!c0s>ozJTLG4r+ttJZN5)xzoSK%nYITVft0b{^t zz|IZfhH}HW;dKCmu|%VV8^Mj_KlR1@8h?>u8kqgj(Rnb(DLa}Q!{73kg)IWh9CC}n z60j6}#o0NI!`#?9Pz`E`Tpjm0H;!2O1>ZJcS=iTL^G9`l3$_s1ZQKNIB9WcMzX*s_ z>;d~fs`mgm=p26vHZ3Xvz-g!4bZ!PeRiv>041RUUjRybm{WoyMDL0Fo zO~x*9MzgMV=BBn`T}F{m#ze;@ywAu@aPOl!?t=$J$0KeIH<#%6vQfu!uOW*3?xW&V z@i9aXA0_sqUVzv9K0luxZ@}L~{w+73TR`L&I^~x~9Z_gYzUi0C`Z% z)pB)Y=;gdUu#O6a;l!+#@h}2LI+d*CR=tnK^6(pZ)(PDSR1=~JJY!xZS)*bYY~k1mOfY)e*&sa1xvhr*PkKd%5qqeRXge zoC0USncRMEA9s*D!Xx>xhU+tj&YZ8hpORM z++lvDylvY$xJD4V94?0|;7Yg(uI7$%$GGEMJ@>*3dM19yV^kvqwq;;!>_ z&=T*Rg4r89Tf$v%H{1iigL~ok{Hh?akZa&hb7#1-+&S(%e<~=De-(5+@jARA2wk?! z;bWsWx8Yrf5qG$o)$ks7`$Oj+JDtB(;MtwW&GPu(!G7t_;2S~cO86YUfG^>n@D=c~7;b+I*-l zl4>jPuBM{6zpJTe?jKIkJvS@cQdm~pzN(^hU`fZ0#RH4V%bU8ZD2>2-6_r4#sYEJ? zN~Th%R4OeE0|5qvKp_Sc1_%Qh0|olA* zoE!fi7e`U{k9FiIOpV1L00R*QV&2kPWS>Zpy7<3COrxe#Gcb@~K-`rPTFdYhIRCXv zmi=d}xzvJ>Xn<>}Mbu*M1O`DEC^%(rfh+_HWT&ZR1RK>#FC~ho-BZ9JOL357c!W!@E1!Zdl`=}GtkJL%(6xBeTrp{1jsdHRj31-T+OU4w#A z2nt1ENQqjbHYglLAd=&J46GQ~FldKCdki{Y@CgPTG3bOr=QXIUK#F2eEQ&+%NJXyI zh(x;!M~v%=!BY(W!q9+WJMsXMZWB4>r<;4JT!CGWY>p9gkOAc)BQhZ~%0m{EkH}b` zV$cl(QszA{D8Qg6289^(!k{+>MQczy)LtMZBPEib&ZrCOiimtM27L&TkYOh}|IfkT zD-2FyaNPkpN{T8)Nc(2rAg$SW)z*raA8`b^+mi$1OW zu832!`M8YUg=m5!dE~bI-{eg}yaO9k(KIw2%|J8JEHoQ~K^P3ifKXc{24vtN7z|yB z=AgOgOEeG7M+?wG42EGa9D~sq5PIS;n2EtG{$<8Yer}Sa_j0sG;9Up0f=@v=(48yg z`f>fa0d;6CS_kqFp@|U~jC3&fC{E!l?jwqIwg1nB+Bx(s+9GgAThTVO9qm9n(Jqw8 zw@Pl`YzhXSVK5y7;`u~=XmX-==BG!FUWN5s%SfbcAS`kB*_^ zU2}^_B1`*}7FT?dJFuvjctU(2@fyoNOjb}oqLX}5ij=BBr+9UW!rs{PG&+NhV=xYb zFNk3G4u!pX6&JPdO;S3r(vxb^{}Ty3k(%HP{MdIK?I~z#{ zNbrD9Po2Xr)4BVhKN<;Ps*~x^3rF5xV!-o-dYLzRjsA8Z>J0{StIFcSpJCC$NC=TbWgev?GzXseE2N}>j}m=0r9EPoj!uuHFOEx z7XwmB8{gM5-JdQad8JAHZ>XjRV(<+gk(usQNjvz1CSl!FO%wju%#Y4&-)vMP(zZB} z#!G$5_*`9-W8(3nM>S$+OXFbU9kC-|-pL=($?a3<86OM#OcHiN8@ruh|FJ3Ta|!I| zFEQBjuZauj>JP&H|BgCcL)X%E^m2Lyy^<#J{tkn^xH;H|K|KZsG57(46a3&TwS67E zkwpCeY$)hWjT;IK$o9gqqiC{fJF%*9Q}I8%Lhq*cH1Y}t$1vFco>UrxuwO8{mOelq zqz_?0Xyq^lN16y_fIG2}FpASC(mb}n)5Af}QI%EY6(f3;7giK`vQ5SRAve5xN}q0| zgrgs$1o}c_qKJM%31t0Hz~9d9=|^8^Ow#d2`+j#s`VS0FIttuM-=rOzYWfy^o4!Ne z#h?L$(-@q=;A|azpMF4Xq#t2$4ugx%Mc8Fd+1Xs&$2nJZX;)g(*Ll^|?3}Rj%8QEm z-Fm;cche31k|sNtI{Hug75x|e8iVr~T)^Nb41TU7)SgJc6-XWMo`}IOyf_C-S;6dO z@AJ>NF+u`H#vOx8)edk^xm12SA&kBV%IB7~IC-4hAH7_nMIQZt8kJQ#FC= z!)dAMsr{o^V?J%f+Wn7V?ZfHk1Miq3;$J$tL@4PJCdV=)0%UjFn59wzK1M}C!o@r1 zC#H-USl|i5_*p7{{))x}GUfbZO$=fNGZnloJ(Q|pD*62MwsvL+Gwgldhhy-pDet2k zc^}P?N&PtnfBu_yj`{pQ2^`0esrUs3FFA!(kumDg2l<}NO#46LWU)fTUlH=n;LqiH zB=HQ{G%aW5FmstNnR(273<##l%=kA3WM+K3oLR^$Viq$?n57sBFqC1~7Q<8w)A&GR z7{Aykp$a_3{1T%tkBuS_Ls$N&No+sB9CB3NK@8ohnZp>mbIK3* zkIZrA1et-Edh`>9Lb8A%m&{4WC2Ynitxej`Fh4s2R*z0I=a~ykqwF{gn`7vKp(kl! zE|TAR=2vG|FXyKaBiNEt^2O#f`!(hk*`_kriO5Y1y`AkXYMou`-w8t@r~Jg}XlF}t z)v)r4{*_I`KVqIbjbxrUWqlk*zU#&*yJhz(9MQhGVrXga;`cpXF|Yp(#~W-XM|X-Q zZEsmY;}X2U(`S_PY*IZYLN+Q^MUD#-$f;b@u^fw7=DiY@Bq-p$4%UrzQkpZcY%>f+ z?-v8CC+kgOPT~nBRI@EGIU`h_Y2SEq#I|C|X<{`ZygaU&^~W&q-)>^oaVo=HC()^9 zr5H;7Z3<$8NfWEUP+INu+X0V2zT8JzgLXgK z4e!pM$l(%e`k!lyplsQ@y)|q5pXVK%*Y85kc4B*wf?zwdUD&Sdr^L+e7)E0lgCVgo z&S_)(3UrL^i4ut=y&bzyj3J>Ha*mB*3fG4Os=(8aR7Cr#!ruLL^HsOHszS}vA*(j$7fx=&JZQBj|`*!ZMqQkYKAM1P1GexWfe zi{;oa$UMnnb}aijOX@>|VLFBx7;5X-@x-%<>?8~`9X@4anA23{y7B=73I|md7dfh& zkFZ48$#TNsYw>{M-c`j#j>7Lj?mL!NmXZ^{cI07`qchpr1fuLL40Y8kk6{+4Xzc5Z zOQqIH8co9U*!dsqJ=sOuG7B*I75{ zTy&T{_Mi6Sj{Y`B|05j&MJL(Qgb>(MYy*bvG3-#|*xx&L^CYSAPh>p!BnTAo)h$GP z_fJ~$1yM3bL@n)2#UqM~v=zPkmJThhXkah0mp&nQsw(Dyz(wFM2oi(~RDxtdI(dos zoQAX;?L%G{%4r38Vc3T3OxltSh=DGrN7Ga2Y4i+w7R}Rh>3Q@5dKGyuxQ_ms{)XO6 zZ>4vT_k*YDhx8k!1*2y=GnGu0ox#jxW-2qCnMvN{Eh1CPSLAJ8EqRmo8|y+|!j-Wj z$?G*c!Ob{!Jj;{JtYlY{mul->SQk$hkxQ^k8<(~&i7weL78k2aJC_bF9bF1s3SD}; z6uXqTl)B7uIpFfdRphF44R?)njdqQ7jdwM;+FU!jc6ROR+RfEo>N?PMkZXnOFxL^T zqg=|1 zw@SCsZgw~9_PN^}x20~Y+`e_&>bBi&r`vA#R_;>w2=^HGICqtMvU{q##y!J5$KB%I z+r6KAr91Dw(0!--DZBg6?!UU6;mv8Jq2FcBI*{X7$bNCz`98XEx7ju5WH=zNz`% z=KGo-Xnx2;>tXS*dbIQC;IYMHzsEt3!yZRHQ#=ixMo+V+#dEvoAzG%)*9ota-db;qx7E9ycL(p?-p9P_y-#?bY+-HDy+uKb!WO+-oNw_* zi|Z|Jwz%E0L(9UJz3nZFTb8u^spa*SH(TCrdDo}2Pq9ylPpMCTpL;&9d|vzf?en%( zX{({FhPN8oYILhNzOKIBzAb%Q`TF?=_$quue8YTO`-b~Q`Wk%8eaHAN_x;*;m+x-h z1HPwxfA+oTd)fCl->bfNeDC=_@O|X_#P^w>hhKtUmfrxsA%0{1rur@Lv)B05`K|C< z<+sLfv)>lKZGJoacKPk`JM4GH@3P+=zo&lB{a*UL@_X%%{26~2e>Z=je{=uV{#O4U z{^R{;_%HTf?Z3(YTmP;8+x>U?AMiiqf5iWof4%<+|MUL8`QP(@?*G#NmH%u1zXO;6 zmjJf_VLyiMc$&8qE;e5kzAw@g^0pLtwrIYcu|HZPt;M=S=3e3P1HkFA}SU27nO<1 zMT12nMdL-hXt8LiXql)+R3}<5+928}+AP{4+9vv5bX;^nbVc;L=$hz;$bL)oSoBo% zT=Y`(O7vQc#NOgSaT{@*SS41Alf)_FEU{i}5F5p2u|?cTTr3_W9wQzvo+zFyo+_R$ zo+n-)UL;;3{z_aeUL)QnJ}5pRJ}GVxpAnxE|0=#B{#|@cd_#OIkP2)Qm>AeIurzR3 z;Ml+!f%5|w1}+X<8o10JxH@oc;QGJ~fg1xi2ks6$9(W<}O5pE-*8*<@-U@si_%!f& z;LE^Qfv+V<;w2GFT1#Rj@sb2dq9j?OlVnSBB)JlkBu~;&(o@n;GEBlr#!ALX#!Dtj zW=VL-T**Ai0?8ston*aar{sX-kmQKun515ER&rkQljIl4C5io4$xX=<$y=$5)J-as zHkW!z{iPylpj0ZAOBK=xX_8bg&6S#@7O7R*PFf%>l=hYuOAksLq`ycnNq?1Ik^U~d zE4?p$D19t_Dt#{Vl7+}jvLacTY>=!%Rwc8`rpji>X36HrzLd?EeJk4|J1#pXyCC~n zc2Ra&_M2UHM|My4K=w%XMD|SfLJs837X+~XM@fM{Sjop5p*l)ZqWUphe2AlT6b*`NiYLKzuy1fka8z*H z;F#d#;GAGfaEIXT!99X|26MsFf~N=12%Z(ZG`KprHh4wws^B%jyMqq}9}Yem+z@;| z_(q%6w)=Mf5^a) zK_L|(Lqdj!j0*WIgbNuPGBspg$TuNJLN0|o4s{I;3RQ;=54DGm51kphB(yGcW$2pF z^`YN}ZVTNRx+ipR=##K!VWDAd!;-_&!ZN~iVfrw8ZkQ>ob67!Gudw2CzjB~*uyVL^ zl=3qrR(`IWs+^(xQdz59qg=22M!8wJQ@LBYSGiw#P+6}$tGpDh4bKYC3;#5{S9odo zP<#02;p4+6g-;Ei5k5P7Zg@@j^6*vRYs0?|-x&UF_}1`?5rT*|5gj5rMifMpL=1|k zj2Ip9dBntsMG;FPRz`diu{mN(#I}gSL0KO$~K+>W>x@i5{^#Ir~c zNk!6;E|J3{zlfX=IVo~#Dcnv(Xmrvr^n8UofA7R zc46$2*k!RBVmHNZiQN{vGj>nx-q?My2VzghzK9En>k~IIt}bqG+)r^=agmV>Icd)1S)OG5W>NVK*E%>U#B$>IU^$^#%1W>dWeT>WAtl>gVb|)vwk6B!WaL(KAt;s7^E`mLz_WI4f~w z;*t@mE0k@Fu5qXB)MPm z@Z^!n6OtzrywSew(^2bw}#q z)cVvPQyWsxr~aIJDfQRXd#P{JT+_VMq-nuvVQFpB+NQ;(snXPGxoPdv3et+wO49nJ zm8Vst4M`i8_JuudecGn9y=e#2j-(w=JDGMm?OfW0w5w?k(w?XNnf5yE9}TT>(YR}x zYdkgn8nH&Ik!zwfX_^d;PNUc4YRsB^O*>7Yrbttw>8B~v4AN9;hH8duzR*n9%+$=* z%+Y+Q`ASoxS*}^BS)*B}*`nE}sn=Z5{Gqv_xvjaYu|Lqf)V$HWO^4|y-7CFix^H?w zdSJRVJwClddSQA|dP#b}^s@Bw^pWY?(+{N|O|MTsk&&EX$mp9fBx6{{h>X!0Ut~%Q%`*pYdZxL&lkmOBugq{GM?wIJRV&nbXuY*Q z+F)&%wvAmIsg2ggX%n_J#J9_Ko&!rdMW*Oj)KPGc>bxWtolK|DMd;ef#OxBgG>shz5?q)s8dYbhj z>rZ<&$ac&2%@$`%vxBn3vfE@wX1C2w%FfJgpWQcmZ1$4uW!W{^%d=Ny@5?@(-H?4* zFVGA1&GlaTmU>@(gubmlRQnSt`aHc=-(KHQ-$nnazOTN&exQD^{xdz+kJC@k z&(Y7*FVrv5uhFm9f1}^5->E;MKdwKax1ZGC(%;qJ*FVxf(ZAOJlLK<79AQpEPD)O3 z&cK{GISX?3=KPRzGN&QuY|e$8pL2fCxtVh(=YGz^oHqtwKnB(zGDk~=kbSMG1Q{}`JYrN#(jTVt$I zWlS_C8_mWp#%{&}V=rT|vBWsgILgQwKR1pyPBBh5&NA}GImT+^I^zc8CgT?4cH=JN zVdF9555|+m)5deg3&w{gJ7p4@{7o{G!W3$1ZHhL6zqyQT-G$EIhd z7iP-Lm|e|6vxnKsEHTT?!R9b?8*_v?$((9VH)oo&%{g{+2XiNLS95oBPjfHxSn~{X zjd{6wm3giCYx73)x8`l;o#s8}Q|8m=bLOAS7tNQ=SImEyubXd~@8r>W{&|sksd*jp z`sR(xTafon-j2MTdAsutuH@a$yOVb>@0EqIxLSl34~w_O z$Kq!Ru_!I}a7&aW+7f3`S=5$xmI0RWmTJpB%a4|GmY*yaEx%f>TW(qISngXM=Ck=J z`NjDI^9Scw<`2mqm%k`~SN_rbhWxYn7xI6}znp&~|91Y}{0I4u^PgJXtg+TCYkO-? zYj0~GYpHdBb)c2APP0z8&alq1F11!$>#QrSYpm<+)*aTJ)?L;;*0a{D)@#-q*4x&5 z)(6&?)_-ikhHR|O)z-=;vPo=mTd1wIEy5OM)7p%-PPT5g0$VRziLIZl%vNq2V;gVd zZS!r5Y)fsmwiUM3wzanJZ1uKNwllW#wu`pQw%=@5ZExGj+f8h@u-#YfmOIae1?125 P8ZX$(jo(e5?N + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vendoo/EtsyRESTAPIManager.swift b/Vendoo/EtsyRESTAPIManager.swift index d9e1204..e36346e 100644 --- a/Vendoo/EtsyRESTAPIManager.swift +++ b/Vendoo/EtsyRESTAPIManager.swift @@ -608,6 +608,28 @@ extension EtsyRESTAPIManager { ) } + //gets listing info + func getListingInfo (request: String, onCompletion: ServiceResponse?) { + self.oauthswift.client.get(self.baseURL + request, + success: { + (data, response) -> Void in + let dataString = NSString(data: data, encoding: NSUTF8StringEncoding) + let dict = self.convertStringToDictionary(dataString! as String) + print(dict) + print(response) + var dict2 = (dict!["results"] as! [[String : AnyObject]]) + + let listingState = dict2[0]["state"] as! String + + onCompletion!(["status":listingState], nil) + + + }, failure: { + (error) -> Void in + print(error) + } + )} + //sends the pregenerated url as a request to api service func sendPOSTRequest(request: String, var body: [String: AnyObject]?, onCompletion: ServiceResponse?) { diff --git a/Vendoo/HomeViewController.swift b/Vendoo/HomeViewController.swift index 8a1ee65..4d3c1a3 100644 --- a/Vendoo/HomeViewController.swift +++ b/Vendoo/HomeViewController.swift @@ -257,12 +257,25 @@ extension HomeViewController: ServiceNotificationManagerDelegate { self.notifications.append( [ "network": "etsy", - "message": (ebayInfo as! [String : AnyObject])["notification"] as! String, + "message": (etsyInfo as! [String : AnyObject])["notification"] as! String, "type": "ended", - "key": (ebayInfo as! [String : AnyObject])["listingKey"] as! String, + "key": (etsyInfo as! [String : AnyObject])["listingKey"] as! String, "UUID": NSUUID().UUIDString ] ) + self.endedListings.appendContentsOf( self.userListings.filter({$0.key == ((etsyInfo as! [String : AnyObject])["listingKey"] as! String)})) + self.userListings = self.userListings.filter({$0.key != ((etsyInfo as! [String : AnyObject])["listingKey"] as! String)}) + let itemsView = self.viewControllers![0] as! ItemTableViewController + + self.firebaseManager.ref.child("Users/\(self.firebaseManager.user_email)/user_Listings/\(((etsyInfo as! [String : AnyObject])["listingKey"] as! String))").observeSingleEventOfType( .Value, withBlock: { + (snapshot) -> Void in + + var listingDict = snapshot.value as? [String : AnyObject] + listingDict!["listingStatus"] = "Ended" + self.firebaseManager.ref.child("Users/\(self.firebaseManager.user_email)/user_Listings/\(((etsyInfo as! [String : AnyObject])["listingKey"] as! String))").setValue(listingDict) + + itemsView.itemTable.reloadData() + }) } } @@ -310,13 +323,15 @@ extension HomeViewController: ServiceNotificationManagerDelegate { self.notifications.append( [ "network": "etsy", - "message": (ebayInfo as! [String : AnyObject])["notification"] as! String, - "type": "", - "key": (ebayInfo as! [String : AnyObject])["listingKey"] as! String, + "message": (etsyInfo as! [String : AnyObject])["notification"] as! String, + "type": (etsyInfo as! [String : AnyObject])["type"] as! String, + "key": (etsyInfo as! [String : AnyObject])["listingKey"] as! String, "UUID": NSUUID().UUIDString ] ) } + //@TODO: add firbase logic to add notifications and delete already viewed notifications + } } diff --git a/Vendoo/ServiceNotificationManager.swift b/Vendoo/ServiceNotificationManager.swift index cac2c7e..a59fee3 100644 --- a/Vendoo/ServiceNotificationManager.swift +++ b/Vendoo/ServiceNotificationManager.swift @@ -114,7 +114,45 @@ class ServiceNotificationManager: NSObject { } if(etsyID != nil){ + if (self.etsyManager.isAuthorized) { + self.etsyManager.getListingInfo ("/listings/\(etsyID!)", onCompletion: { + (listingNotificationInfo, error) -> Void in + + let info = (listingNotificationInfo as! [String : AnyObject]) + + //@TODO: Test this code with the draft condition for both expired and sold_out + if ((info["status"] as! String == "expired") || (info["status"] as! String == "removed")) { + + ServiceNotificationManager.delegate?.listingHasEnded( + nil, + ebayInfo: nil, + amazonInfo: nil, + etsyInfo: [ + "type": "Ended", + "notification": "Your listing \"\(listingDict!["listingTitle"] as! String)\" has ended on etsy.", + "listingKey": listing.key] + ) + + + }else if info["status"] as! String == "sold_out" { + + ServiceNotificationManager.delegate?.listingHasNewNotifications( + nil, + ebayInfo: nil, + amazonInfo: nil, + etsyInfo: [ + "type": "Sold", + "notification": "Your listing \"\(listingDict!["listingTitle"] as! String)\" has sold out on etsy.", + "listingKey": listing.key] + ) + + } else if info["status"] as! String == "draft" { + + } + + }) + } } if(amazonID != nil){