From e9c3ecbf9db381440d35470fd19b48c7681da70d Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Sun, 3 Dec 2023 21:05:20 +0530 Subject: [PATCH 01/12] Search and Discovery Service APIs implemented --- .gradle/8.5/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/8.5/checksums/md5-checksums.bin | Bin 0 -> 37297 bytes .gradle/8.5/checksums/sha1-checksums.bin | Bin 0 -> 85127 bytes .../dependencies-accessors.lock | Bin 0 -> 17 bytes .../8.5/dependencies-accessors/gc.properties | 0 .../8.5/executionHistory/executionHistory.bin | Bin 0 -> 277125 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/8.5/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/8.5/fileHashes/fileHashes.bin | Bin 0 -> 20947 bytes .gradle/8.5/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 0 -> 22509 bytes .gradle/8.5/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/buildOutputCleanup/outputFiles.bin | Bin 0 -> 18875 bytes .gradle/file-system.probe | Bin 0 -> 8 bytes .gradle/vcs-1/gc.properties | 0 build.gradle | 2 + .../serve/need/NeedDiscoveryController.class | Bin 0 -> 5499 bytes .../serve/need/NeedDiscoveryRepository.class | Bin 0 -> 1823 bytes .../serve/need/NeedDiscoveryService.class | Bin 0 -> 3101 bytes .../need/NeedMicroServiceApplication.class | Bin 0 -> 781 bytes .../need/NeedTypeDiscoveryController.class | Bin 0 -> 5204 bytes .../need/NeedTypeDiscoveryRepository.class | Bin 0 -> 1451 bytes .../serve/need/NeedTypeDiscoveryService.class | Bin 0 -> 2505 bytes .../serve/need/ServletInitializer.class | Bin 0 -> 945 bytes .../need/models/Need/Need$NeedBuilder.class | Bin 0 -> 3477 bytes .../sunbird/serve/need/models/Need/Need.class | Bin 0 -> 7909 bytes .../Need/NeedType$NeedTypeBuilder.class | Bin 0 -> 3784 bytes .../serve/need/models/Need/NeedType.class | Bin 0 -> 8199 bytes .../serve/need/models/enums/NeedStatus.class | Bin 0 -> 1507 bytes .../need/models/enums/NeedTypeStatus.class | Bin 0 -> 1311 bytes .../serve/need/models/enums/TaskType.class | Bin 0 -> 1266 bytes build/resolvedMainClassName | 1 + build/resources/main/application.properties | 21 +++++ .../NeedDiscoveryController.class.uniqueId0 | Bin 0 -> 5499 bytes .../NeedDiscoveryService.class.uniqueId1 | Bin 0 -> 3030 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 122940 bytes .../controllers/NeedDiscoveryController.java | 86 ++++++++++++++++++ .../NeedTypeDiscoveryController.java | 77 ++++++++++++++++ .../repositories/NeedDiscoveryRepository.java | 30 ++++++ .../NeedTypeDiscoveryRepository.java | 30 ++++++ .../services/NeedDiscoveryService.java | 55 +++++++++++ .../services/NeedTypeDiscoveryService.java | 55 +++++++++++ .../sunbird/serve/need/models/Need/Need.java | 43 +++++++++ .../serve/need/models/Need/NeedType.java | 49 ++++++++++ .../serve/need/models/enums/NeedStatus.java | 11 +++ .../need/models/enums/NeedTypeStatus.java | 7 ++ .../serve/need/models/enums/TaskType.java | 7 ++ src/main/resources/application.properties | 20 ++++ 50 files changed, 496 insertions(+) create mode 100644 .gradle/8.5/checksums/checksums.lock create mode 100644 .gradle/8.5/checksums/md5-checksums.bin create mode 100644 .gradle/8.5/checksums/sha1-checksums.bin create mode 100644 .gradle/8.5/dependencies-accessors/dependencies-accessors.lock create mode 100644 .gradle/8.5/dependencies-accessors/gc.properties create mode 100644 .gradle/8.5/executionHistory/executionHistory.bin create mode 100644 .gradle/8.5/executionHistory/executionHistory.lock create mode 100644 .gradle/8.5/fileChanges/last-build.bin create mode 100644 .gradle/8.5/fileHashes/fileHashes.bin create mode 100644 .gradle/8.5/fileHashes/fileHashes.lock create mode 100644 .gradle/8.5/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/8.5/gc.properties create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/buildOutputCleanup/outputFiles.bin create mode 100644 .gradle/file-system.probe create mode 100644 .gradle/vcs-1/gc.properties create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryController.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryRepository.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryService.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedMicroServiceApplication.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryController.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryRepository.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryService.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/ServletInitializer.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/Need/Need$NeedBuilder.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/Need/Need.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/Need/NeedType$NeedTypeBuilder.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/Need/NeedType.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/enums/NeedStatus.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/enums/NeedTypeStatus.class create mode 100644 build/classes/java/main/com/sunbird/serve/need/models/enums/TaskType.class create mode 100644 build/resolvedMainClassName create mode 100644 build/resources/main/application.properties create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryController.class.uniqueId0 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryService.class.uniqueId1 create mode 100644 build/tmp/compileJava/previous-compilation-data.bin create mode 100644 src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java create mode 100644 src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java create mode 100644 src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedTypeDiscoveryRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java create mode 100644 src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedTypeDiscoveryService.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/Need.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/NeedType.java create mode 100644 src/main/java/com/sunbird/serve/need/models/enums/NeedStatus.java create mode 100644 src/main/java/com/sunbird/serve/need/models/enums/NeedTypeStatus.java create mode 100644 src/main/java/com/sunbird/serve/need/models/enums/TaskType.java diff --git a/.gradle/8.5/checksums/checksums.lock b/.gradle/8.5/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..e6cee2c8d035c8e44aa5a7b88323bac6e291d07b GIT binary patch literal 17 VcmZR+f9v*lk$vZU8Nh&LApl4N1|a|d literal 0 HcmV?d00001 diff --git a/.gradle/8.5/checksums/md5-checksums.bin b/.gradle/8.5/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..c924a84c18ec84fb34c9bbe7cd5a101e9d86ffe3 GIT binary patch literal 37297 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 d_N>yujJv{%+74)u2t`03 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 RCH7)w{?f{XNFZ!k@&8bmIV1o8 literal 0 HcmV?d00001 diff --git a/.gradle/8.5/executionHistory/executionHistory.lock b/.gradle/8.5/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..c252a4609d593b2b0bbfc5462f801f7da790bc90 GIT binary patch literal 17 UcmZSnWczn(z+&}81_)RM06JI&3IG5A literal 0 HcmV?d00001 diff --git a/.gradle/8.5/fileChanges/last-build.bin b/.gradle/8.5/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/8.5/fileHashes/fileHashes.bin b/.gradle/8.5/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..b5a0d36f9b7c19c86788f0dab693369bb18ee4be GIT binary patch literal 20947 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryRepository.class b/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..e11a5066e6c4dc69aa377a20e12a6d50266ef529 GIT binary patch literal 1823 zcmc&#-EPw`6h6*avlhlS#^0c@+ajd-YF8OZMHA9cfvKh3yR{cw5<9Y;qF(FpC)UwQuwB?r^2O(T`Et(ZA3wi+2Y_d=?Sn^Pr>|pbQ`M7(Q!C6+ zP$dMXZ*ba|wy%f6jM^g6Ryu7)K3pTPK43#eBc?+7wl@%c=R<|St~MdHiIFNiGAtIK zwE0LmbBqoWM$IGyeU-2>AOZhKD&CAD0_{d?W(=-lCKWwopV=;y{? z0tl7Hd6;}lFqbNe30ScOo3B^SW-&cCCwgYZ{BD$p15SW9T4nimTvo3CL$zAgMZa^N zUP8{rv?*(?i%p;DQb~)8`b4%IYAQah-|)O|xeP_WTuI`^WIdUxt=t+fsI7}^asIS< z#?;A(cDo1rV<)L~bZYwIrHs(l>NBi-C;Mpxw%Vz3G8XTpm1wL@r8M@t)C&FQ>A7}d z(M5%J*iW?d@c>T%0!uiS@pM_nQ^JQ8@SvLA5vbvE9ft=u5L$(s1yuE54Ih{AI>H-p vtAsbtz_$^;GY#MU1HK3Mi`}bBkilmoY$3^<$pd(Zs0Vd;glh$(fkaL| literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryService.class b/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryService.class new file mode 100644 index 0000000000000000000000000000000000000000..5fd6368424e1b035fd70bb4a91faffef5327fb71 GIT binary patch literal 3101 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 O-qVL);8*w!2LB5ayZki( literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryRepository.class b/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..dce4c722817c2fbc8fc9706bcc58e477e499f74c GIT binary patch literal 1451 zcmd5+!A{#i5SJR7=*-1l{gtHQK3pyDMd-s`zAY>4fd|JyAH~c3*z2y z>7|E$KtHPLI5xOQK#2sX2YY3Y{pRV-y!Y$(kDmar1+N3BF?icI33r+9DJ!`{J4CJ# zCEuglmr;s4%Jt0i4 zMb62ibqr?G5`{sdqarPQW|6_kowwg?U88VfB*tzm^o82tJ7T+Big7-I_oI#{dPMrP z`42GESyDjevnzfJZ>7>?g4SKh==*=cXmX90a*Zp2yR`Ycl7Vcts=e;`e2?!%zO3x` z?E(5tF3#CsA{6GnL4=!(Jz49bYvxtVyWQQLu@`1LCbNC~pkgxToAZHP5lZX%+!(C1 zGwoG^UzJl75!+fD+EisUxo7Q4BRI+fG@k6jt3(PZ%NR`2HBDJLMR^y%4Ah`OPty!$ y>3B?64W3YG4(7{JqXtjubyZ%V@*+H|%Fi#Am#9U7^8#Lu@s{Bgopoxw0`Lb*PvBty literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryService.class b/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryService.class new file mode 100644 index 0000000000000000000000000000000000000000..e8eab2fd7598dd8da2755fe4b56310939ac8db3b GIT binary patch literal 2505 zcmcgtTW=CU6#fPZ2&`?bmwLZjfvV&EMy+WzCK_x_k-iV?6h~o~?4^cBU;G395lu8k zAN&FSDC3!B*-~K*B*urm%;lW#oNvB!=I5{PKL9+yQVt0uGng`vLYiUrwb&NCC9Ec2 zufLWJk0HIJEafdTBn!pOEcPIqLC!!P1_N){ZSMM3T{$LqrL!%$C8f#N==HMOk&l(z zu(zett^4?AWgIY^Td`vofy39jkI4)0oL%*1$f@F_S>{Ts z#jsJR*iMtX9YmH-!}~%Ud2QR2EtgBn zZ@baa^vud*WiV;7#|@moNrnSD*qumgq!69BIhc6W(?tLKI2i8464DPTlIMV$ikl2m zkBBjbnToRHn%}NV=cT5AVXk5~L~BzxN{_?IDesjc{;$Q+KZF(*Lz&9$x%6Jy<_n>9 z=1GU#9NF+KPqpQyaus2$Se8u(OhTZwyCYAlE`{atEz!_5#6@JlSA5TYs~l+((sWaL zr0;$#B*adrVusR4w<8tLkgckwMT&EXj(7jOR+i#O3^lCdk0e}Pro?6_v3^#)x>^Y3 z6%=Ww1zWEXg4xIq6YMgw4ho-~16q%Va^z&)skAymHf8JWdz*qgvd z+S0?)2Eg$FjC_QVM-e4j4>5|gaWOEwM3a|sCC2~$VgF}h{BvC0@y{dw*J$!Oj)wl9 z(N_~<1o2<`hWX@B0t*4a>E6C50RuO1lYEhFkV+y*C7YmW&_q9-TeO8Pxj49E!*Ew) Z;BMp2D7f3Z;O-Lj_h=@8`_Y+|f#2wnyVn2! literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/ServletInitializer.class b/build/classes/java/main/com/sunbird/serve/need/ServletInitializer.class new file mode 100644 index 0000000000000000000000000000000000000000..c94d7369edc6bd7e20bbe10acfbdfe0daba10c10 GIT binary patch literal 945 zcmbtSTWb?R6#h=K>Dq1VCHCUI_?B4cfNzpoXbM7MTZKqLe45>zrlXskWp=j}f0e$p zAm|V9M@i3Y0u{9&W**M)oy#|8zH@&3{Q4ch3v32xpy|VFqlG!bfw3b|G8>8gR2GGgfbc9fV`j`EZIk*1B{HQFam40O$JRJ*9jm=OPjxIyZL$Du-1f29 z#uAnZ&u?rxs&twtJ8kqAhQTC2@C#GfSQUg<-FM+{{q=j{e^d8;bO^m0KKD1hynT}> z7Ae%3I;zHzvTtORvZoW8Sfp6N^N#M}5&>TNe>Ji!X@zB>(&+kUop7zw_K z@7B{x(3d*A%GQOQU1QsxBw!sIj6B@MJtlF*1155$i(B3|_-~t?`QZf?KC`ERYnGs9 aS)XK1S-1xG@qn2ha(0UtfWf1>^zjue literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/models/Need/Need$NeedBuilder.class b/build/classes/java/main/com/sunbird/serve/need/models/Need/Need$NeedBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..0c9243b956a8b65f588cdd2438ac7e01432ad82c GIT binary patch literal 3477 zcmd^B-A)@v6#m8`*uWA9P$+4BNCL%%z@{YWpF`R}N^t5BT7J^1Ri(u{f(`bryE}`- zgH-Bcv{I@_sniGPi}V$8RrQ=1XJhJ>v*MyRy_h+3&Ytv#`i2-WMgkkt2d_07Ot>qFqA*WUML&nZ@yf$aE-t8_)bGZPFtA4`!qXJ zj*26Jo7L_Kk$&7TY1z^<^p6xRlrSgIR|}=1qcFFX-FeGNPmWxB>6Zl_cI3HqN~Gb(QXK^DrV~;%DjCwEDlPE#tKziq`^C4c ztK&ePHqxWks!tUAX~E9!@hvMbU(Ad^yHZerxmg9qXyO|ZXx+DTBX0$9Sd(iWAB;ZU z-9`4IsT(p<>p?`9*6>OYs7QrQ(`-#N)Qd;`_!8AT9&-h52u#1h_WYyZP}(MhDatjc zrh@QT;OF+8Y&jaxb;oz>GMcUi!C~AicdoU~a$+LWNs9Y-ZT^Px%IyhgL99CU`j)3; zxqwZ9pY;E8*W$FI=PrvIQ$AS?Yq8eGORqn+=!n(VEW~3&K0G?XIeHcyZkBXU5yS8( zVF^|e8dw%30juKsGF+`YQ6#Ax2HIAb$F{&sNAlBhn#Zodl%_yx9EQ{BP9#Lc`AK6qs;V{*O|OrwmaV~%CUuBBs6Wya*Qo?sef2A`#!rR$k7xo#5786BX6 z&(knxGh=cMCYU9SxsZ-IpBaDQefL%~G3xft%@tZ0>>E$vv=&2d!A&Qx$WpC7Pc(&P&_^x^&SfTa=Uy(LK-wX5_{~CSR!VaEd@*iEh1aSZW literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/models/Need/Need.class b/build/classes/java/main/com/sunbird/serve/need/models/Need/Need.class new file mode 100644 index 0000000000000000000000000000000000000000..a0a2814be61dd825d6ee7442ca75a37ae28bcb9d GIT binary patch literal 7909 zcmcgxTX-8s6+UB2T3uGQeD}6V>Jo+6a$J=Z2wgX%jpHP4VmCLZO-af(v||H+!`(cTBs6wp|o7e_wmdV@BmLd@(Ld<}ZUl6f-DpQi4oDo7c!KsH2bL$6M3h) zP$?|Cg>s2G222{1dgeG#t1OqR4(o?avREH=N^ZeDJ(FkU0N@tCmi$(!#g_GJ{57=M(;7`T9a(1P05*(Pl0dG87CY2p-HR(3bVZJ%9+vt5Jy`MgSd0os^7pIV; zGVx}5kN=$bBwBt_ zP&&}G$0<1#PPn7FV$A_8T6MX7;`Ajv@H|ckc!aph2^tCHpGIL&4*)WJiXS3q!$qN* zGIIFHp_#cof+qHtD<`sxh2u`8gtyA(nw`zc5aiduSfG$BE#nE}tKd}x`q9R5wGs&0 zcFBz3tX;8$aPL+4cJD8goVnT(Ui3%~v%=NAypSs%%~cBA*2<8(Sim%0D*YM{<3X#c za@MyZ?8lCx4$M04VmW^xS3$nJm~+%CIQZ*TOU2ar!LD7v`O1`1_=*!s5)fWVLIpuf z6(T$qa!dI^(SeGKjskk6=9!OmO)s%%JXiOU`(>Mqv>o%B_p4ULG)pWp~l3 z;2nAR)4WPYrACU~Qd#m<_>?lXs3gd@A`9wKs1{wS!KEvF1IA3e%>IsrQl75?2Ub<1w|;fV7dzyMBPz?2<;`s@<(zeHsO6 zEY^ZF#HUFj1{O}v=9YErhYuW@nVrTg&0v|WIMrGa`+-h51&OqOtj%=Gn3~eq7`s@y zIZQ^{8Zk>WF`DIpUT@p`c#@?DpxEXF1XHQlwJ~aACJ&zA-`R08EFP9w|v3s8FjF7 z(+gIXRj{(u60Fh-S;==5tSmKxl^cy<-7dyZ4`xbOwWo@?YSqCUU`85;8iRf#Xw!-T z4;n{(rn4o#cH{UolULrYWw70wab6v4eL;W#h&bj#4Krx@Ku z6=;iQ@4Ox(jU*;e@RPccTzl_e}&f0M1Suz;f;e%RKgN8c|0G*-_ z;V$@efZulKWV`d_fzCK71UUD!JFg3L##ti3xxd|ceV{W=8v)Kk?amtlopB@yaK5bF z`HDbioLmB&*S9;51Ulnn6W~13?tEpSGmbz3&KujE(}B)7^aMC>Zg<`s=!^qUfb)2} zb0*OF!*m*P$Ps4a&fy%%jMvF{29iHMd!+ZELg@J9Fjt9sH_%~}2^sMpp^pN#f-<>Q zN=|M;no>1B7EIZ*R!XiD4NBGccra!ES}D2YG$>W$o?yzMwNi5RYEY`iCxR(2TPr0O z!Um;kd@`7F{aPuxrZy;5<5R(uBWtDP^4y?QjWhJ=pdi|~R!UXrbr5Zm{GXxE22pNa zE2UZ?H07A2{9G{Q_*yB|0;4G>Bqcr@skiLB1$PUpKz%&(6oo_Q#$Tc6;}q^ZH~un3 zXSZa|(^awwVe8x${Mez1KTyI7y-Gc2$(*o4=jq)ZV$u!+GHFMwFk>RGQtw$xT45{V z1MRR4fOgnX%V1DcgA6O`1MRe90PVEnR*XS$4T@QDA86W605olzR)RsM20`+H_S#8+ z_S#)ml0jV>l(f2hpnY~XK>O^J)y<%k26bC0A85|*0cg(dwR#xTt3f?huMc$4?gQwc z-EZ|Vs9%HntbQM8-W~vG-X63D7&NFs1JT9B=nHq+W3&c1>T0)F%#Ld-e@T{h~~} z>6?%SM2)VeCm;=qhq0ae7NjBZI9*OpLK>!TV@%Fa+K9eJT?R#8r$K|Z;V&v)r(q?= z-U`uMTkb`|h4}NYE(_OUCU^x5bEfeGUTgvMHfX$6yB}R^)UNww3gg2gR9FB*kAR{J zDLj#yye_m|ChEG>9EL{SMYo+95VrA#I6r@+#8~J1kAeTj>Y-~HIO=WIz@)QL*K(JoA>~Oc8RWVX?g|Qv?KnjN_7x;|DWt{i2o-m*sR^-7qK^= zz8XT4BrZu^}bi&_<=io6?w+crO{35^n($az&a*KuF0)@ezgTnV2b=jA?iy z%R5irDu(IjAn2f9$j>A^#?PW%#}$Gsu=3->1nw7b{fd5#Rxi-_E=@1vC0?Q5qSRUc E1GBeBsQ>@~ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/sunbird/serve/need/models/Need/NeedType$NeedTypeBuilder.class b/build/classes/java/main/com/sunbird/serve/need/models/Need/NeedType$NeedTypeBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..c814ecb39a549942d21ff360c437700a975d9102 GIT binary patch literal 3784 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 w`vg*~Ov$mL#>yQfR*!14Af!wQlh z=ASWf71tP&tB&VHYYY>^RD;ZC#d->wK?9gcA)SILA8(nsjX61sxQvjYTquq>4bnYL zRyXNz8OExPCth^g4H4|{hD(tr|0t+9+Rz!Ss^8>pod=F29WbjNZ|LD-IMV}D+g}PRSRN$58YGv#QLc4eIl_%YD6uoE q#*Q94H?`O?j*&k^MpoYEwBmdf8JcsBDxRYT6N57E;{o9kc=#J0Jr;KW literal 0 HcmV?d00001 diff --git a/build/resolvedMainClassName b/build/resolvedMainClassName new file mode 100644 index 0000000..1bcf26d --- /dev/null +++ b/build/resolvedMainClassName @@ -0,0 +1 @@ +com.sunbird.serve.need.NeedMicroServiceApplication \ No newline at end of file diff --git a/build/resources/main/application.properties b/build/resources/main/application.properties new file mode 100644 index 0000000..3a63db5 --- /dev/null +++ b/build/resources/main/application.properties @@ -0,0 +1,21 @@ +server.port=9090 + +# Evean db end point +spring.datasource.url=jdbc:postgresql://postgres-db.cmwxiaefrrfi.ap-south-1.rds.amazonaws.com:5432/postgres +# Ekal db end point +#spring.datasource.url=jdbc:postgresql://postgres-db.civ7kwpwucar.ap-south-1.rds.amazonaws.com:5432/postgres +spring.datasource.username=postgres +spring.datasource.password=23798ak3fr3409k58t4 + +spring.jpa.show-sql=true +spring.jpa.database=POSTGRESQL +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true + +server.error.include-exception=true +server.error.include-stacktrace=always +logging.level.com.sunbird.serve.need = TRACE +server.servlet.context-path=/api/v1/ +logging.pattern.console=%d [%level] %c{1.} [%t] %m%n +logging.file = appLog.log +logging.pattern.file=%d [%level] %c{1.} [%t] %m%n +logging.level.reactor.netty.http.client.HttpClient: DEBUG diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryController.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryController.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..eb40e6c479f28208375b01a8a33b7dcc372f6536 GIT binary patch literal 5499 zcmcIo*;gCa9sVvz49gf3ffpsj0UJAjg9k5l6NH@tHZiS?ZLn!elGY<>fH9*PWoCqn z-E>Kpq-(nGd()=NOM2Q;HxE61%0o~7q@139cV;9FMoL6aY@cE7{O)gG@6~_)`{us@ zoWq|x(SlY52^C4S3H033H+0R??N#kc?v|1F1==P}+w{*1v<{Cfb)X#`3OZGEK@~WW zcZ!-iSp_DxH>abxa+KHhv{wa&hO;%BLSSYj1XW4Mu@Czc z>{oFB2L+DrLK}guRl}DCPjAi@1dc`WYRu!(u9SS!v2`nxqWd3K@d)|_l6t9RZ3;X# z97kO#+j)ts%|;7qc?gdw7*H{Y!vd+A-4(VBQc*7noQ^B8lTlnug_PWfa8$uD6^~tJYtHoInI5|8wSKn<7=z?^e zP?5nTD>lkLZ+dgl*Zs05@X~Ojaw<9n!}2u4E*HI^NJElL-JsnsUC&ttJ;O$!u{(qNFstGjToTxOpN0a3dP+6p$la>&VHF>dD)d%WsQE@Vxyvf%aV6|o z^r75j!Ym9w0DoM=f`UaA*KtGOKwzx3a^{wnbyimmcUI5)j?3=R!Tb$D0!QO+nz3}x ztK>+GG9zcuM^$_bA7`~%0XH_o(1JLgz<9$#kcQtshB6~d0*M)x2t$}PZDYP%%o*-= z8G}GTUbmKX*OcE8FyXJ6^xt@+dfO(ZHU~2-+slT(<`k~#vbXx|gZGt4byC&Kl6oaV zU)VHCmOyG}zSA(d%K;o4ebv@4us`d>tz#`k7Cv1Ef3lIeQG1bA2i+xeo|bkjnyWS& zlS?PA#RI%s6L%*zy-?=P5mXrf$05HgZ~yy+zZjxY{#@f0@&n zLy(pvH*~8^E7IXnXH0rDJn!5MUH_uM;q79p@!cl>Y}4|u>i$|K=cvK+4HLRiXKyrG z8l;dHjgW>J-AE1-ti;JCAm+IA%sX7ROGsEfqjfE=J7EO&NN>jG*|DaG>7Hv%A?_}Z z-guBMpM2jHmK8U!BR|8iYInmo)3o^vjLs@SB9pgTFjn-k!LHJ+JvcDbF9`p1>}$)60;j(xNooGW;bkbug$V$Y(l=hxW`g2t%eYXZaddUL&; zR`3m8M4G`Cc|AupZr+$R<(%!8Xw}hNo0%u%ZAakAx)oEeb@Q6y*T|WBJ=2ckd%mle!rANX zZNpDG@l*Uv!OvCv0>5PYuH6+)d&5~bw5(pt6?9VQE0rTl7bkY@>+SeVi-^(kyp zg^EETNwKGuY(NGeX~nR+bqxD-V3^h#8PNz>b_d@?$xgJT+aeDpg1{eRo=Kl6m_iTlzk|4dqs-AWylFm#IsVV`f^{YE>i+Q)fIKF`h7X@w)FdQ;BD#mWxUMvk?FaNSGbaPE(Q@uQc7FISw>)# zd!ej5RatTs%95)PU#`AF{2nCU!JvY#ruyDNr-H8sQF|y+jo8aXdWBDzlHaToxmSb8 zT}#yB^Byq^_(7nfg#M7^Z4{;Vn1ONa4 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryService.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryService.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..643ec919a4e9b5f81739705ea5da871a6fe3868d GIT binary patch literal 3030 zcmcIm-EJF26#m9`?ATtnA%&(XfwmNaV>j7AX(>2K>oimfa({@M+>gBzcZ$7h?N2IS zaKj7m3_Ji5NFWq0cmN&>ab~<(J9t;JrRKukoipd0@0>H|d^`XA``6z9w((5?DWr4A z7??wrVc|7D;bxcH9rJnXwP^bc*)3^He}^GmUOUQT9{C&!28u8ks%@uddV$@Nu4Q_{ zJrSlYgk?UXzdh--ofF{>nk1KP!LX$EBJqLfJD&6%cfhdOn8wk_qE^HuT+U&^z&luE z*qF_nA$KfotKRK09F!Z5+cCYqEA7s)%X{LD<9=^i+~=m{^tiOm7rY~Qt1D`2Q>p6U z-Zk(Zt}@Ikpxwc~#ZWFc{$E}4s6~M*%B|Dtd;yi6?n(e#Y8lg-OK{sWk9k`Sxyd5~vmW@)8|ey*kcu7Q(;%ui z$kBX1oHd3@tk2lFWXLyV$ENvksSZE9^@-j}s$Mv8DtJ9`wVf~{B^gfrYS>+R#19Ym z_u^-sc-AHxH9HGqoS+RDzMIO)Y+)`?;dRwV)ROf=j!ER>B#L49C9#>4Y^Fco>3Dax z^b4xoXLPkV#?0ZoGyD|C3vc;bFpKyw?z&vBt$IAzTiY@z7{Zd*K&ikp^Ir$wLs zkY_ej#PnT^Z3K^4M>sxxPs}q~BBr0G>k2?zr|uv0mZSGMtRjt1Y4wD5)qbJ!Cs?KW z2XepBDupurUm_jgDl%9?9@ns@S6UktRB1(a+AG5ydY>a|qQ^S@vIMe0PX?2Khfohg zsAA=J>n?t=Q0Rvy7M!v{ar;^gC~}aF62Q9!62vay`yWru66AiLKiTQh`j^|2ttBMP%Nt`y@-GyD4?i_3O2+J zir7W0fGDDXC`c7)7C_z^@Za~|e*4J~=H7dHzY#O!m=UgES`&zc*ocF;3||M0JC6~l z^HkfrXdU?sf1OIZStVfjsZ}aRlCfLJ@P!8v!*{EPO3Vmy(K%=~tF&7wMgY9$;-I27 zj4PJ$t9s-cXKiE*P8C%2Q1n#vLcLKR#OlikaMw7h+;sgI{wlSnyN>M7@Kx$Iim1k0 zY`33lPgKnDU_H?kacu@z4@85k2ctfukQ7q8X1|&;?Yk;>{0r~Z9rk9chRBB+F~tuPFrQSuOrtZil2F3(z{92dd*{E1H@;0)?CNqLn9vYpCUISE# zx;&$&^2yto6)y~r_U~`W`&&LmG1a=4P&AFtukG2^vPa*_2ImwD=8vL^P9Lo=TKZ|!yVGmzKa5`ceztVz97eE4t=DSY+yKj- zGi~<28!%vf58r-cd}JBSxl(Knm6cg&d^W0iL|{S8Hg%xQ`!Vy3=c5H^AtTULxlyUr zD;F_BJycqqi%zdnJE%wr!(Xj;(Qm~V_<&IiLp!O=2pJ<2WQxp?Im1_@b+%xH>pZkB zYG)^{(p|Mhqusce;k!j;Z^`hpcTqc9F+!ATwFW2w#3Zdj81x&KFaniY7p1+M3bvg+ zmm!nc*c#aauQqwAbb2|%PYGLf|7ifmAcoACIh!#AV_>rx3dvGrhnAt`$ZQ3}-(ICu z>sB%Xosj37_FW{Znf?WAQ9HRfdummrp5fm`Q%@kVMn4JGk7H~$+#>OkZ$;bCrtOSC`);`>^^*+X zucH~m;NMY<9WvFwKw@VgESrV~h`Up|%ht#n1D)3C=X4|VH_!t>95t7*85CQElpey4PW_cPzDHt+O#lRT4IZbyZ&%l$0 zMjxXElyMeQoWrE&F?0b#Y4GAjj1j!S#a^XVEA^@nj7$f}w5l!{zXT+4aR*{6-90c` zX&9F=#T9JndF(3e=>YCO?iJaX-5tzy{#}4UrB-R-EXR95J*Atcs(bZ) z%y|9-03J+p_n*5zW_UCHpa1^*HXO zUiG}jCzv!BGkS`lXBc`;Q|JX80Yahd@&zw}IPTpFMZUrqd%>Y-UEE!ObQ*0QK&nxL zdjSEW1{XE_ox60|!t@K1!?uTnJkH0A3NXcMOkRkgHyC=0p&|^uqxUZcQi8G2Zha4s z={C8403`KVm8t|7uk!NHs&qQq+>`>qo7~HQc$$v@geMS$HtCrso5Sa+umh2kJO8ql z|9Vr7$v@J#~7GyQGR{r&jNxhApdM4?Rs(=dBd;%m`fR8To6= ziD0A9Br^eVm9#okk|q8w}2Vl7WS9$EHmncHOT zFyJR9{e>B~VW=HL9rU5UX@O8X1GJs=@g6RuH_iz1a!`5Di05I{_7&`ly`Ii560f|q zZ_!kf3%ha4J-D$CZtRPj_~FPOM*%qO6NrQR-VA_tVq_4`@N@IjZIA@R1N~VD&Is)C z55TfxC(aesxBkjBoHV%8?T%wWC~m$NSA^k`eK-ooQ3MXeh=k3$1mPP-?uWJZIv}Eh zJ_@#@O=mRx88lj}r^1^w!&0VZ%(H&`B52FP=%53*O$=@li<=z84G!Tpakxo5juLQm z7)Q>>K?cYpuoOgFtxtr#XmKEq0=i(pH_#g&!4q++^VznShqFY<3we8YA2J`wIfhG) z9VAW{nK;Gza`R4d&8TuC&Z3a2=93C_LCcE_*&%joyI zX=;qq(%vV|;EJ=j)j8bwDJF3cQKAyIr+0JjPm4DskB{H7wD~+PyMUXd;pifc7NoJUAMpJ) zuBgPa;T(W zl^0ExN5Dc?rNc%YDA;4zs{0WFD@RIlwsTAI$bZy9@oAc*))V?1-24e{lZ(rr;^-NU zp5vgsFK~wMhD~lDSfyAZ{t`BD_i*b{3V;_KBquIQXy0&l_rBW$`~3Lp6|Ts`jq>rO z1vq+5li(#r7QzM~E^lanoIuhYMb!G@!to6k7;&}d?w{1{y4U^|Us{CA=D&l@|8Fc) z4D0kRZdB|?+ZiS;*WC6x7|n_7PZYh!Wgl>p0{jwQ0$XY|PA+aLDxh(>f3!*B7QNTf zrQiCmo>Ph|%5ck%xNSL&1NjL!q0)J}=|97!pbHg$Nb01~f?cIt*XAkDc!e!*DjRoQ zy!A$OB`*7d+f?D!)i|obQ7yek0|q3hqxr9Q*{n*$>tQE1rJCBNTD1i;>-}L;W#sY& z$tG@Jad`u7{tZWsIBLR?Su>Cy0tG!V!-{Ny_3pGAZG}%&ZYtW3Q0;RTuGaW{9)jAv zTh2SbFaM6CAGFf^1fg+(F!&b;jR$Z|>8zUMqIS|yH5;lfVs5{^*D^Nf__y=@+Hk{m z+^7RL`HjmuapcWJyP05m_b?fOAbyUX4k{leBgn~9-6cSzFB5b}Pm6{hyz%E#eC=m3`TlngX6$ggY~(pSfGG=P+5|D>!A$cICJJSO>D&uTz;rv(k++Hr zV>0%r_c0khp7x1&IGp#tzfdzw|2;m+G5zYEygAQv-p&?BFy*hYNG4;ir@K4EmD{?F zeCGh;i_@})Hs-&e#u2c^R6P;tC^GtMsiOkaAEeDNO zb&&=Jg4%Q-hl86^r-P`(5hB@NICZ_?FRSXE3$%qpZeN-_RdV|h)95nO^a|7bDid8} zqU$s++DM$d0q{D4Npf*=QE4*(lI}=Cqs^pQ3K|EA6qt=4?MA<5dho@IQ+o!4l#ktc zlPSH$lx8vIx0xuL3C{Ws6EaO;WGQwRxTsg%gRKB{h?_w}@_i3aEA`IEJ23i5#Dc1z z;QLJUfQcS5(IX~$%tSd%Wd4K}E0EI-s$8Ha5;QbEP9FYN4Cs5`jPQ{XF0*m&7M zw0@Ybd|q4pjv7$Ql+`h<>zM{$nX(3^^*5$XBNH{zylrOE;V=*g_y$g`1S8BnklC8`i01IS-I*O=k&DM(&;{u}NOf}5vvY$-!i$?aGzfl4nl+7j!VKeltxfu}gRjle)F)aWCV{9s|pFA2~AWT8nun z6L}M8H-YvL$m}4~hhT)z8+LQ#Ck|8?bboDR*4XQ#A@wIv0D%Gt zU_cN7#^R50*9OA|4s_PrZID9XZ~y%kN`M4+C$w6sa^%l;Bk@H$mwtawoHcr&@m|6> zjIi2ASUtrY!U<3`C|yLrW`9CR2qLKVnU0O*9{&$Dm3HbZKfAAy1lmuaC;|u(4O`Q2 z(|PUzSOr?D)#y9`3c#THnVs9f-0;Qq62nPhc_zDS!j59#*OF8SN!NV8|Ng86Zfv7J~$wCBS8YJ@H73{U>mV zDim1UGJEK zpO`lYSq5Q|NtoOu&@GyyK!7aR+{F#l;x@ntb~zNIjNC3qy3{r9(|bHTP;uSWHJd

0f@}N%&WcG3_o+ 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

4jA*^!=gQtZ28DagLkiH-+UJ~Z7 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 raiseNeed(@RequestBody RaiseNeedRequest request, @RequestHeader Map headers) { + Need response = raiseNeedService.raiseNeed(request, headers); + return ResponseEntity.status(HttpStatus.CREATED).body(response); + } + + //Update Need + @Operation(summary = "Update a Need with appropritate values", description = "Update an exsisting need") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Updated Need", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @PutMapping("/serve-need/need/update/{needId}") + public ResponseEntity updateNeed( + @PathVariable UUID needId, + @RequestBody NeedRequest request, + @RequestHeader Map headers) { + + Need updatedNeed = raiseNeedService.updateNeed(needId, request, headers); + return ResponseEntity.ok(updatedNeed); + } + +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRepository.java b/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRepository.java new file mode 100644 index 0000000..1529fce --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRepository.java @@ -0,0 +1,9 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.Need; +import org.springframework.data.jpa.repository.JpaRepository; +import java.util.UUID; + +public interface NeedRepository extends JpaRepository { + +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRequirementRepository.java b/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRequirementRepository.java new file mode 100644 index 0000000..90a2179 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRequirementRepository.java @@ -0,0 +1,11 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedRequirement; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface NeedRequirementRepository extends JpaRepository { +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/repositories/OccurrenceRepository.java b/src/main/java/com/sunbird/serve/need/NeedService/repositories/OccurrenceRepository.java new file mode 100644 index 0000000..c034eae --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/repositories/OccurrenceRepository.java @@ -0,0 +1,8 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.Occurrence; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.UUID; + +public interface OccurrenceRepository extends JpaRepository { } diff --git a/src/main/java/com/sunbird/serve/need/NeedService/repositories/TimeSlotRepository.java b/src/main/java/com/sunbird/serve/need/NeedService/repositories/TimeSlotRepository.java new file mode 100644 index 0000000..5ce46ee --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/repositories/TimeSlotRepository.java @@ -0,0 +1,11 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.TimeSlot; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.UUID; + +public interface TimeSlotRepository extends JpaRepository { + List findByOccurrenceId(String occurrenceId); +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java new file mode 100644 index 0000000..00759a3 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java @@ -0,0 +1,73 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.request.NeedRequest; +import com.sunbird.serve.need.models.request.NeedRequirementRequest; +import com.sunbird.serve.need.models.request.OccurrenceRequest; +import com.sunbird.serve.need.models.request.TimeSlotRequest; +import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.Need.NeedRequirement; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.TimeSlot; +import com.sunbird.serve.need.models.response.NeedResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.UUID; +import java.util.List; +import java.util.stream.Collectors; + +public class NeedMapper { + + public static Need mapToEntity(NeedRequest needRequest) { + // Need request is mapped to the need entity + Need need = new Need(); + need.setNeedTypeId(needRequest.getNeedTypeId()); + need.setName(needRequest.getName()); + need.setNeedPurpose(needRequest.getNeedPurpose()); + need.setDescription(needRequest.getDescription()); + need.setStatus(needRequest.getStatus()); + need.setUserId(needRequest.getUserId()); + need.setEntityId(needRequest.getEntityId()); + need.setRequirementId(null); + + return need; + } + + public static NeedRequirement mapToNeedRequirement(NeedRequirementRequest needRequirementRequest) { + // Need Requirement Request is mapped to Need Requirement Entity + NeedRequirement needRequirement = new NeedRequirement(); + needRequirement.setSkillDetails(needRequirementRequest.getSkillDetails()); + needRequirement.setOccurrenceId(null); + needRequirement.setVolunteersRequired(needRequirementRequest.getVolunteersRequired()); + needRequirement.setPriority(needRequirementRequest.getPriority()); + + return needRequirement; + } + + public static Occurrence mapToOccurrence(OccurrenceRequest occurrenceRequest) { + // Occurence request is mapped to the occurrence entity + Occurrence occurrence = new Occurrence(); + occurrence.setStartDate(occurrenceRequest.getStartDate()); + occurrence.setEndDate(occurrenceRequest.getEndDate()); + occurrence.setDays(occurrenceRequest.getDays()); + occurrence.setFrequency(occurrenceRequest.getFrequency()); + + return occurrence; + } + + public static List mapToTimeSlots(UUID occurrenceId, List timeSlotRequests) { + // Time Slot which is a List is mapped to Time Slot entity + return timeSlotRequests.stream() + .map(req -> { + TimeSlot timeSlot = new TimeSlot(); + timeSlot.setOccurrenceId(occurrenceId.toString()); + timeSlot.setStartTime(req.getStartTime()); + timeSlot.setEndTime(req.getEndTime()); + timeSlot.setDay(req.getDay()); + + return timeSlot; + }) + .collect(Collectors.toList()); + } + +} + diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java b/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java new file mode 100644 index 0000000..7fcd43c --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java @@ -0,0 +1,90 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.request.RaiseNeedRequest; +import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.request.NeedRequest; +import com.sunbird.serve.need.models.request.NeedRequirementRequest; +import com.sunbird.serve.need.models.request.OccurrenceRequest; +import com.sunbird.serve.need.models.request.TimeSlotRequest; +import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.Need.NeedRequirement; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.TimeSlot; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.UUID; +import java.util.Map; +import java.util.List; +import java.util.NoSuchElementException; + + +@Service +public class RaiseNeedService { + + private final NeedRepository needRepository; + private final OccurrenceRepository occurrenceRepository; + private final TimeSlotRepository timeSlotRepository; + private final NeedRequirementRepository needRequirementRepository; + + @Autowired + public RaiseNeedService( + NeedRepository needRepository, + OccurrenceRepository occurrenceRepository, + TimeSlotRepository timeSlotRepository, + NeedRequirementRepository needRequirementRepository) { + this.needRepository = needRepository; + this.occurrenceRepository = occurrenceRepository; + this.timeSlotRepository = timeSlotRepository; + this.needRequirementRepository = needRequirementRepository; + } + + public Need raiseNeed(RaiseNeedRequest raiseNeedRequest, Map headers) { + // Convert RaiseNeedRequest to Need entity + Need need = NeedMapper.mapToEntity(raiseNeedRequest.getNeedRequest()); + + // Save the Need entity + Need savedNeed = needRepository.save(need); + + // Convert NeedRequirementRequest to NeedRequirement entity + NeedRequirement needRequirement = NeedMapper.mapToNeedRequirement(raiseNeedRequest.getNeedRequirementRequest()); + needRequirement.setOccurrenceId(savedNeed.getId().toString()); // Set the occurrence ID + + // Save the NeedRequirement entity + NeedRequirement savedNeedRequirement = needRequirementRepository.save(needRequirement); + + // Convert OccurrenceRequest to Occurrence entity + Occurrence occurrence = NeedMapper.mapToOccurrence(raiseNeedRequest.getNeedRequirementRequest().getOccurrence()); + occurrence.setId(UUID.fromString(savedNeedRequirement.getOccurrenceId())); // Set the occurrence ID + + // Save the Occurrence entity + Occurrence savedOccurrence = occurrenceRepository.save(occurrence); + + // Convert TimeSlotRequest to List entities + List timeSlots = NeedMapper.mapToTimeSlots(savedOccurrence.getId(), raiseNeedRequest.getNeedRequirementRequest().getOccurrence().getTimeSlots()); + + // Save the list of TimeSlot entities + timeSlotRepository.saveAll(timeSlots); + + // Return the saved Need entity + return savedNeed; + } + + public Need updateNeed(UUID needId, NeedRequest request, Map headers) { + // Check if the need with the given ID exists + Need existingNeed = needRepository.findById(needId) + .orElseThrow(() -> new NoSuchElementException("Need not found with ID: " + needId)); + + // Update the existing need with new values + existingNeed.setNeedPurpose(request.getNeedPurpose()); + existingNeed.setNeedTypeId(request.getNeedTypeId()); + existingNeed.setEntityId(request.getEntityId()); + existingNeed.setDescription(request.getDescription()); + existingNeed.setUserId(request.getUserId()); + existingNeed.setStatus(request.getStatus()); + existingNeed.setName(request.getName()); + + // Save the updated need + return needRepository.save(existingNeed); + } + +} diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java index cbf6961..c96feaf 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java @@ -15,7 +15,12 @@ import org.springframework.web.bind.annotation.RequestParam; import io.swagger.v3.oas.annotations.Parameter; - +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.MediaType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +40,12 @@ public NeedDiscoveryController(NeedDiscoveryService needDiscoveryService) { } //Fetch all needs based on needId + @Operation(summary = "Fetch a Need by providing NeedId", description = "Fetch a Need by providing NeedId") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) @GetMapping("/serve-need/need/{needId}") public ResponseEntity getNeedById(@PathVariable String needId) { Optional need = needDiscoveryService.getNeedById(UUID.fromString(needId)); @@ -43,6 +54,12 @@ public ResponseEntity getNeedById(@PathVariable String needId) { } //Fetch all needs based on its status + @Operation(summary = "Fetch Needs based on Status", description = "Fetch need details based on its status") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Needs", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) @GetMapping("/serve-need/need/status/{status}") public ResponseEntity> getNeedsByStatus( @PathVariable NeedStatus status, @@ -53,7 +70,13 @@ public ResponseEntity> getNeedsByStatus( return ResponseEntity.ok(needsByStatus); } - //Fetch all need + //Fetch all need by providing User Id of nCoord or Need Type Id + @Operation(summary = "Fetch all Needs by providing UserId of nCoordinator or Need Type or all the needs. ", description = "Fetch a Need by providing NeedId") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) @GetMapping("/serve-need/need/read") public ResponseEntity> getAllNeeds( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java index dbb15e4..81b49ff 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java @@ -16,6 +16,12 @@ import org.springframework.web.bind.annotation.RequestParam; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.MediaType; import org.slf4j.Logger; @@ -35,7 +41,13 @@ public NeedTypeDiscoveryController(NeedTypeDiscoveryService needTypeDiscoverySer this.needTypeDiscoveryService = needTypeDiscoveryService; } - //Fetch all needs based on needId + //Fetch all need types based on needTypeId + @Operation(summary = "Fetch a NeedType by providing NeedTypeId", description = "Fetch a NeedType by providing NeedTypeId") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need Type", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) @GetMapping("/serve-need/needType/{needTypeId}") public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) { Optional needType = needTypeDiscoveryService.getNeedTypeById(UUID.fromString(needTypeId)); @@ -43,6 +55,13 @@ public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) .orElse(ResponseEntity.notFound().build()); } + //Fetch need types based on its status + @Operation(summary = "Fetch Need Types based on its status", description = "Fetch Need Types based on its status") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need Types", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) @GetMapping("/serve-need/needType/status/{status}") public ResponseEntity> getNeedTypeByStatus( @PathVariable NeedTypeStatus status, @@ -53,6 +72,13 @@ public ResponseEntity> getNeedTypeByStatus( return ResponseEntity.ok(needTypeByStatus); } + //Fetch all need types based on nCoordinator user Id or all the need types + @Operation(summary = "Fetch Need Types based on nCoordinator user Id or all the need types", description = "Fetch Need Types based on nCoordinator user Id or all the need types") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need Types", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) @GetMapping("/serve-need/needType/read") public ResponseEntity> getAllNeedType( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, diff --git a/src/main/java/com/sunbird/serve/need/models/Need/NeedRequirement.java b/src/main/java/com/sunbird/serve/need/models/Need/NeedRequirement.java new file mode 100644 index 0000000..8f7749d --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/NeedRequirement.java @@ -0,0 +1,38 @@ +package com.sunbird.serve.need.models.Need; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class NeedRequirement { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private String skillDetails; + private String occurrenceId; + private String volunteersRequired; + private String priority; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} diff --git a/src/main/java/com/sunbird/serve/need/models/Need/Occurrence.java b/src/main/java/com/sunbird/serve/need/models/Need/Occurrence.java new file mode 100644 index 0000000..725925b --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/Occurrence.java @@ -0,0 +1,38 @@ +package com.sunbird.serve.need.models.Need; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class Occurrence { + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private Instant startDate; + private Instant endDate; + + private String days; + private String frequency; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} diff --git a/src/main/java/com/sunbird/serve/need/models/Need/TimeSlot.java b/src/main/java/com/sunbird/serve/need/models/Need/TimeSlot.java new file mode 100644 index 0000000..121ace5 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/TimeSlot.java @@ -0,0 +1,38 @@ +package com.sunbird.serve.need.models.Need; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class TimeSlot { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private String occurrenceId; + private Instant startTime; + private Instant endTime; + private String day; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} diff --git a/src/main/java/com/sunbird/serve/need/models/request/NeedRequest.java b/src/main/java/com/sunbird/serve/need/models/request/NeedRequest.java new file mode 100644 index 0000000..4dcd273 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/NeedRequest.java @@ -0,0 +1,24 @@ +package com.sunbird.serve.need.models.request; + +import com.sunbird.serve.need.models.enums.NeedStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedRequest { + + private String needTypeId; + private String name; + private String needPurpose; + private String description; + private NeedStatus status; + private String userId; + private String entityId; + private String requirementId; +} \ No newline at end of file diff --git a/src/main/java/com/sunbird/serve/need/models/request/NeedRequirementRequest.java b/src/main/java/com/sunbird/serve/need/models/request/NeedRequirementRequest.java new file mode 100644 index 0000000..d824e58 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/NeedRequirementRequest.java @@ -0,0 +1,20 @@ +package com.sunbird.serve.need.models.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.Instant; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedRequirementRequest { + + private String skillDetails; + private String volunteersRequired; + private OccurrenceRequest occurrence; + private String priority; +} diff --git a/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java b/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java new file mode 100644 index 0000000..d65f255 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java @@ -0,0 +1,23 @@ +package com.sunbird.serve.need.models.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.Instant; +import java.util.List; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OccurrenceRequest { + + private Instant startDate; + private Instant endDate; + + private String days; + private String frequency; + private List timeSlots; +} diff --git a/src/main/java/com/sunbird/serve/need/models/request/RaiseNeedRequest.java b/src/main/java/com/sunbird/serve/need/models/request/RaiseNeedRequest.java new file mode 100644 index 0000000..3ecda36 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/RaiseNeedRequest.java @@ -0,0 +1,15 @@ +package com.sunbird.serve.need.models.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RaiseNeedRequest { + private NeedRequest needRequest; + private NeedRequirementRequest needRequirementRequest; +} diff --git a/src/main/java/com/sunbird/serve/need/models/request/TimeSlotRequest.java b/src/main/java/com/sunbird/serve/need/models/request/TimeSlotRequest.java new file mode 100644 index 0000000..7b6cc12 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/TimeSlotRequest.java @@ -0,0 +1,19 @@ +package com.sunbird.serve.need.models.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.Instant; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TimeSlotRequest { + + private Instant startTime; + private Instant endTime; + private String day; +} diff --git a/src/main/java/com/sunbird/serve/need/models/response/IdResult.java b/src/main/java/com/sunbird/serve/need/models/response/IdResult.java new file mode 100644 index 0000000..4424d6b --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/response/IdResult.java @@ -0,0 +1,14 @@ +package com.sunbird.serve.need.models.response; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class IdResult { + private String osid; +} diff --git a/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java b/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java new file mode 100644 index 0000000..c099979 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java @@ -0,0 +1,23 @@ +package com.sunbird.serve.need.models.response; + +import com.sunbird.serve.need.models.Need.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Optional; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class NeedEntityAndRequirement { + private Need need; + private Optional needRequirement; + private Optional occurrence; + private List timeSlots; + private Optional needType; +} + diff --git a/src/main/java/com/sunbird/serve/need/models/response/NeedResult.java b/src/main/java/com/sunbird/serve/need/models/response/NeedResult.java new file mode 100644 index 0000000..bb7acf8 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/response/NeedResult.java @@ -0,0 +1,17 @@ +package com.sunbird.serve.need.models.response; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedResult { + + @JsonProperty("Need") + private IdResult Need; +} \ No newline at end of file From c40cfc61177be197d0de07ce1f351814b3d60225 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Wed, 13 Dec 2023 12:22:51 +0530 Subject: [PATCH 03/12] Need Plan and Deliverables API implemented --- .../NeedDeliverableController.java | 89 ++++++++++++++++++ .../controllers/NeedPlanController.java | 73 +++++++++++++++ .../NeedDeliverableRepository.java | 13 +++ .../repositories/NeedPlanRepository.java | 11 +++ .../services/DeliverableMapper.java | 40 ++++++++ .../services/NeedDeliverableService.java | 55 +++++++++++ .../services/NeedPlanService.java | 50 ++++++++++ .../controllers/NeedTypeController.java | 63 +++++++++++++ .../repositories/NeedTypeRepository.java | 16 ++++ .../need/NeedService/services/NeedMapper.java | 16 ++++ .../NeedService/services/NeedTypeService.java | 91 +++++++++++++++++++ .../need/models/Need/NeedDeliverable.java | 41 +++++++++ .../serve/need/models/Need/NeedPlan.java | 41 +++++++++ .../models/enums/NeedDeliverableStatus.java | 9 ++ .../models/request/CreateNeedTypeRequest.java | 16 ++++ .../request/NeedDeliverableRequest.java | 20 ++++ .../need/models/request/NeedPlanRequest.java | 20 ++++ .../need/models/request/NeedTypeRequest.java | 22 +++++ 18 files changed, 686 insertions(+) create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedDeliverableRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedPlanRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/services/DeliverableMapper.java create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedDeliverableService.java create mode 100644 src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedTypeRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/services/NeedTypeService.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/NeedDeliverable.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/NeedPlan.java create mode 100644 src/main/java/com/sunbird/serve/need/models/enums/NeedDeliverableStatus.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/CreateNeedTypeRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/NeedDeliverableRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/NeedPlanRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/NeedTypeRequest.java diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java new file mode 100644 index 0000000..5a7ca84 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java @@ -0,0 +1,89 @@ +// NeedDeliverableController.java +package com.sunbird.serve.need; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; +import com.sunbird.serve.need.models.Need.NeedDeliverable; +import com.sunbird.serve.need.models.enums.NeedDeliverableStatus; +import com.sunbird.serve.need.models.request.NeedDeliverableRequest; +import org.springframework.http.HttpStatus; +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; +import io.swagger.v3.oas.annotations.Parameter; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Optional; +import java.util.UUID; +import java.util.Map; + +@RestController +public class NeedDeliverableController { + + private static final Logger logger = LoggerFactory.getLogger(NeedDeliverableController.class); + + private final NeedDeliverableService needDeliverableService; + + public NeedDeliverableController(NeedDeliverableService needDeliverableService) { + this.needDeliverableService = needDeliverableService; + } + + //Fetch all needplan based on needId + @Operation(summary = "Fetch Need Deliverable by providing NeedPlanId", description = "Fetch Need Deliverable by providing Need Plan Id") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need Deliverable", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @GetMapping("/serve-need/need-deliverable/{needPlanId}") + public ResponseEntity> getByNeedId(@PathVariable String needPlanId) { + List needDeliverable = needDeliverableService.getByNeedPlanId(needPlanId); + return ResponseEntity.ok(needDeliverable); + } + + //Create Need Deliverable with Need Deliverable Request and Request Header + @Operation(summary = "Create Need Deliverable", description = "Initiate the process of creating a Need Deliverable") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Created Need Deliverable", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @PostMapping("/serve-need/need-deliverable/create") + public ResponseEntity createNeedDeliverable(@RequestBody NeedDeliverableRequest request, @RequestHeader Map headers) { + NeedDeliverable response = needDeliverableService.createNeedDeliverable(request, headers); + return ResponseEntity.status(HttpStatus.CREATED).body(response); + } + + //Update Need Deliverable + @Operation(summary = "Update a Need Deliverable with appropritate values", description = "Update an exsisting need deliverable") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Updated Need Deliverable", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @PutMapping("/serve-need/need-deliverable/update/{needDeliverableId}") + public ResponseEntity updateNeedDeliverable( + @PathVariable UUID needDeliverableId, + @RequestBody NeedDeliverableRequest request, + @RequestHeader Map headers) { + + NeedDeliverable updatedNeedDeliverable = needDeliverableService.updateNeedDeliverable(needDeliverableId, request, headers); + return ResponseEntity.ok(updatedNeedDeliverable); + } + +} diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java new file mode 100644 index 0000000..30a1e61 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java @@ -0,0 +1,73 @@ +// NeedDiscoveryController.java +package com.sunbird.serve.need; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; +import com.sunbird.serve.need.models.Need.NeedPlan; +import com.sunbird.serve.need.models.enums.NeedStatus; +import com.sunbird.serve.need.models.request.NeedPlanRequest; +import org.springframework.http.HttpStatus; +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; +import io.swagger.v3.oas.annotations.Parameter; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Optional; +import java.util.UUID; +import java.util.Map; + +@RestController +public class NeedPlanController { + + private static final Logger logger = LoggerFactory.getLogger(NeedPlanController.class); + + private final NeedPlanService needPlanService; + + public NeedPlanController(NeedPlanService needPlanService) { + this.needPlanService = needPlanService; + } + + //Fetch all needplan based on needId + @Operation(summary = "Fetch Need Plan by providing NeedId", description = "Fetch Need Plan by providing NeedId") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need Plan", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @GetMapping("/serve-need/need-plan/{needId}") + public ResponseEntity> getByNeedId(@PathVariable String needId) { + List needPlan = needPlanService.getByNeedId(needId); + return ResponseEntity.ok(needPlan); + } + + //Raise Need with Need Request and Request Header + @Operation(summary = "Create Need Plan by filling in request body", description = "Initiate the process of creating a Need Plan") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Created Need Plan", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @PostMapping("/serve-need/need-plan/create") + public ResponseEntity createNeedPlan(@RequestBody NeedPlanRequest request, @RequestHeader Map headers) { + NeedPlan response = needPlanService.createNeedPlan(request, headers); + return ResponseEntity.status(HttpStatus.CREATED).body(response); + } + + +} diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedDeliverableRepository.java b/src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedDeliverableRepository.java new file mode 100644 index 0000000..5cca267 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedDeliverableRepository.java @@ -0,0 +1,13 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedDeliverable; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.UUID; + +public interface NeedDeliverableRepository extends JpaRepository { + + List findByNeedPlanId(String needPlanId); + +} diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedPlanRepository.java b/src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedPlanRepository.java new file mode 100644 index 0000000..837fc9a --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/repositories/NeedPlanRepository.java @@ -0,0 +1,11 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedPlan; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.UUID; + +public interface NeedPlanRepository extends JpaRepository { + List findByNeedId(String needId); +} diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/services/DeliverableMapper.java b/src/main/java/com/sunbird/serve/need/DeliverableService/services/DeliverableMapper.java new file mode 100644 index 0000000..320faae --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/services/DeliverableMapper.java @@ -0,0 +1,40 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.request.NeedPlanRequest; +import com.sunbird.serve.need.models.Need.NeedPlan; +import com.sunbird.serve.need.models.request.NeedDeliverableRequest; +import com.sunbird.serve.need.models.Need.NeedDeliverable; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.UUID; +import java.util.List; +import java.util.stream.Collectors; + +public class DeliverableMapper { + + + public static NeedPlan mapToEntity(NeedPlanRequest needPlanRequest) { + // Need request is mapped to the need entity + NeedPlan needPlan = new NeedPlan(); + needPlan.setAssignedUserId(needPlanRequest.getAssignedUserId()); + needPlan.setNeedId(needPlanRequest.getNeedId()); + needPlan.setName(needPlanRequest.getName()); + needPlan.setStatus(needPlanRequest.getStatus()); + needPlan.setOccurrenceId(needPlanRequest.getOccurrenceId()); + + return needPlan; + } + + public static NeedDeliverable mapToDeliverable(NeedDeliverableRequest needDeliverableRequest) { + // Need request is mapped to the need entity + NeedDeliverable needDeliverable = new NeedDeliverable(); + needDeliverable.setNeedPlanId(needDeliverableRequest.getNeedPlanId()); + needDeliverable.setComments(needDeliverableRequest.getComments()); + needDeliverable.setStatus(needDeliverableRequest.getStatus()); + needDeliverable.setDeliverableDate(needDeliverableRequest.getDeliverableDate()); + + return needDeliverable; + } + +} + diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedDeliverableService.java b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedDeliverableService.java new file mode 100644 index 0000000..3ecf0e0 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedDeliverableService.java @@ -0,0 +1,55 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedDeliverable; +import com.sunbird.serve.need.models.request.NeedDeliverableRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.UUID; +import java.util.Map; +import java.util.List; +import java.util.NoSuchElementException; + + +@Service +public class NeedDeliverableService { + + private final NeedDeliverableRepository needDeliverableRepository; + + @Autowired + public NeedDeliverableService( + NeedDeliverableRepository needDeliverableRepository) { + this.needDeliverableRepository = needDeliverableRepository; + } + + //Fetch need deliverable based on needPlanId + public List getByNeedPlanId(String needPlanId) { + return needDeliverableRepository.findByNeedPlanId(needPlanId); + } + + public NeedDeliverable createNeedDeliverable(NeedDeliverableRequest needDeliverableRequest, Map headers) { + // Convert Need Deliverable Request to Need Deliverable entity + NeedDeliverable needDeliverable = DeliverableMapper.mapToDeliverable(needDeliverableRequest); + + // Save the Need Deliverable + NeedDeliverable savedNeedDeliverable = needDeliverableRepository.save(needDeliverable); + + // Return the saved Need Deliverable + return savedNeedDeliverable; + } + + public NeedDeliverable updateNeedDeliverable(UUID needDeliverableId, NeedDeliverableRequest request, Map headers) { + // Check if the need with the given ID exists + NeedDeliverable existingNeedDeliverable = needDeliverableRepository.findById(needDeliverableId) + .orElseThrow(() -> new NoSuchElementException("Need Delibverable not found with ID: " + needDeliverableId)); + + // Update the existing need with new values + existingNeedDeliverable.setNeedPlanId(request.getNeedPlanId()); + existingNeedDeliverable.setComments(request.getComments()); + existingNeedDeliverable.setStatus(request.getStatus()); + existingNeedDeliverable.setDeliverableDate(request.getDeliverableDate()); + + // Save the updated need + return needDeliverableRepository.save(existingNeedDeliverable); + } + +} diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java new file mode 100644 index 0000000..3c0edf6 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java @@ -0,0 +1,50 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedPlan; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.request.NeedPlanRequest; +import com.sunbird.serve.need.models.Need.TimeSlot; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.UUID; +import java.util.Map; +import java.util.List; +import java.util.NoSuchElementException; + + +@Service +public class NeedPlanService { + + private final NeedPlanRepository needPlanRepository; + private final OccurrenceRepository occurrenceRepository; + private final TimeSlotRepository timeSlotRepository; + + @Autowired + public NeedPlanService( + NeedPlanRepository needPlanRepository, + OccurrenceRepository occurrenceRepository, + TimeSlotRepository timeSlotRepository) { + this.needPlanRepository = needPlanRepository; + this.occurrenceRepository = occurrenceRepository; + this.timeSlotRepository = timeSlotRepository; + } + + //Fetch needs based on needTypeId + public List getByNeedId(String needId) { + return needPlanRepository.findByNeedId(needId); + } + + + public NeedPlan createNeedPlan(NeedPlanRequest needPlanRequest, Map headers) { + // Convert RaiseNeedRequest to Need entity + NeedPlan needPlan = DeliverableMapper.mapToEntity(needPlanRequest); + + // Save the Need entity + NeedPlan savedNeedPlan = needPlanRepository.save(needPlan); + + // Return the saved Need entity + return savedNeedPlan; + } + + +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java new file mode 100644 index 0000000..4370d2a --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java @@ -0,0 +1,63 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedType; +import com.sunbird.serve.need.models.request.NeedTypeRequest; +import com.sunbird.serve.need.models.request.CreateNeedTypeRequest; +import com.sunbird.serve.need.models.response.NeedResult; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.MediaType; + +import java.util.UUID; +import java.util.Map; + + +@RestController +public class NeedTypeController { + + private final NeedTypeService needTypeService; + + @Autowired + public NeedTypeController(NeedTypeService needTypeService) { + this.needTypeService = needTypeService; + } + + //Create Need Type with Need Type Request and Request Header + @Operation(summary = "Create a Need Type by filling in request body", description = "Create a Need Type") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Created Need Type", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @PostMapping("/serve-need/need-type/create") + public ResponseEntity createNeedType(@RequestBody CreateNeedTypeRequest request, @RequestHeader Map headers) { + NeedType response = needTypeService.createNeedType(request, headers); + return ResponseEntity.status(HttpStatus.CREATED).body(response); + } + + //Update Need + @Operation(summary = "Update a Need Type with appropritate values", description = "Update an exsisting need type") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Updated Need Type", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @PutMapping("/serve-need/need-type/update/{needTypeId}") + public ResponseEntity updateNeedType( + @PathVariable UUID needTypeId, + @RequestBody NeedTypeRequest request, + @RequestHeader Map headers) { + + NeedType updatedNeedType = needTypeService.updateNeedType(needTypeId, request, headers); + return ResponseEntity.ok(updatedNeedType); + } + +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedTypeRepository.java b/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedTypeRepository.java new file mode 100644 index 0000000..eaf0bdf --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedTypeRepository.java @@ -0,0 +1,16 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedType; +import com.sunbird.serve.need.models.enums.NeedTypeStatus; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface NeedTypeRepository extends JpaRepository { + + +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java index 00759a3..404e5eb 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java @@ -1,10 +1,12 @@ package com.sunbird.serve.need; import com.sunbird.serve.need.models.request.NeedRequest; +import com.sunbird.serve.need.models.request.NeedTypeRequest; import com.sunbird.serve.need.models.request.NeedRequirementRequest; import com.sunbird.serve.need.models.request.OccurrenceRequest; import com.sunbird.serve.need.models.request.TimeSlotRequest; import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.Need.NeedType; import com.sunbird.serve.need.models.Need.NeedRequirement; import com.sunbird.serve.need.models.Need.Occurrence; import com.sunbird.serve.need.models.Need.TimeSlot; @@ -69,5 +71,19 @@ public static List mapToTimeSlots(UUID occurrenceId, List headers) { + // Convert RaiseNeedRequest to Need entity + NeedType needType = NeedMapper.mapToNeedType(createNeedTypeRequest.getNeedTypeRequest()); + + // Save the Need entity + NeedType savedNeedType = needTypeRepository.save(needType); + + // Convert NeedRequirementRequest to NeedRequirement entity + NeedRequirement needRequirement = NeedMapper.mapToNeedRequirement(createNeedTypeRequest.getNeedRequirementRequest()); + needRequirement.setOccurrenceId(savedNeedType.getId().toString()); // Set the occurrence ID + + // Save the NeedRequirement entity + NeedRequirement savedNeedRequirement = needRequirementRepository.save(needRequirement); + + // Convert OccurrenceRequest to Occurrence entity + Occurrence occurrence = NeedMapper.mapToOccurrence(createNeedTypeRequest.getNeedRequirementRequest().getOccurrence()); + occurrence.setId(UUID.fromString(savedNeedRequirement.getOccurrenceId())); // Set the occurrence ID + + // Save the Occurrence entity + Occurrence savedOccurrence = occurrenceRepository.save(occurrence); + + // Convert TimeSlotRequest to List entities + List timeSlots = NeedMapper.mapToTimeSlots(savedOccurrence.getId(), createNeedTypeRequest.getNeedRequirementRequest().getOccurrence().getTimeSlots()); + + // Save the list of TimeSlot entities + timeSlotRepository.saveAll(timeSlots); + + // Return the saved Need entity + return savedNeedType; + } + + public NeedType updateNeedType(UUID needTypeId, NeedTypeRequest request, Map headers) { + // Check if the need with the given ID exists + NeedType existingNeedType = needTypeRepository.findById(needTypeId) + .orElseThrow(() -> new NoSuchElementException("Need Type not found with ID: " + needTypeId)); + + + // Update the existing need with new values + existingNeedType.setUserId(request.getUserId()); + existingNeedType.setTaxonomyId(request.getTaxonomyId()); + existingNeedType.setDescription(request.getDescription()); + existingNeedType.setStatus(request.getStatus()); + existingNeedType.setName(request.getName()); + existingNeedType.setOnboardingId(request.getOnboardingId()); + existingNeedType.setTaskType(request.getTaskType()); + + // Save the updated need + return needTypeRepository.save(existingNeedType); + } + +} diff --git a/src/main/java/com/sunbird/serve/need/models/Need/NeedDeliverable.java b/src/main/java/com/sunbird/serve/need/models/Need/NeedDeliverable.java new file mode 100644 index 0000000..617cff5 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/NeedDeliverable.java @@ -0,0 +1,41 @@ +package com.sunbird.serve.need.models.Need; + +import com.sunbird.serve.need.models.enums.NeedDeliverableStatus; +import com.sunbird.serve.need.models.enums.NeedStatus; +import jakarta.persistence.*; +import jakarta.persistence.Entity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.time.LocalDate; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class NeedDeliverable { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + @Enumerated(EnumType.STRING) + private NeedDeliverableStatus status; + + private String needPlanId; + private String comments; + private LocalDate deliverableDate; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} diff --git a/src/main/java/com/sunbird/serve/need/models/Need/NeedPlan.java b/src/main/java/com/sunbird/serve/need/models/Need/NeedPlan.java new file mode 100644 index 0000000..ed86278 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/NeedPlan.java @@ -0,0 +1,41 @@ +package com.sunbird.serve.need.models.Need; + +import com.sunbird.serve.need.models.enums.NeedStatus; +import jakarta.persistence.*; +import jakarta.persistence.Entity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class NeedPlan { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private String assignedUserId; + private String needId; + private String name; + + @Enumerated(EnumType.STRING) + private NeedStatus status; + + private String occurrenceId; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} diff --git a/src/main/java/com/sunbird/serve/need/models/enums/NeedDeliverableStatus.java b/src/main/java/com/sunbird/serve/need/models/enums/NeedDeliverableStatus.java new file mode 100644 index 0000000..9c2f62e --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/enums/NeedDeliverableStatus.java @@ -0,0 +1,9 @@ +package com.sunbird.serve.need.models.enums; + +public enum NeedDeliverableStatus { + NotStarted, + Scheduled, + InProgress, + Completed, + Cancelled +} diff --git a/src/main/java/com/sunbird/serve/need/models/request/CreateNeedTypeRequest.java b/src/main/java/com/sunbird/serve/need/models/request/CreateNeedTypeRequest.java new file mode 100644 index 0000000..2f18223 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/CreateNeedTypeRequest.java @@ -0,0 +1,16 @@ +package com.sunbird.serve.need.models.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CreateNeedTypeRequest { + + private NeedTypeRequest needTypeRequest; + private NeedRequirementRequest needRequirementRequest; +} diff --git a/src/main/java/com/sunbird/serve/need/models/request/NeedDeliverableRequest.java b/src/main/java/com/sunbird/serve/need/models/request/NeedDeliverableRequest.java new file mode 100644 index 0000000..9332983 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/NeedDeliverableRequest.java @@ -0,0 +1,20 @@ +package com.sunbird.serve.need.models.request; + +import com.sunbird.serve.need.models.enums.NeedDeliverableStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.time.LocalDate; + + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedDeliverableRequest { + private String needPlanId; + private String comments; + private NeedDeliverableStatus status; + private LocalDate deliverableDate; +} \ No newline at end of file diff --git a/src/main/java/com/sunbird/serve/need/models/request/NeedPlanRequest.java b/src/main/java/com/sunbird/serve/need/models/request/NeedPlanRequest.java new file mode 100644 index 0000000..42517a5 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/NeedPlanRequest.java @@ -0,0 +1,20 @@ +package com.sunbird.serve.need.models.request; + +import com.sunbird.serve.need.models.enums.NeedStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedPlanRequest { + private String assignedUserId; + private String needId; + private String name; + private NeedStatus status; + private String occurrenceId; +} \ No newline at end of file diff --git a/src/main/java/com/sunbird/serve/need/models/request/NeedTypeRequest.java b/src/main/java/com/sunbird/serve/need/models/request/NeedTypeRequest.java new file mode 100644 index 0000000..4024a82 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/request/NeedTypeRequest.java @@ -0,0 +1,22 @@ +package com.sunbird.serve.need.models.request; + +import com.sunbird.serve.need.models.enums.NeedTypeStatus; +import com.sunbird.serve.need.models.enums.TaskType; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedTypeRequest { + private String description; + private String userId; + private String taxonomyId; + private String onboardingId; + private String name; + private NeedTypeStatus status; + private TaskType taskType; +} From 49cda8ee5cca2369eec3f7beeab3eb7c3bb64a84 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Fri, 15 Dec 2023 21:37:01 +0530 Subject: [PATCH 04/12] updated end points and the response --- .../serve/need/NeedDiscoveryController.class | Bin 6313 -> 7188 bytes .../serve/need/NeedDiscoveryRepository.class | Bin 1823 -> 2230 bytes .../serve/need/NeedDiscoveryService.class | Bin 3101 -> 8291 bytes .../need/NeedTypeDiscoveryController.class | Bin 5988 -> 5982 bytes .../controllers/NeedPlanController.java | 11 ++- .../services/NeedPlanService.java | 17 ++++- .../controllers/NeedController.java | 2 +- .../repositories/EntityRepository.java | 17 +++++ .../need/NeedService/services/NeedMapper.java | 2 +- .../services/RaiseNeedService.java | 34 +++++++-- .../controllers/NeedDiscoveryController.java | 65 ++++++++++------ .../NeedTypeDiscoveryController.java | 8 +- .../repositories/NeedDiscoveryRepository.java | 2 + .../services/NeedDiscoveryService.java | 70 +++++++++++++++++- .../serve/need/models/Need/Entity.java | 45 +++++++++++ .../serve/need/models/enums/EntityStatus.java | 8 ++ .../response/NeedEntityAndRequirement.java | 1 + .../models/response/NeedPlanResponse.java | 21 ++++++ .../response/NeedRequirementResponse.java | 22 ++++++ 19 files changed, 280 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/repositories/EntityRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/Entity.java create mode 100644 src/main/java/com/sunbird/serve/need/models/enums/EntityStatus.java create mode 100644 src/main/java/com/sunbird/serve/need/models/response/NeedPlanResponse.java create mode 100644 src/main/java/com/sunbird/serve/need/models/response/NeedRequirementResponse.java diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryController.class b/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryController.class index 3f5658da43818c5d02b0a70f621c6dff290a55df..55a26359c0eef3f3be781d3f9d7bee9786316ee6 100644 GIT binary patch delta 2464 zcmb`I`EyfM6vw}}$;)fglrCXuCP;%8X$zeUBb)8eVJi?Vi)?C9B#>ts8uHS-*Fsr* zB8#{}dEf#niVL8)V6j$IR9tZUC;ZJ{^&fEg-uKc_+cGL+XOesGIro0gIiGuSdtugz z`Tn2&xN;T10$ji3Kksc?j3p|T2GELS0+rk2J@IHdo=HYy8Buue)*0(W$`|&{kb>CiZQ7qQiSDoKkX`d~x4>k*U zv+*QT5HU`T)Nai_Q`%zxTG}O2c0AD9kkgE;o-wqjOrSMmrp#W3U#oR>r*hg3En_yf zP~^wDk=pvye>`b#DeIh28D&X5T4RRtQRhowuHEOax2wk;DKBN^i_&Qso5k9)So=4x zKb(iy+%}49^N12>GCRN2UEiD4VhMrZ7-s|&xy7(I2R4dd{(BT_#`I;Hxve7-Pp2bJ zvXQO5k!()yNhMO5q+^Q61R?^p_S}*wJBG5EKB|0~NTbQU(LFcP-p6*yxy%zDHkl9z z$T+TOY^k(?wGG2H)GPuz3kr_D{4$d9bvq3uaBa*zmY8kdUNO5|Ad;`oDaD>uF}_Y< z%Bb9>T6B-A$&^*uu6BRLPBBN`Xv>nEZWya`sbng{*sAW#c(0;CpklGEn}(T-XIE-w zhn_IXeHifLQw*y3EPyNcyuYooR488wtgmzLxY9mU)#m+HVA}EE6n|}-u6K54ReW#% zUNtYorYDjrlp?^q-|L=oEUmBH}RO|*@Jq*f0v8c>26c!;Zs+yVIUFgA0PGkIR% z5zZCCg`_+QTPW6UUkuK%q)-(lfVtc_4-+sScW{(q5hp-xL97;WY~}d?s<90ThSIo8 z%Da|FX~_qQ(~;z-2pvdqj8kemSDgmZ*df0%Jf?55;8}<)om~cU(qX{d1hEj^boUt8 zDZNF~yGwd|3(MVdxd(e46$k_S@EGH$ybM^J2sGnyStaL3sqf<$3Qr!yT}|GG%TOCb z-T~a*WGNwK5DPw{*Ml2SmqW!01o@ar4lVBK0*4Ux;|WHfA`WmSk%w>)hp3^F=3zWZ zqCuWIf~T0n5GB|0G%b=+nTIk=^#JDw`EhYQGZNRcve4)9xG;j&^S4Uts6#92v6%cZ zmeOb7IBZTB?8FV*$syYdbRA=o0x#mFJk~Q#xj@a#0W50dN5WMk+!-Nd0LzSBm z+fl~m46z5v)*@z=x-|v3HF()+GHKh7Qx4o3LOR80(k3x`DdA#PDCEOwV)hjNjrqERdZCwZxo zVW+(%_i&!O%75~*y%h?LoPGLWf)b zrtS0mi}5~d7S5A0m81MCsVW}C>V9mv#D#EP5V-}I#tZs@V-Y@d>aF5TzA~5S{g^MD lfqq;D?sT5dPuSaE;7eS^*W4nvHlP;Y_)2gM-{A*@{sK!R1`+@O delta 1933 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 diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryController.class b/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryController.class index 9e99c06f85f8e14507c232909414003259d7a22b..64ee07aee308e262b61d0b3de5b2403b73045a0f 100644 GIT binary patch delta 507 zcmXv|T}u>U7(MUIxUy*MUV?#7+s`Z1e^OJq3AZNLb%#( zL5TL0AK8~*m09_*2H}N2AR+n%LQv3O2p02k!He@e=bZOF?|FYGjuOWA88^$`XIxZ7S4DSH(Xi|J#vD+ygzo&muZ!&g}^oXWw+CiU9HUt)X}V2 z7tpaF5M>&rBfCIt3czS}CMXww~6 znpLXz;`U<*%=BTF*9|f<^Qfxr#I^nZ*kX@Ss$rTP)FTq{ZRhmw3Wm?7u<~ujyYT(e|d8ep^fj j_;8u^3d3T)3Kbu*iBI^#PMF_~A&RZQIc#GWd#F4CAUS=} delta 495 zcmYjN%}*0?5Pj2KckAwU+uiIIFa<6pVrxnwkr*R-G11;syuiVvz@{<5L|ZU1+V()= z$pq@CpdcT9Dv&_~E#5UI6DH9rPdOEJgV4o})51sH zg!+llaUdF3+|OjC+P|Rpw3^w1o@LLwXjT!C3$&qzDi^&|RO2P@cC<$U;SRv9epb1F zX};{=^DC%|3uF%-hp{Z`{KG$a{-L-wB2668!A%%C9%E3vn1YJ5nxHNy2qKulNXQk8 ziVDh@MNtZW^)As> getByNeedId(@PathVariable String needId) { - List needPlan = needPlanService.getByNeedId(needId); + public ResponseEntity> getByNeedId(@PathVariable String needId) { + List needPlan = needPlanService.getByNeedId(needId); + + if (!needPlan.isEmpty()) { return ResponseEntity.ok(needPlan); + } else { + return ResponseEntity.notFound().build(); } +} + //Raise Need with Need Request and Request Header @Operation(summary = "Create Need Plan by filling in request body", description = "Initiate the process of creating a Need Plan") diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java index 3c0edf6..3db3c89 100644 --- a/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java @@ -3,6 +3,7 @@ import com.sunbird.serve.need.models.Need.NeedPlan; import com.sunbird.serve.need.models.Need.Occurrence; import com.sunbird.serve.need.models.request.NeedPlanRequest; +import com.sunbird.serve.need.models.response.NeedPlanResponse; import com.sunbird.serve.need.models.Need.TimeSlot; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,6 +11,7 @@ import java.util.Map; import java.util.List; import java.util.NoSuchElementException; +import org.springframework.http.ResponseEntity; @Service @@ -30,8 +32,19 @@ public NeedPlanService( } //Fetch needs based on needTypeId - public List getByNeedId(String needId) { - return needPlanRepository.findByNeedId(needId); + public List getByNeedId(String needId) { + //return needPlanRepository.findByNeedId(needId); + List needPlans = needPlanRepository.findByNeedId(needId); + List response = needPlans.stream().map(plan -> { + Occurrence occurrence = occurrenceRepository.findById(UUID.fromString(plan.getOccurrenceId())).get(); + List slots = timeSlotRepository.findByOccurrenceId(plan.getOccurrenceId()); + return NeedPlanResponse.builder() + .plan(plan) + .occurrence(occurrence) + .timeSlots(slots) + .build(); + }).toList(); + return response; } diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java index b7d356b..31454d9 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java @@ -37,7 +37,7 @@ public NeedController(RaiseNeedService raiseNeedService) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PostMapping("/serve-need/need/create") + @PostMapping("/serve-need/need/raise") public ResponseEntity raiseNeed(@RequestBody RaiseNeedRequest request, @RequestHeader Map headers) { Need response = raiseNeedService.raiseNeed(request, headers); return ResponseEntity.status(HttpStatus.CREATED).body(response); diff --git a/src/main/java/com/sunbird/serve/need/NeedService/repositories/EntityRepository.java b/src/main/java/com/sunbird/serve/need/NeedService/repositories/EntityRepository.java new file mode 100644 index 0000000..3db3bae --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/repositories/EntityRepository.java @@ -0,0 +1,17 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.Entity; +import com.sunbird.serve.need.models.enums.EntityStatus; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface EntityRepository extends JpaRepository { + + Page findAllByStatus(EntityStatus status, Pageable pageable); + +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java index 404e5eb..81d6e32 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java @@ -29,7 +29,7 @@ public static Need mapToEntity(NeedRequest needRequest) { need.setStatus(needRequest.getStatus()); need.setUserId(needRequest.getUserId()); need.setEntityId(needRequest.getEntityId()); - need.setRequirementId(null); + need.setRequirementId(needRequest.getRequirementId()); return need; } diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java b/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java index 7fcd43c..b72d637 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java @@ -74,14 +74,34 @@ public Need updateNeed(UUID needId, NeedRequest request, Map hea Need existingNeed = needRepository.findById(needId) .orElseThrow(() -> new NoSuchElementException("Need not found with ID: " + needId)); + // Update the existing need with new values + if (request.getNeedTypeId() != null) { + existingNeed.setNeedTypeId(request.getNeedTypeId()); + } + // Update the existing need with new values + if (request.getEntityId() != null) { + existingNeed.setEntityId(request.getEntityId()); + } // Update the existing need with new values - existingNeed.setNeedPurpose(request.getNeedPurpose()); - existingNeed.setNeedTypeId(request.getNeedTypeId()); - existingNeed.setEntityId(request.getEntityId()); - existingNeed.setDescription(request.getDescription()); - existingNeed.setUserId(request.getUserId()); - existingNeed.setStatus(request.getStatus()); - existingNeed.setName(request.getName()); + if (request.getUserId() != null) { + existingNeed.setUserId(request.getUserId()); + } + // Update the existing need with new values + if (request.getStatus() != null) { + existingNeed.setStatus(request.getStatus()); + } + + if (request.getNeedPurpose() != null) { + existingNeed.setNeedPurpose(request.getNeedPurpose()); + } + + if (request.getDescription() != null) { + existingNeed.setDescription(request.getDescription()); + } + + if (request.getName() != null) { + existingNeed.setName(request.getName()); + } // Save the updated need return needRepository.save(existingNeed); diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java index c96feaf..12da9fd 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java @@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RestController; import com.sunbird.serve.need.models.Need.Need; import com.sunbird.serve.need.models.enums.NeedStatus; +import com.sunbird.serve.need.models.response.NeedEntityAndRequirement; import java.util.List; import org.springframework.data.domain.Page; @@ -21,6 +22,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CrossOrigin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,6 +31,7 @@ import java.util.UUID; @RestController +@CrossOrigin(origins = "*") public class NeedDiscoveryController { private static final Logger logger = LoggerFactory.getLogger(NeedDiscoveryController.class); @@ -60,50 +63,64 @@ public ResponseEntity getNeedById(@PathVariable String needId) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need/status/{status}") - public ResponseEntity> getNeedsByStatus( - @PathVariable NeedStatus status, + @GetMapping("/serve-need/need/") + public ResponseEntity> getNeedsByStatus( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, - @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size){ + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, + @RequestParam NeedStatus status){ Pageable pageable = PageRequest.of(page, size); - Page needsByStatus = needDiscoveryService.getNeedsByStatus(status, pageable); + Page needsByStatus = needDiscoveryService.getNeedsByStatus(status, pageable); return ResponseEntity.ok(needsByStatus); } - //Fetch all need by providing User Id of nCoord or Need Type Id - @Operation(summary = "Fetch all Needs by providing UserId of nCoordinator or Need Type or all the needs. ", description = "Fetch a Need by providing NeedId") + //Fetch all need by providing Need Type Id + @Operation(summary = "Fetch all Needs by providing Need Type ", description = "Fetch a Need by providing NeedTypeId") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Successfully Fetched Need", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need/read") + @GetMapping("/serve-need/need/need-type/{needTypeId}") public ResponseEntity> getAllNeeds( - @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, - @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, - @RequestParam(required = false) @Parameter(description = "User ID") String userId, - @RequestParam(required = false) @Parameter(description = "Need Type ID") String needTypeId) { + @PathVariable(required = true) @Parameter(description = "Need Type ID") String needTypeId, + @RequestParam(required = false, defaultValue = "0") Integer page, + @RequestParam(required = false, defaultValue = "10") Integer size, + @RequestParam(required = true) NeedStatus status) { Pageable pageable = PageRequest.of(page, size); Page needs; - if (userId != null && needTypeId != null) { - // Fetch needs based on both userId and needTypeId - needs = needDiscoveryService.getNeedByUserIdAndNeedTypeId(userId, needTypeId, pageable); - } else if (userId != null) { - // Fetch needs based on userId - needs = needDiscoveryService.getNeedByUserId(userId, pageable); - } else if (needTypeId != null) { - // Fetch needs based on needTypeId + // Fetch needs based on needTypeId needs = needDiscoveryService.getNeedByNeedTypeId(needTypeId, pageable); - } else { - // Fetch all needs if no specific parameters are provided - needs = needDiscoveryService.getAllNeeds(pageable); - } return ResponseEntity.ok(needs); } + //Fetch all need by providing User Id of nCoord + @Operation(summary = "Fetch all Needs by providing UserId of nCoordinator ", description = "Fetch a Need by providing UserId") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully Fetched Need", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @GetMapping("/serve-need/need/user/{userId}") + public ResponseEntity> getAllNeedsByUserId( + @PathVariable(required = true) @Parameter(description = "User ID") String userId, + @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, + @RequestParam(required = true) NeedStatus status) { + + Pageable pageable = PageRequest.of(page, size); + Page needs; + + + // Fetch needs based on userId + needs = needDiscoveryService.getNeedByUserIdAndStatus(userId, status, pageable); + + return ResponseEntity.ok(needs); +} + + } diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java index 81b49ff..a0c522b 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java @@ -48,7 +48,7 @@ public NeedTypeDiscoveryController(NeedTypeDiscoveryService needTypeDiscoverySer @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/needType/{needTypeId}") + @GetMapping("/serve-need/needtype/{needTypeId}") public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) { Optional needType = needTypeDiscoveryService.getNeedTypeById(UUID.fromString(needTypeId)); return needType.map(ResponseEntity::ok) @@ -62,11 +62,11 @@ public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/needType/status/{status}") + @GetMapping("/serve-need/needtype") public ResponseEntity> getNeedTypeByStatus( - @PathVariable NeedTypeStatus status, @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, - @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size){ + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, + @RequestParam(required = true) NeedTypeStatus status){ Pageable pageable = PageRequest.of(page, size); Page needTypeByStatus = needTypeDiscoveryService.getNeedTypeByStatus(status, pageable); return ResponseEntity.ok(needTypeByStatus); diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java index 579e12b..7ba6a76 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java @@ -26,5 +26,7 @@ public interface NeedDiscoveryRepository extends JpaRepository { Page findAllByUserId(String userId, Pageable pageable); + Page findAllByUserIdAndStatus(String userId, NeedStatus status, Pageable pageable); + Page findAllByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable); } diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java index 47a7d4b..b5866ef 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java @@ -3,7 +3,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.Need.NeedType; import com.sunbird.serve.need.models.enums.NeedStatus; +import com.sunbird.serve.need.models.Need.Entity; +import com.sunbird.serve.need.models.enums.EntityStatus; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.TimeSlot; +import com.sunbird.serve.need.models.response.NeedEntityAndRequirement; +import com.sunbird.serve.need.models.Need.NeedRequirement; +import com.sunbird.serve.need.*; + import java.util.Optional; import java.util.UUID; @@ -17,10 +26,26 @@ public class NeedDiscoveryService { private final NeedDiscoveryRepository needDiscoveryRepository; + private final NeedRequirementRepository needRequirementRepository; + private final EntityRepository entityRepository; + private final NeedTypeRepository needTypeRepository; + private final OccurrenceRepository occurrenceRepository; + private final TimeSlotRepository timeSlotRepository; @Autowired - public NeedDiscoveryService(NeedDiscoveryRepository needDiscoveryRepository) { + public NeedDiscoveryService( + NeedDiscoveryRepository needDiscoveryRepository, + NeedRequirementRepository needRequirementRepository, + EntityRepository entityRepository, + NeedTypeRepository needTypeRepository, + OccurrenceRepository occurrenceRepository, + TimeSlotRepository timeSlotRepository) { this.needDiscoveryRepository = needDiscoveryRepository; + this.needRequirementRepository = needRequirementRepository; + this.entityRepository = entityRepository; + this.needTypeRepository = needTypeRepository; + this.occurrenceRepository = occurrenceRepository; + this.timeSlotRepository = timeSlotRepository; } //Fetch all the needs @@ -34,8 +59,40 @@ public Optional getNeedById(UUID needId) { } //Fetch need by status - public Page getNeedsByStatus(NeedStatus status, Pageable pageable) { - return needDiscoveryRepository.findAllByStatus(status, pageable); + public Page getNeedsByStatus(NeedStatus status, Pageable pageable) { + //return needDiscoveryRepository.findAllByStatus(status, pageable); + + Page needsPage = needDiscoveryRepository.findAllByStatus(status, pageable); + + + return needsPage.map(need -> { + try { + Optional needRequirement = needRequirementRepository.findById(UUID.fromString(need.getRequirementId())); + Optional entity = entityRepository.findById(UUID.fromString(need.getEntityId())); + Optional needType = needTypeRepository.findById((UUID.fromString(need.getNeedTypeId()))); + + Optional occurrence = Optional.empty(); + List slots = List.of(); + if (needRequirement.isPresent()) { + String occurrenceId = needRequirement.get().getOccurrenceId(); + if (occurrenceId != null) { + occurrence = occurrenceRepository.findById(UUID.fromString(occurrenceId)); + slots = timeSlotRepository.findByOccurrenceId(occurrenceId); + } + } + + return NeedEntityAndRequirement.builder() + .need(need) + .needRequirement(needRequirement) + .occurrence(occurrence) + .timeSlots(slots) + .entity(entity) + .needType(needType) + .build(); + } catch (Exception e) { + return null; + } + }); } //Fetch needs based on needTypeId @@ -49,7 +106,12 @@ public Page getNeedByUserId(String userId, Pageable pageable) { } //Fetch needs based on userId - public Page getNeedByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable) { + public Page getNeedByUserIdAndStatus(String userId, NeedStatus status, Pageable pageable) { + return needDiscoveryRepository.findAllByUserIdAndStatus(userId, status, pageable); + } + + //Fetch needs based on userId + public Page getNeedByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable) { return needDiscoveryRepository.findAllByUserIdAndNeedTypeId(userId, needTypeId, pageable); } } diff --git a/src/main/java/com/sunbird/serve/need/models/Need/Entity.java b/src/main/java/com/sunbird/serve/need/models/Need/Entity.java new file mode 100644 index 0000000..540ff7b --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/Entity.java @@ -0,0 +1,45 @@ +package com.sunbird.serve.need.models.Need; + +import com.sunbird.serve.need.models.enums.EntityStatus; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.math.BigInteger; +import java.time.Instant; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@jakarta.persistence.Entity +public class Entity { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private String website; + private String name; + private Long mobile; + private String address_line1; + private String district; + private String state; + private Integer pincode; + private String category; + + @Enumerated(EnumType.STRING) + private EntityStatus status; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; + +} \ No newline at end of file diff --git a/src/main/java/com/sunbird/serve/need/models/enums/EntityStatus.java b/src/main/java/com/sunbird/serve/need/models/enums/EntityStatus.java new file mode 100644 index 0000000..67aa63a --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/enums/EntityStatus.java @@ -0,0 +1,8 @@ +package com.sunbird.serve.need.models.enums; + +public enum EntityStatus { + New, + Verified, + Active, + Inactive +} diff --git a/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java b/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java index c099979..01c7899 100644 --- a/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java +++ b/src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java @@ -18,6 +18,7 @@ public class NeedEntityAndRequirement { private Optional needRequirement; private Optional occurrence; private List timeSlots; + private Optional entity; private Optional needType; } diff --git a/src/main/java/com/sunbird/serve/need/models/response/NeedPlanResponse.java b/src/main/java/com/sunbird/serve/need/models/response/NeedPlanResponse.java new file mode 100644 index 0000000..0317391 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/response/NeedPlanResponse.java @@ -0,0 +1,21 @@ +package com.sunbird.serve.need.models.response; + +import com.sunbird.serve.need.models.Need.NeedPlan; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.TimeSlot; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedPlanResponse { + private NeedPlan plan; + private Occurrence occurrence; + private List timeSlots; +} diff --git a/src/main/java/com/sunbird/serve/need/models/response/NeedRequirementResponse.java b/src/main/java/com/sunbird/serve/need/models/response/NeedRequirementResponse.java new file mode 100644 index 0000000..1d9629e --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/response/NeedRequirementResponse.java @@ -0,0 +1,22 @@ +package com.sunbird.serve.need.models.response; + +import com.sunbird.serve.need.models.Need.NeedRequirement; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.TimeSlot; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Optional; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NeedRequirementResponse { + private Optional needRequirement; + private Optional occurrence; + private List timeSlots; +} From 3fbddf12775897076a7d3b347957e2272f2e3c87 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Sat, 16 Dec 2023 20:29:47 +0530 Subject: [PATCH 05/12] Raise Need Issue Fix --- .../controllers/NeedController.java | 1 + .../need/NeedService/services/NeedMapper.java | 2 + .../services/RaiseNeedService.java | 53 ++++++++++++++++++- .../NeedTypeDiscoveryController.java | 4 +- .../models/request/OccurrenceRequest.java | 1 - 5 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java index 31454d9..f7fbaf6 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java @@ -21,6 +21,7 @@ @RestController +@CrossOrigin(origins = "*") public class NeedController { private final RaiseNeedService raiseNeedService; diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java index 81d6e32..b868b1f 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java @@ -6,6 +6,7 @@ import com.sunbird.serve.need.models.request.OccurrenceRequest; import com.sunbird.serve.need.models.request.TimeSlotRequest; import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.Need.Occurrence; import com.sunbird.serve.need.models.Need.NeedType; import com.sunbird.serve.need.models.Need.NeedRequirement; import com.sunbird.serve.need.models.Need.Occurrence; @@ -42,6 +43,7 @@ public static NeedRequirement mapToNeedRequirement(NeedRequirementRequest needRe needRequirement.setVolunteersRequired(needRequirementRequest.getVolunteersRequired()); needRequirement.setPriority(needRequirementRequest.getPriority()); + return needRequirement; } diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java b/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java index b72d637..06d6cc9 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java @@ -38,7 +38,7 @@ public RaiseNeedService( this.needRequirementRepository = needRequirementRepository; } - public Need raiseNeed(RaiseNeedRequest raiseNeedRequest, Map headers) { + /* public Need raiseNeed(RaiseNeedRequest raiseNeedRequest, Map headers) { // Convert RaiseNeedRequest to Need entity Need need = NeedMapper.mapToEntity(raiseNeedRequest.getNeedRequest()); @@ -67,8 +67,59 @@ public Need raiseNeed(RaiseNeedRequest raiseNeedRequest, Map hea // Return the saved Need entity return savedNeed; + } */ + + public Need raiseNeed(RaiseNeedRequest request, Map headers) { + String requirementId = request.getNeedRequest().getRequirementId(); + + Occurrence occurrence = occurrenceRepository.save( + Occurrence.builder() + .days(request.getNeedRequirementRequest().getOccurrence().getDays()) + .frequency(request.getNeedRequirementRequest().getOccurrence().getFrequency()) + .startDate(request.getNeedRequirementRequest().getOccurrence().getStartDate()) + .endDate(request.getNeedRequirementRequest().getOccurrence().getEndDate()) + .build() + ); + + timeSlotRepository.saveAll( + request.getNeedRequirementRequest() + .getOccurrence().getTimeSlots() + .stream().map(req -> TimeSlot.builder() + .day(req.getDay()) + .startTime(req.getStartTime()) + .endTime(req.getEndTime()) + .occurrenceId(occurrence.getId().toString()) + .build()).toList() + ); + + if (requirementId == null) { + NeedRequirement needRequirement = needRequirementRepository.save( + NeedRequirement.builder() + .priority(request.getNeedRequirementRequest().getPriority()) + .skillDetails(request.getNeedRequirementRequest().getSkillDetails()) + .occurrenceId(occurrence.getId().toString()) + .volunteersRequired(request.getNeedRequirementRequest().getVolunteersRequired()) + .build() + ); + + requirementId = needRequirement.getId().toString(); + } + + return needRepository.save( + Need.builder() + .needPurpose(request.getNeedRequest().getNeedPurpose()) + .needTypeId(request.getNeedRequest().getNeedTypeId()) + .entityId(request.getNeedRequest().getEntityId()) + .description(request.getNeedRequest().getDescription()) + .requirementId(requirementId) + .userId(request.getNeedRequest().getUserId()) + .status(request.getNeedRequest().getStatus()) + .name(request.getNeedRequest().getName()) + .build() + ); } + public Need updateNeed(UUID needId, NeedRequest request, Map headers) { // Check if the need with the given ID exists Need existingNeed = needRepository.findById(needId) diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java index a0c522b..dbce439 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java @@ -22,6 +22,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CrossOrigin; import org.slf4j.Logger; @@ -31,6 +32,7 @@ import java.util.UUID; @RestController +@CrossOrigin(origins = "*") public class NeedTypeDiscoveryController { private static final Logger logger = LoggerFactory.getLogger(NeedTypeDiscoveryController.class); @@ -62,7 +64,7 @@ public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/needtype") + @GetMapping("/serve-need/needtype/") public ResponseEntity> getNeedTypeByStatus( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, diff --git a/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java b/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java index d65f255..f2cf862 100644 --- a/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java +++ b/src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java @@ -16,7 +16,6 @@ public class OccurrenceRequest { private Instant startDate; private Instant endDate; - private String days; private String frequency; private List timeSlots; From 795bd0bb50152d747589c9a5cb65c8a6ecdc3d14 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Sun, 17 Dec 2023 21:04:17 +0530 Subject: [PATCH 06/12] Implemented NeedReq API and Need Deliverables --- .../NeedDeliverableController.java | 2 + .../controllers/NeedPlanController.java | 2 + .../services/NeedPlanService.java | 42 +++++++++++++- .../controllers/NeedController.java | 1 + .../NeedRequirementController.java | 55 +++++++++++++++++++ .../controllers/NeedTypeController.java | 3 +- .../services/NeedRequirementService.java | 42 ++++++++++++++ 7 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/services/NeedRequirementService.java diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java index 5a7ca84..9acb999 100644 --- a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java @@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CrossOrigin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +34,7 @@ import java.util.Map; @RestController +@CrossOrigin(origins = "*") public class NeedDeliverableController { private static final Logger logger = LoggerFactory.getLogger(NeedDeliverableController.class); diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java index c8e1097..a5e6f17 100644 --- a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java @@ -32,8 +32,10 @@ import java.util.Optional; import java.util.UUID; import java.util.Map; +import org.springframework.web.bind.annotation.CrossOrigin; @RestController +@CrossOrigin(origins = "*") public class NeedPlanController { private static final Logger logger = LoggerFactory.getLogger(NeedPlanController.class); diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java index 3db3c89..cbc1fc2 100644 --- a/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/services/NeedPlanService.java @@ -2,7 +2,10 @@ import com.sunbird.serve.need.models.Need.NeedPlan; import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.NeedDeliverable; +import com.sunbird.serve.need.models.enums.NeedDeliverableStatus; import com.sunbird.serve.need.models.request.NeedPlanRequest; +import com.sunbird.serve.need.models.request.NeedDeliverableRequest; import com.sunbird.serve.need.models.response.NeedPlanResponse; import com.sunbird.serve.need.models.Need.TimeSlot; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +13,8 @@ import java.util.UUID; import java.util.Map; import java.util.List; +import java.time.*; +import java.util.*; import java.util.NoSuchElementException; import org.springframework.http.ResponseEntity; @@ -20,15 +25,18 @@ public class NeedPlanService { private final NeedPlanRepository needPlanRepository; private final OccurrenceRepository occurrenceRepository; private final TimeSlotRepository timeSlotRepository; + private final NeedDeliverableRepository needDeliverableRepository; @Autowired public NeedPlanService( NeedPlanRepository needPlanRepository, OccurrenceRepository occurrenceRepository, - TimeSlotRepository timeSlotRepository) { + TimeSlotRepository timeSlotRepository, + NeedDeliverableRepository needDeliverableRepository) { this.needPlanRepository = needPlanRepository; this.occurrenceRepository = occurrenceRepository; this.timeSlotRepository = timeSlotRepository; + this.needDeliverableRepository = needDeliverableRepository; } //Fetch needs based on needTypeId @@ -55,9 +63,41 @@ public NeedPlan createNeedPlan(NeedPlanRequest needPlanRequest, Map headers) { + + + Optional occurrence = occurrenceRepository.findById(UUID.fromString(needPlan.getOccurrenceId())); + if (occurrence.isPresent()) { + LocalDate startDate = occurrence.get().getStartDate().atZone(ZoneId.of("Asia/Kolkata")).toLocalDate(); + LocalDate endDate = occurrence.get().getEndDate().atZone(ZoneId.of("Asia/Kolkata")).toLocalDate(); + List days = Arrays.stream(occurrence.get().getDays().split(",")).map((day) -> DayOfWeek.valueOf(day.trim().toUpperCase())).toList(); + + List deliverableDates = startDate.datesUntil(endDate, Period.ofDays(1)) + .filter(localDate -> days.contains(localDate.getDayOfWeek())) + .toList(); + + for(LocalDate date: deliverableDates) { + needDeliverableRepository.save( + NeedDeliverable.builder() + .needPlanId(needPlan.getId().toString()) + .deliverableDate(date) + .status(NeedDeliverableStatus.NotStarted) + .build() + ); + } + } + + + //need.setStatus(NeedStatus.Approved); + //needRepository.save(need); +} + } diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java index f7fbaf6..2ffac4a 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java @@ -15,6 +15,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CrossOrigin; import java.util.UUID; import java.util.Map; diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java new file mode 100644 index 0000000..ebcee33 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java @@ -0,0 +1,55 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedRequirement; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RestController; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.CrossOrigin; + +import java.util.UUID; +import java.util.Map; +import java.util.Optional; + + +@RestController +@Slf4j +@CrossOrigin(origins = "*") +@RequestMapping("/serve-need/need-requirement") +public class NeedRequirementController { + + private final NeedRequirementService needRequirementService; + + public NeedRequirementController(NeedRequirementService needRequirementService) { + this.needRequirementService = needRequirementService; + } + + @Operation(summary = "Get a particular need requirement by its primary key", description = "Get Need Requirement by Id") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully fetched Need Requirement", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE)), + @ApiResponse(responseCode = "400", description = "Bad Input"), + @ApiResponse(responseCode = "500", description = "Server Error")} + ) + @GetMapping(value = "/{needReqId}", + produces = {MediaType.APPLICATION_JSON_VALUE} + ) + ResponseEntity getNeedRequirementById( + @PathVariable String needReqId, + @Parameter() @RequestHeader Map headers){ + Optional needRequirement = needRequirementService.getNeedRequirementById(UUID.fromString(needReqId)); + return needRequirement.map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } +} diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java index 4370d2a..3dfd73a 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java @@ -15,12 +15,13 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.http.MediaType; - +import org.springframework.web.bind.annotation.CrossOrigin; import java.util.UUID; import java.util.Map; @RestController +@CrossOrigin(origins = "*") public class NeedTypeController { private final NeedTypeService needTypeService; diff --git a/src/main/java/com/sunbird/serve/need/NeedService/services/NeedRequirementService.java b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedRequirementService.java new file mode 100644 index 0000000..1d3d9e9 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/NeedService/services/NeedRequirementService.java @@ -0,0 +1,42 @@ +package com.sunbird.serve.need; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.Need.NeedType; +import com.sunbird.serve.need.models.enums.NeedStatus; +import com.sunbird.serve.need.models.Need.Entity; +import com.sunbird.serve.need.models.enums.EntityStatus; +import com.sunbird.serve.need.models.Need.Occurrence; +import com.sunbird.serve.need.models.Need.TimeSlot; +import com.sunbird.serve.need.models.response.NeedEntityAndRequirement; +import com.sunbird.serve.need.models.Need.NeedRequirement; +import com.sunbird.serve.need.*; + + +import java.util.Optional; +import java.util.UUID; + +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +@Service +public class NeedRequirementService { + + private final NeedRequirementRepository needRequirementRepository; + + @Autowired + public NeedRequirementService( + NeedRequirementRepository needRequirementRepository) { + this.needRequirementRepository = needRequirementRepository; + } + + + //Fetch needs based on needRequirementId + public Optional getNeedRequirementById(UUID needReqId) { + return needRequirementRepository.findById(needReqId); + } + +} From 08f5f3aefb74a346b4b474c19bb0138f00e86956 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Mon, 18 Dec 2023 14:44:43 +0530 Subject: [PATCH 07/12] Added Dockerfile --- Dockerfile | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b7cf0b0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM gradle:7.6.0-jdk17 as build + +COPY --chown=gradle:gradle . /home/gradle/src +WORKDIR /home/gradle/src +COPY . /home/gradle/src + +#RUN gradle build -x test +#RUN gradle build --debug +RUN gradle build + + +# TODO: check slim version of eclipse-temurin:17 and update it here +FROM eclipse-temurin:17 +RUN mkdir /usr/src/app +COPY --from=build /home/gradle/src/build/libs/*SNAPSHOT.war /usr/src/app/app.war +USER root + +EXPOSE 9000 +RUN apt-get update +RUN apt-get -y upgrade +RUN apt-get install curl + +CMD ["java", "-jar", "/usr/src/app/app.war"] \ No newline at end of file From f3d3e7574774dbf52c9a2521c4f882223423debc Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Tue, 19 Dec 2023 16:01:10 +0530 Subject: [PATCH 08/12] API end point change for deployment --- .../controllers/NeedDeliverableController.java | 6 +++--- .../controllers/NeedPlanController.java | 4 ++-- .../need/NeedService/controllers/NeedController.java | 4 ++-- .../controllers/NeedRequirementController.java | 2 +- .../need/NeedService/controllers/NeedTypeController.java | 4 ++-- .../controllers/NeedDiscoveryController.java | 8 ++++---- .../controllers/NeedTypeDiscoveryController.java | 6 +++--- src/main/resources/application.properties | 4 ++-- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java index 9acb999..6356863 100644 --- a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedDeliverableController.java @@ -52,7 +52,7 @@ public NeedDeliverableController(NeedDeliverableService needDeliverableService) @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need-deliverable/{needPlanId}") + @GetMapping("/need-deliverable/{needPlanId}") public ResponseEntity> getByNeedId(@PathVariable String needPlanId) { List needDeliverable = needDeliverableService.getByNeedPlanId(needPlanId); return ResponseEntity.ok(needDeliverable); @@ -65,7 +65,7 @@ public ResponseEntity> getByNeedId(@PathVariable String ne @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PostMapping("/serve-need/need-deliverable/create") + @PostMapping("/need-deliverable/create") public ResponseEntity createNeedDeliverable(@RequestBody NeedDeliverableRequest request, @RequestHeader Map headers) { NeedDeliverable response = needDeliverableService.createNeedDeliverable(request, headers); return ResponseEntity.status(HttpStatus.CREATED).body(response); @@ -78,7 +78,7 @@ public ResponseEntity createNeedDeliverable(@RequestBody NeedDe @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PutMapping("/serve-need/need-deliverable/update/{needDeliverableId}") + @PutMapping("/need-deliverable/update/{needDeliverableId}") public ResponseEntity updateNeedDeliverable( @PathVariable UUID needDeliverableId, @RequestBody NeedDeliverableRequest request, diff --git a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java index a5e6f17..f13b326 100644 --- a/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java +++ b/src/main/java/com/sunbird/serve/need/DeliverableService/controllers/NeedPlanController.java @@ -53,7 +53,7 @@ public NeedPlanController(NeedPlanService needPlanService) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need-plan/{needId}") + @GetMapping("/need-plan/{needId}") public ResponseEntity> getByNeedId(@PathVariable String needId) { List needPlan = needPlanService.getByNeedId(needId); @@ -72,7 +72,7 @@ public ResponseEntity> getByNeedId(@PathVariable String n @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PostMapping("/serve-need/need-plan/create") + @PostMapping("/need-plan/create") public ResponseEntity createNeedPlan(@RequestBody NeedPlanRequest request, @RequestHeader Map headers) { NeedPlan response = needPlanService.createNeedPlan(request, headers); return ResponseEntity.status(HttpStatus.CREATED).body(response); diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java index 2ffac4a..f41194d 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java @@ -39,7 +39,7 @@ public NeedController(RaiseNeedService raiseNeedService) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PostMapping("/serve-need/need/raise") + @PostMapping("/need/raise") public ResponseEntity raiseNeed(@RequestBody RaiseNeedRequest request, @RequestHeader Map headers) { Need response = raiseNeedService.raiseNeed(request, headers); return ResponseEntity.status(HttpStatus.CREATED).body(response); @@ -52,7 +52,7 @@ public ResponseEntity raiseNeed(@RequestBody RaiseNeedRequest request, @Re @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PutMapping("/serve-need/need/update/{needId}") + @PutMapping("/need/update/{needId}") public ResponseEntity updateNeed( @PathVariable UUID needId, @RequestBody NeedRequest request, diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java index ebcee33..d0b6120 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedRequirementController.java @@ -27,7 +27,7 @@ @RestController @Slf4j @CrossOrigin(origins = "*") -@RequestMapping("/serve-need/need-requirement") +@RequestMapping("/need-requirement") public class NeedRequirementController { private final NeedRequirementService needRequirementService; diff --git a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java index 3dfd73a..a6e8428 100644 --- a/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java +++ b/src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedTypeController.java @@ -38,7 +38,7 @@ public NeedTypeController(NeedTypeService needTypeService) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PostMapping("/serve-need/need-type/create") + @PostMapping("/need-type/create") public ResponseEntity createNeedType(@RequestBody CreateNeedTypeRequest request, @RequestHeader Map headers) { NeedType response = needTypeService.createNeedType(request, headers); return ResponseEntity.status(HttpStatus.CREATED).body(response); @@ -51,7 +51,7 @@ public ResponseEntity createNeedType(@RequestBody CreateNeedTypeReques @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @PutMapping("/serve-need/need-type/update/{needTypeId}") + @PutMapping("/need-type/update/{needTypeId}") public ResponseEntity updateNeedType( @PathVariable UUID needTypeId, @RequestBody NeedTypeRequest request, diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java index 12da9fd..87391f3 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedDiscoveryController.java @@ -49,7 +49,7 @@ public NeedDiscoveryController(NeedDiscoveryService needDiscoveryService) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need/{needId}") + @GetMapping("/need/{needId}") public ResponseEntity getNeedById(@PathVariable String needId) { Optional need = needDiscoveryService.getNeedById(UUID.fromString(needId)); return need.map(ResponseEntity::ok) @@ -63,7 +63,7 @@ public ResponseEntity getNeedById(@PathVariable String needId) { @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need/") + @GetMapping("/need/") public ResponseEntity> getNeedsByStatus( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, @@ -80,7 +80,7 @@ public ResponseEntity> getNeedsByStatus( @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need/need-type/{needTypeId}") + @GetMapping("/need/need-type/{needTypeId}") public ResponseEntity> getAllNeeds( @PathVariable(required = true) @Parameter(description = "Need Type ID") String needTypeId, @RequestParam(required = false, defaultValue = "0") Integer page, @@ -105,7 +105,7 @@ public ResponseEntity> getAllNeeds( @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/need/user/{userId}") + @GetMapping("/need/user/{userId}") public ResponseEntity> getAllNeedsByUserId( @PathVariable(required = true) @Parameter(description = "User ID") String userId, @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java index dbce439..5c17efa 100644 --- a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java @@ -50,7 +50,7 @@ public NeedTypeDiscoveryController(NeedTypeDiscoveryService needTypeDiscoverySer @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/needtype/{needTypeId}") + @GetMapping("/needtype/{needTypeId}") public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) { Optional needType = needTypeDiscoveryService.getNeedTypeById(UUID.fromString(needTypeId)); return needType.map(ResponseEntity::ok) @@ -64,7 +64,7 @@ public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/needtype/") + @GetMapping("/needtype/") public ResponseEntity> getNeedTypeByStatus( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, @@ -81,7 +81,7 @@ public ResponseEntity> getNeedTypeByStatus( @ApiResponse(responseCode = "400", description = "Bad Input"), @ApiResponse(responseCode = "500", description = "Server Error")} ) - @GetMapping("/serve-need/needType/read") + @GetMapping("/needType/read") public ResponseEntity> getAllNeedType( @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3a63db5..d39c07c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ -server.port=9090 +server.port=9000 # Evean db end point spring.datasource.url=jdbc:postgresql://postgres-db.cmwxiaefrrfi.ap-south-1.rds.amazonaws.com:5432/postgres @@ -14,7 +14,7 @@ spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true server.error.include-exception=true server.error.include-stacktrace=always logging.level.com.sunbird.serve.need = TRACE -server.servlet.context-path=/api/v1/ +server.servlet.context-path=/api/v1/serve-need/ logging.pattern.console=%d [%level] %c{1.} [%t] %m%n logging.file = appLog.log logging.pattern.file=%d [%level] %c{1.} [%t] %m%n From 7dd39fd72768c79e56d3cd4d5bcfe5b1a7e1ba87 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Tue, 19 Dec 2023 16:34:30 +0530 Subject: [PATCH 09/12] CI/CD setup --- .github/workflows/aws.yml | 104 +++++++++++++++++++++++++++ .github/workflows/create-json.sh | 36 ++++++++++ .github/workflows/replace-secrets.py | 44 ++++++++++++ .prodenv | 1 + .stageenv | 1 + 5 files changed, 186 insertions(+) create mode 100644 .github/workflows/aws.yml create mode 100644 .github/workflows/create-json.sh create mode 100644 .github/workflows/replace-secrets.py create mode 100644 .prodenv create mode 100644 .stageenv diff --git a/.github/workflows/aws.yml b/.github/workflows/aws.yml new file mode 100644 index 0000000..85a9463 --- /dev/null +++ b/.github/workflows/aws.yml @@ -0,0 +1,104 @@ +name: Deploy to Amazon ECS + +on: + push: + branches: ["main", "release-*"] + #pull_request: + # The branches below must be a subset of the branches above + #branches: [ "main" ] + +env: + AWS_REGION: ${{ github.ref == 'refs/heads/main' && 'us-east-1' || github.ref == 'refs/heads/release-*' && 'ap-south-1' }} + ECR_REPOSITORY: sunbird-serve-need # set this to your Amazon ECR repository name + ECS_SERVICE: sunbird-serve-need # set this to your Amazon ECS service name + ECS_CLUSTER: ${{ github.ref == 'refs/heads/main' && 'ecs-staging' || github.ref == 'refs/heads/release-*' && 'ecs-production' }} + ECS_TASK_DEFINITION: + .github/workflows/task-definition.json # set this to the path to your Amazon ECS task definition + # file, e.g. .aws/task-definition.json + CONTAINER_NAME: + sunbird-serve-need # set this to the name of the container in the + # containerDefinitions section of your task definition + SHELL_SCRIPT_NAME: .github/workflows/create-json.sh + PYTHON_FILE_NAME: .github/workflows/replace-secrets.py + +permissions: + contents: read + id-token: write + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + #environment: ${{ github.ref == 'refs/heads/main' && 'stage-' || github.ref == 'refs/heads/release-*' && '' }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set environment variables for the "release-*" branch + run: | + if [ "${GITHUB_REF##*/}" = "release-*" ]; then + echo "Setting environment variables for release-* branch" + echo "environment=stage-" >> $GITHUB_ENV + else + echo "release-* branch not detected. No environment variables to set." + fi + + - name: Shell script to create JSON + run: | + chmod +x ${{ env.SHELL_SCRIPT_NAME }} + ${{ env.SHELL_SCRIPT_NAME }} + shell: bash + + - name: Dump older task definition + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + run: | + aws ecs describe-task-definition --region ${{ env.AWS_REGION }} --task-definition ${{ env.ECS_SERVICE }} --query taskDefinition > .github/workflows/task-definition.json + aws ecs list-clusters --region ${{ env.AWS_REGION }} + cat .github/workflows/task-definition.json + + - name: Python to update TD + run: python ${{ env.PYTHON_FILE_NAME }} + + - name: Print new task definition + run: | + cat .github/workflows/task-definition.json + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Build, tag, and push image to Amazon ECR + id: build-image + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + IMAGE_TAG: ${{ github.sha }} + run: | + docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG + echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT + + - name: Fill in the new image ID in the Amazon ECS task definition + id: task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1 + with: + task-definition: ${{ env.ECS_TASK_DEFINITION }} + container-name: ${{ env.CONTAINER_NAME }} + image: ${{ steps.build-image.outputs.image }} + + - name: Deploy Amazon ECS task definition + uses: aws-actions/amazon-ecs-deploy-task-definition@v1 + with: + task-definition: ${{ steps.task-def.outputs.task-definition }} + service: ${{ env.ECS_SERVICE }} + cluster: ${{ env.ECS_CLUSTER }} + wait-for-service-stability: false \ No newline at end of file diff --git a/.github/workflows/create-json.sh b/.github/workflows/create-json.sh new file mode 100644 index 0000000..6cb5d6e --- /dev/null +++ b/.github/workflows/create-json.sh @@ -0,0 +1,36 @@ +#/bin/bash +account_id=049302583731 +if [ -f /tmp/__secrets.json ] ; then +rm -f /tmp/__secrets.json +fi + +branch_name=${GITHUB_REF#refs/heads/} +echo $branch_name + +if [ "$branch_name" == "main" ] ; then +prefix=stage +#region="ap-south-1" +elif [ "$branch_name" == "release" ] ; then +prefix=prod +#region=us-east-1 +fi +printf '{ + "secrets": [' > /tmp/__secrets.json + + +for line in `cat .${prefix}env` +do + key=$line + if [[ -z "$line" || "$line" =~ ^[[:space:]]*# ]]; then + continue + fi + echo "{ + "'"name"'": "'"'$key'"'", + "'"valueFrom"'": "'"'"arn:aws:ssm:ap-south-1:$account_id:parameter/$key"'"'" + }," >> /tmp/__secrets.json +done +sed '$ s/,$//' /tmp/__secrets.json > .github/workflows/secrets.json + +echo ']}' >> .github/workflows/secrets.json + +cat .github/workflows/secrets.json \ No newline at end of file diff --git a/.github/workflows/replace-secrets.py b/.github/workflows/replace-secrets.py new file mode 100644 index 0000000..45a284e --- /dev/null +++ b/.github/workflows/replace-secrets.py @@ -0,0 +1,44 @@ +import json + +original_taskdef = ".github/workflows/task-definition.json" +secrets_array = ".github/workflows/secrets.json" + + +with open(original_taskdef, 'r') as file: + task_definition = json.load(file) + + for item in task_definition: + if "containerDefinitions" in item: + containerDefinitions = task_definition['containerDefinitions'] + for item in containerDefinitions: + if "secrets" in item: + print("secret block exists") + # print(json.dumps(containerDefinitions[0]['secrets'], indent=4)) # if want to print + + +with open(secrets_array, 'r') as new_file: + new_data = json.load(new_file) + new_secrets = new_data['secrets'] + # print(json.dumps(new_secrets, indent=4)) + +# __task_definition = task_definition["taskDefinition"] +# __secrets_to_replace = __task_definition["containerDefinitions"] +# secrets_to_replace = __secrets_to_replace[0]["secrets"] +# __secrets_to_replace[0]["secrets"] = new_secrets + + +__secrets_to_replace = task_definition['containerDefinitions'] +secrets_to_replace = __secrets_to_replace[0]['secrets'] +__secrets_to_replace[0]['secrets'] = new_secrets + +# task_definition['secrets'] = new_secrets #replace old secrets block with new_secrets + + +print(json.dumps(task_definition, indent=4)) + + +# writing to new file +with open(".github/workflows/task-definition.json", 'w') as outfile: + json.dump(task_definition, outfile, indent=4) + +print("Updated JSON has been written to new_task_definition.json file.") \ No newline at end of file diff --git a/.prodenv b/.prodenv new file mode 100644 index 0000000..30d74d2 --- /dev/null +++ b/.prodenv @@ -0,0 +1 @@ +test \ No newline at end of file diff --git a/.stageenv b/.stageenv new file mode 100644 index 0000000..30d74d2 --- /dev/null +++ b/.stageenv @@ -0,0 +1 @@ +test \ No newline at end of file From 83ff22820d50fab7cb819404a0ed52ea7460f8f3 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Tue, 19 Dec 2023 16:40:40 +0530 Subject: [PATCH 10/12] change in aws.yml --- .github/workflows/aws.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/aws.yml b/.github/workflows/aws.yml index 85a9463..a1eaf28 100644 --- a/.github/workflows/aws.yml +++ b/.github/workflows/aws.yml @@ -2,16 +2,16 @@ name: Deploy to Amazon ECS on: push: - branches: ["main", "release-*"] + branches: ["main", "release-"] #pull_request: # The branches below must be a subset of the branches above #branches: [ "main" ] env: - AWS_REGION: ${{ github.ref == 'refs/heads/main' && 'us-east-1' || github.ref == 'refs/heads/release-*' && 'ap-south-1' }} + AWS_REGION: ${{ github.ref == 'refs/heads/main' && 'us-east-1' || github.ref == 'refs/heads/release-' && 'ap-south-1' }} ECR_REPOSITORY: sunbird-serve-need # set this to your Amazon ECR repository name ECS_SERVICE: sunbird-serve-need # set this to your Amazon ECS service name - ECS_CLUSTER: ${{ github.ref == 'refs/heads/main' && 'ecs-staging' || github.ref == 'refs/heads/release-*' && 'ecs-production' }} + ECS_CLUSTER: ${{ github.ref == 'refs/heads/main' && 'ecs-staging' || github.ref == 'refs/heads/release-' && 'ecs-production' }} ECS_TASK_DEFINITION: .github/workflows/task-definition.json # set this to the path to your Amazon ECS task definition # file, e.g. .aws/task-definition.json @@ -29,19 +29,19 @@ jobs: deploy: name: Deploy runs-on: ubuntu-latest - #environment: ${{ github.ref == 'refs/heads/main' && 'stage-' || github.ref == 'refs/heads/release-*' && '' }} + #environment: ${{ github.ref == 'refs/heads/main' && 'stage-' || github.ref == 'refs/heads/release-' && '' }} steps: - name: Checkout uses: actions/checkout@v3 - - name: Set environment variables for the "release-*" branch + - name: Set environment variables for the "release-" branch run: | - if [ "${GITHUB_REF##*/}" = "release-*" ]; then - echo "Setting environment variables for release-* branch" + if [ "${GITHUB_REF##*/}" = "release-" ]; then + echo "Setting environment variables for release- branch" echo "environment=stage-" >> $GITHUB_ENV else - echo "release-* branch not detected. No environment variables to set." + echo "release- branch not detected. No environment variables to set." fi - name: Shell script to create JSON From 04ae97c77aa3f022963620f7dd889ce21b0ceb01 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Tue, 19 Dec 2023 16:46:37 +0530 Subject: [PATCH 11/12] updated the yml file --- .github/workflows/aws.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/aws.yml b/.github/workflows/aws.yml index a1eaf28..e7a0744 100644 --- a/.github/workflows/aws.yml +++ b/.github/workflows/aws.yml @@ -8,10 +8,10 @@ on: #branches: [ "main" ] env: - AWS_REGION: ${{ github.ref == 'refs/heads/main' && 'us-east-1' || github.ref == 'refs/heads/release-' && 'ap-south-1' }} + AWS_REGION: ${{ github.ref == 'refs/heads/main' && 'us-east-1' || startsWith(github.ref, 'refs/heads/release-') && 'ap-south-1' }} ECR_REPOSITORY: sunbird-serve-need # set this to your Amazon ECR repository name ECS_SERVICE: sunbird-serve-need # set this to your Amazon ECS service name - ECS_CLUSTER: ${{ github.ref == 'refs/heads/main' && 'ecs-staging' || github.ref == 'refs/heads/release-' && 'ecs-production' }} + ECS_CLUSTER: ${{ github.ref == 'refs/heads/main' && 'ecs-staging' || startsWith(github.ref, 'refs/heads/release-') && 'ecs-production' }} ECS_TASK_DEFINITION: .github/workflows/task-definition.json # set this to the path to your Amazon ECS task definition # file, e.g. .aws/task-definition.json From 13524f8d305b1f892344018edec0a36a81c050b0 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Tue, 19 Dec 2023 16:49:47 +0530 Subject: [PATCH 12/12] issue fix --- .github/workflows/aws.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aws.yml b/.github/workflows/aws.yml index e7a0744..cde010c 100644 --- a/.github/workflows/aws.yml +++ b/.github/workflows/aws.yml @@ -2,7 +2,7 @@ name: Deploy to Amazon ECS on: push: - branches: ["main", "release-"] + branches: ["main", "release-*"] #pull_request: # The branches below must be a subset of the branches above #branches: [ "main" ]

4jA*^!=gQtZ28DagLkiH-+UJ~Z7 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 getNeedById(@PathVariable String needId) { + Optional need = needDiscoveryService.getNeedById(UUID.fromString(needId)); + return need.map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + + //Fetch all needs based on its status + @GetMapping("/serve-need/need/status/{status}") + public ResponseEntity> getNeedsByStatus( + @PathVariable NeedStatus status, + @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size){ + Pageable pageable = PageRequest.of(page, size); + Page needsByStatus = needDiscoveryService.getNeedsByStatus(status, pageable); + return ResponseEntity.ok(needsByStatus); + } + + //Fetch all need + @GetMapping("/serve-need/need/read") +public ResponseEntity> getAllNeeds( + @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, + @RequestParam(required = false) @Parameter(description = "User ID") String userId, + @RequestParam(required = false) @Parameter(description = "Need Type ID") String needTypeId) { + + Pageable pageable = PageRequest.of(page, size); + Page needs; + + if (userId != null && needTypeId != null) { + // Fetch needs based on both userId and needTypeId + needs = needDiscoveryService.getNeedByUserIdAndNeedTypeId(userId, needTypeId, pageable); + } else if (userId != null) { + // Fetch needs based on userId + needs = needDiscoveryService.getNeedByUserId(userId, pageable); + } else if (needTypeId != null) { + // Fetch needs based on needTypeId + needs = needDiscoveryService.getNeedByNeedTypeId(needTypeId, pageable); + } else { + // Fetch all needs if no specific parameters are provided + needs = needDiscoveryService.getAllNeeds(pageable); + } + + return ResponseEntity.ok(needs); +} + + + +} diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java new file mode 100644 index 0000000..dbb15e4 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/controllers/NeedTypeDiscoveryController.java @@ -0,0 +1,77 @@ +// NeedTypeDiscoveryController.java +package com.sunbird.serve.need; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; +import com.sunbird.serve.need.models.Need.NeedType; +import com.sunbird.serve.need.models.enums.NeedTypeStatus; +import com.sunbird.serve.need.models.enums.TaskType; +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RequestParam; +import io.swagger.v3.oas.annotations.Parameter; + + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Optional; +import java.util.UUID; + +@RestController +public class NeedTypeDiscoveryController { + + private static final Logger logger = LoggerFactory.getLogger(NeedTypeDiscoveryController.class); + + private final NeedTypeDiscoveryService needTypeDiscoveryService; + + public NeedTypeDiscoveryController(NeedTypeDiscoveryService needTypeDiscoveryService) { + this.needTypeDiscoveryService = needTypeDiscoveryService; + } + + //Fetch all needs based on needId + @GetMapping("/serve-need/needType/{needTypeId}") + public ResponseEntity getNeedTypeById(@PathVariable String needTypeId) { + Optional needType = needTypeDiscoveryService.getNeedTypeById(UUID.fromString(needTypeId)); + return needType.map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + + @GetMapping("/serve-need/needType/status/{status}") + public ResponseEntity> getNeedTypeByStatus( + @PathVariable NeedTypeStatus status, + @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size){ + Pageable pageable = PageRequest.of(page, size); + Page needTypeByStatus = needTypeDiscoveryService.getNeedTypeByStatus(status, pageable); + return ResponseEntity.ok(needTypeByStatus); + } + + @GetMapping("/serve-need/needType/read") +public ResponseEntity> getAllNeedType( + @RequestParam(defaultValue = "0") @Parameter(description = "Page number (default: 0)") int page, + @RequestParam(defaultValue = "10") @Parameter(description = "Page size (default: 10)") int size, + @RequestParam(required = false) @Parameter(description = "User ID") String userId) { + + Pageable pageable = PageRequest.of(page, size); + Page needType; + + if (userId != null) { + // Fetch needs based on userId + needType = needTypeDiscoveryService.getNeedTypeByUserId(userId, pageable); + } else { + // Fetch all needs if no specific parameters are provided + needType = needTypeDiscoveryService.getAllNeedType(pageable); + } + + return ResponseEntity.ok(needType); +} + + +} diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java new file mode 100644 index 0000000..579e12b --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedDiscoveryRepository.java @@ -0,0 +1,30 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.enums.NeedStatus; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; +import java.util.List; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import java.util.Optional; + +@Repository +public interface NeedDiscoveryRepository extends JpaRepository { + + //Fetch all the needs + Page findAll(Pageable pageable); + + //Fetch Need by status + Page findAllByStatus(NeedStatus status, Pageable pageable); + //Page findAllByUserIdAndStatus(String userId, NeedStatus status, Pageable pageable); + Page findAllByNeedTypeId(String needTypeId, Pageable pageable ); + + Page findAllByUserId(String userId, Pageable pageable); + + Page findAllByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable); +} diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedTypeDiscoveryRepository.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedTypeDiscoveryRepository.java new file mode 100644 index 0000000..718d6b8 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/repositories/NeedTypeDiscoveryRepository.java @@ -0,0 +1,30 @@ +package com.sunbird.serve.need; + +import com.sunbird.serve.need.models.Need.NeedType; +import com.sunbird.serve.need.models.enums.NeedTypeStatus; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; +import java.util.List; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import java.util.Optional; + +@Repository +public interface NeedTypeDiscoveryRepository extends JpaRepository { + + //Fetch all the needs + Page findAll(Pageable pageable); + + //Fetch Need by status + Page findAllNeedTypeByStatus(NeedTypeStatus status, Pageable pageable); + //Page findAllByUserIdAndStatus(String userId, NeedStatus status, Pageable pageable); + //Page findAllByNeedTypeId(String needTypeId, Pageable pageable ); + + Page findNeedTypeByUserId(String userId, Pageable pageable); + + //Page findAllByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable); +} diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java new file mode 100644 index 0000000..47a7d4b --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedDiscoveryService.java @@ -0,0 +1,55 @@ +package com.sunbird.serve.need; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.sunbird.serve.need.models.Need.Need; +import com.sunbird.serve.need.models.enums.NeedStatus; + +import java.util.Optional; +import java.util.UUID; + +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +@Service +public class NeedDiscoveryService { + + private final NeedDiscoveryRepository needDiscoveryRepository; + + @Autowired + public NeedDiscoveryService(NeedDiscoveryRepository needDiscoveryRepository) { + this.needDiscoveryRepository = needDiscoveryRepository; + } + + //Fetch all the needs + public Page getAllNeeds(Pageable pageable) { + return needDiscoveryRepository.findAll(pageable); + } + + //Fetch needs based on needId + public Optional getNeedById(UUID needId) { + return needDiscoveryRepository.findById(needId); + } + + //Fetch need by status + public Page getNeedsByStatus(NeedStatus status, Pageable pageable) { + return needDiscoveryRepository.findAllByStatus(status, pageable); + } + + //Fetch needs based on needTypeId + public Page getNeedByNeedTypeId(String needTypeId, Pageable pageable) { + return needDiscoveryRepository.findAllByNeedTypeId(needTypeId, pageable); + } + + //Fetch needs based on userId + public Page getNeedByUserId(String userId, Pageable pageable) { + return needDiscoveryRepository.findAllByUserId(userId, pageable); + } + + //Fetch needs based on userId + public Page getNeedByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable) { + return needDiscoveryRepository.findAllByUserIdAndNeedTypeId(userId, needTypeId, pageable); + } +} diff --git a/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedTypeDiscoveryService.java b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedTypeDiscoveryService.java new file mode 100644 index 0000000..5241c75 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/SearchAndDiscoveryService/services/NeedTypeDiscoveryService.java @@ -0,0 +1,55 @@ +package com.sunbird.serve.need; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.sunbird.serve.need.models.Need.NeedType; +import com.sunbird.serve.need.models.enums.NeedTypeStatus; + +import java.util.Optional; +import java.util.UUID; + +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +@Service +public class NeedTypeDiscoveryService { + + private final NeedTypeDiscoveryRepository needTypeDiscoveryRepository; + + @Autowired + public NeedTypeDiscoveryService(NeedTypeDiscoveryRepository needTypeDiscoveryRepository) { + this.needTypeDiscoveryRepository = needTypeDiscoveryRepository; + } + + //Fetch all the needs + public Page getAllNeedType(Pageable pageable) { + return needTypeDiscoveryRepository.findAll(pageable); + } + + //Fetch needs based on needId + public Optional getNeedTypeById(UUID needTypeId) { + return needTypeDiscoveryRepository.findById(needTypeId); + } + + //Fetch need by status + public Page getNeedTypeByStatus(NeedTypeStatus status, Pageable pageable) { + return needTypeDiscoveryRepository.findAllNeedTypeByStatus(status, pageable); + } + + //Fetch needs based on needTypeId + /*public Page findAllByNeedTypeId(String needTypeId, Pageable pageable) { + return needDiscoveryRepository.findAllByNeedTypeId(needTypeId, pageable); + }*/ + + //Fetch needs based on userId + public Page getNeedTypeByUserId(String userId, Pageable pageable) { + return needTypeDiscoveryRepository.findNeedTypeByUserId(userId, pageable); + } + + //Fetch needs based on userId + /*public Page findAllByUserIdAndNeedTypeId(String userId, String needTypeId, Pageable pageable) { + return needDiscoveryRepository.findAllByUserIdAndNeedTypeId(userId, needTypeId, pageable); + }*/ +} diff --git a/src/main/java/com/sunbird/serve/need/models/Need/Need.java b/src/main/java/com/sunbird/serve/need/models/Need/Need.java new file mode 100644 index 0000000..dc3a1dc --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/Need.java @@ -0,0 +1,43 @@ +package com.sunbird.serve.need.models.Need; + +import com.sunbird.serve.need.models.enums.NeedStatus; +import jakarta.persistence.*; +import jakarta.persistence.Entity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class Need { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private String needTypeId; + private String description; + private String needPurpose; + private String entityId; + private String userId; + private String requirementId; + private String name; + + @Enumerated(EnumType.STRING) + private NeedStatus status; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} diff --git a/src/main/java/com/sunbird/serve/need/models/Need/NeedType.java b/src/main/java/com/sunbird/serve/need/models/Need/NeedType.java new file mode 100644 index 0000000..92c1723 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/Need/NeedType.java @@ -0,0 +1,49 @@ +package com.sunbird.serve.need.models.Need; + +import com.sunbird.serve.need.models.enums.NeedTypeStatus; +import com.sunbird.serve.need.models.enums.TaskType; +import jakarta.persistence.*; +import jakarta.persistence.Entity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.Instant; +import java.lang.String; +import java.util.UUID; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +public class NeedType { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + private UUID id; + + private String description; + private String userId; + private String requirementId; + private String taxonomyId; + private String onboardingId; + private String name; + + @Enumerated(EnumType.STRING) + private NeedTypeStatus status; + + @Enumerated(EnumType.STRING) + private TaskType taskType; + + @CreationTimestamp + private Instant createdAt; + + @UpdateTimestamp + private Instant updatedAt; +} + + diff --git a/src/main/java/com/sunbird/serve/need/models/enums/NeedStatus.java b/src/main/java/com/sunbird/serve/need/models/enums/NeedStatus.java new file mode 100644 index 0000000..830a95c --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/enums/NeedStatus.java @@ -0,0 +1,11 @@ +package com.sunbird.serve.need.models.enums; + +public enum NeedStatus { + New, + Approved, + Rejected, + Nominated, + InProgress, + Closed, + Inactive +} diff --git a/src/main/java/com/sunbird/serve/need/models/enums/NeedTypeStatus.java b/src/main/java/com/sunbird/serve/need/models/enums/NeedTypeStatus.java new file mode 100644 index 0000000..5bff159 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/enums/NeedTypeStatus.java @@ -0,0 +1,7 @@ +package com.sunbird.serve.need.models.enums; + +public enum NeedTypeStatus { + New, + Approved, + Rejected +} diff --git a/src/main/java/com/sunbird/serve/need/models/enums/TaskType.java b/src/main/java/com/sunbird/serve/need/models/enums/TaskType.java new file mode 100644 index 0000000..97cf620 --- /dev/null +++ b/src/main/java/com/sunbird/serve/need/models/enums/TaskType.java @@ -0,0 +1,7 @@ +package com.sunbird.serve.need.models.enums; + +public enum TaskType { + Session, + Event, + Task +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..3a63db5 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,21 @@ +server.port=9090 +# Evean db end point +spring.datasource.url=jdbc:postgresql://postgres-db.cmwxiaefrrfi.ap-south-1.rds.amazonaws.com:5432/postgres +# Ekal db end point +#spring.datasource.url=jdbc:postgresql://postgres-db.civ7kwpwucar.ap-south-1.rds.amazonaws.com:5432/postgres +spring.datasource.username=postgres +spring.datasource.password=23798ak3fr3409k58t4 + +spring.jpa.show-sql=true +spring.jpa.database=POSTGRESQL +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true + +server.error.include-exception=true +server.error.include-stacktrace=always +logging.level.com.sunbird.serve.need = TRACE +server.servlet.context-path=/api/v1/ +logging.pattern.console=%d [%level] %c{1.} [%t] %m%n +logging.file = appLog.log +logging.pattern.file=%d [%level] %c{1.} [%t] %m%n +logging.level.reactor.netty.http.client.HttpClient: DEBUG From 7bffe6128cd64aaf40e484a7a25b88b8b30c6903 Mon Sep 17 00:00:00 2001 From: Sowmya-Raghuram Date: Thu, 7 Dec 2023 19:26:33 +0530 Subject: [PATCH 02/12] Need Service APIs implemented --- .gitignore | 37 +++++++ .gradle/8.5/checksums/checksums.lock | Bin 17 -> 38 bytes .gradle/8.5/checksums/md5-checksums.bin | Bin 37297 -> 38297 bytes .gradle/8.5/checksums/sha1-checksums.bin | Bin 85127 -> 92579 bytes .../dependencies-accessors.lock | Bin 17 -> 38 bytes .../8.5/executionHistory/executionHistory.bin | Bin 277125 -> 412959 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 38 bytes .gradle/8.5/fileHashes/fileHashes.bin | Bin 20947 -> 23247 bytes .gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 38 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 22509 -> 24991 bytes .../buildOutputCleanup.lock | Bin 17 -> 38 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .../serve/need/NeedDiscoveryController.class | Bin 5499 -> 6313 bytes .../need/NeedTypeDiscoveryController.class | Bin 5204 -> 5988 bytes .../serve/need/NeedTypeDiscoveryService.class | Bin 2505 -> 2527 bytes .../NeedDiscoveryController.class.uniqueId0 | Bin 5499 -> 0 bytes .../NeedDiscoveryService.class.uniqueId1 | Bin 3030 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 122940 -> 126218 bytes .../controllers/NeedController.java | 63 ++++++++++++ .../repositories/NeedRepository.java | 9 ++ .../NeedRequirementRepository.java | 11 +++ .../repositories/OccurrenceRepository.java | 8 ++ .../repositories/TimeSlotRepository.java | 11 +++ .../need/NeedService/services/NeedMapper.java | 73 ++++++++++++++ .../services/RaiseNeedService.java | 90 ++++++++++++++++++ .../controllers/NeedDiscoveryController.java | 27 +++++- .../NeedTypeDiscoveryController.java | 28 +++++- .../need/models/Need/NeedRequirement.java | 38 ++++++++ .../serve/need/models/Need/Occurrence.java | 38 ++++++++ .../serve/need/models/Need/TimeSlot.java | 38 ++++++++ .../need/models/request/NeedRequest.java | 24 +++++ .../request/NeedRequirementRequest.java | 20 ++++ .../models/request/OccurrenceRequest.java | 23 +++++ .../need/models/request/RaiseNeedRequest.java | 15 +++ .../need/models/request/TimeSlotRequest.java | 19 ++++ .../serve/need/models/response/IdResult.java | 14 +++ .../response/NeedEntityAndRequirement.java | 23 +++++ .../need/models/response/NeedResult.java | 17 ++++ 38 files changed, 623 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryController.class.uniqueId0 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryService.class.uniqueId1 create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/controllers/NeedController.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/repositories/NeedRequirementRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/repositories/OccurrenceRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/repositories/TimeSlotRepository.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/services/NeedMapper.java create mode 100644 src/main/java/com/sunbird/serve/need/NeedService/services/RaiseNeedService.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/NeedRequirement.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/Occurrence.java create mode 100644 src/main/java/com/sunbird/serve/need/models/Need/TimeSlot.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/NeedRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/NeedRequirementRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/OccurrenceRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/RaiseNeedRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/request/TimeSlotRequest.java create mode 100644 src/main/java/com/sunbird/serve/need/models/response/IdResult.java create mode 100644 src/main/java/com/sunbird/serve/need/models/response/NeedEntityAndRequirement.java create mode 100644 src/main/java/com/sunbird/serve/need/models/response/NeedResult.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2065bc --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/.gradle/8.5/checksums/checksums.lock b/.gradle/8.5/checksums/checksums.lock index e6cee2c8d035c8e44aa5a7b88323bac6e291d07b..bb8c27000a4c4c85889282b1ea32c1013d7f8463 100644 GIT binary patch literal 38 rcmZR+f9v*lk$vZU8Nh(mk(q(v*qXZk%1?Yl{z@>g7#W%xF)#oC6depd literal 17 VcmZR+f9v*lk$vZU8Nh&LApl4N1|a|d diff --git a/.gradle/8.5/checksums/md5-checksums.bin b/.gradle/8.5/checksums/md5-checksums.bin index c924a84c18ec84fb34c9bbe7cd5a101e9d86ffe3..c11f8771f074b59f19ee3e8861313c6db49528b3 100644 GIT binary patch delta 1195 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 Bw|)Qs delta 686 zcmXYuKTK0m7{&8FE{zQ7YVWJQ4G{-NY`#6al?etIx~EAVd!-sJg+zNx%zU#w$lx# zOTmasLxD1iSw(}xZRVZsx5OK_%>0|h+?VHgjE+@XrHlnY&{0AeYTc-oII zX*aw_qMoBTe8(mXA8W`zd4}KQ`3gxxuGPfW3(1VKwh;SRL}4to&9LAl3bTS@5(e7cY`mCMczu56 zxlGHf%pmlJ4I-{31BuH0GP4?KhJ7Hc>(f+b*GQ7Q8}ssq)@C`&#khtE-f_ F^$*1EDU|>K diff --git a/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock b/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock index 55e398b3e62eda9e356527e4f64ae742a689377c..6f80fe4cf7a52175bffd01e2f4c1a09c158cf52c 100644 GIT binary patch literal 38 ocmZQR@oGlXu0KMF3{b$#z;JBMetwqc>F?#)8CZ-AO^p~B0PqS5aR2}S literal 17 TcmZQR@oGlXu0KMF3{U_7K@9}? diff --git a/.gradle/8.5/executionHistory/executionHistory.bin b/.gradle/8.5/executionHistory/executionHistory.bin index 24d6ceac11cc77ad5a3c35be57e73a1b9c324fff..fe04ff0196b67e35ae3dcb5cb404f928b7cf079e 100644 GIT binary patch delta 16464 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 E009s(R{#J2 delta 745 zcmbO~OS1K=zyuLS_KBk5jF}rJc8E`0pfXuf!jYMI&fm?k60h|&dHWa`c>89XXBMRw zn4~0Cn5GovWE7=j=ck&b7nPgjlrlho{NzH98%zQpCp-E?PfqaS+PuNjhMDmnkejlZ z#b1SSGFwuKkdRs6FpZUU zvR=kPfeg(%0bDNyuek2dW{_FU{cQ684D-p;vNlZCJ0CpRGbc^Zb7tV{@00g#`6Mso z{r`2~lAV(iFX&Bvm(#<0>+A0ShYXEa7=a$1J>76U>(9xDnqnsxJn5XgtT}YD-&5h~ z-dk8RCYQ9hPv(CnJpEuCOT}cD*6_&&w}ht`ZD6vUZWqVWyjkhlM8?Sh?c&=7_Awt| zoL*?iJY(~`FE=)C!tlVvumQ1so|1(t;+ufOj&^*)~Ai5%m-=?|we8%^)9 zViVXt-I{F{vw*VCdOMC)4ZgB7uYP@D8XCFX(VoqSQ6NS&{e$5V(;Zt{{X1S&ERfwk z*MvoqSpq%ur@ZO`hRzj@=@ZRagyDhCKK=J}Rx1hgP+tgEd{TJ&-dW7%F)XI-$7eOU zU*yR@{_orJEGA|K0naTVRjtA*UwFHxs_tP5nGY2Dy~b06@utK6`LDSctLARu1_~Wb z+4Ju5da1+T)5RYD+uWl7(ufv)+XH4Z_c6+wYtH4DGFWhJ|KfSiGlL^DmV)DQ&jEH& IY|d=~02Gcm*#H0l diff --git a/.gradle/8.5/executionHistory/executionHistory.lock b/.gradle/8.5/executionHistory/executionHistory.lock index c252a4609d593b2b0bbfc5462f801f7da790bc90..9a4660944181c11b33dce49ded5ffb36448e8c35 100644 GIT binary patch literal 38 pcmZSnWczn(z+&}81_-#o%)oGLP22yhpR;te-5FSn3{8y~7y$di3zPr= literal 17 UcmZSnWczn(z+&}81_)RM06JI&3IG5A diff --git a/.gradle/8.5/fileHashes/fileHashes.bin b/.gradle/8.5/fileHashes/fileHashes.bin index b5a0d36f9b7c19c86788f0dab693369bb18ee4be..4467bde1835b002ca68a766773f240749849139c 100644 GIT binary patch delta 3774 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 delta 581 zcmX@VmGSao#tkMCf`-kvPIhton0;md1K-z^dnFVmAC>T!tSTunITVQJN=i;XCn-Kz zR4QR|uaxBEeNy6+-%3eLHkFo`oGR@x`KYwPWK|i%$$2vIlb^~+OxBe(m|Q9=F?lJF zW|fne>?>z5c`A_p3dEuEl9Suy^(UW|mzew)h+P#7Cif~xOuh=ltcprZEGsuE{t(}2 zP#`?n(L;$vcbU1~3g((~`K1gNT-(2R-t)}h$P5Ms#vc85zm|gC%=o}&a;B%o zlcCmV$ip zvlpUBw0iSHKORPfIoIa0Y!5ezJHH}$nJ{D6JFuz;u}~-Sq)+Aza8Y;}>SM+wJzus} zeHtIvO1;HkMUUCjAV#s@pIjKw#iD=hiqPc$0eT>Y^kl<8DTV!euDhh!9- wj=;MRZKfg+Z6YC)vjbgJGBoc5aJ>|~;<`VZL1s1gGpHg^Z~y`4Ng$yI0PDTIoB#j- diff --git a/.gradle/8.5/fileHashes/fileHashes.lock b/.gradle/8.5/fileHashes/fileHashes.lock index 713ed07c791994ab93d247e8e48d3e417b0e5d27..c5059ea0af0eaf977479599b01b51625f91d471c 100644 GIT binary patch literal 38 qcmZQh-s;u1W=Clh0~oNBGBYq7TjOEPweW~O(-#I7BSTXo1_l7uTM6<2 literal 17 VcmZQh-s;u1W=Clh0~jzp0su6F1p@#8 diff --git a/.gradle/8.5/fileHashes/resourceHashesCache.bin b/.gradle/8.5/fileHashes/resourceHashesCache.bin index 01526bd1381f1dea8397876e0788c27dc2f39407..cc877be2f6a9103448ba666e439cf101407991e8 100644 GIT binary patch delta 4106 zcmZvfdpuO>AIDMaZf8&!3?pP*CPvaoX%tq8k}!-hW~7v8i;`OtQphD86;o-&&`HN0`4id$j?S}(>n4L1Uwk}34o6lK2HT?;OCWu}~dm7ycSIOQN@GI~*AW4^>p~r0PV~ zX;mQ8)F3(4EPTa|f1))c8$Jq#s)glB9q4(71O-vj7j4fQO*2EESDHGvM>0i-gZIaPo3v!M#5!+Rp^0QBsDXlh!hLz!v5 zo{EM7#)gim;qcABn~F#uod^|NT>#JNMZI=nQcGnv;65!-vRXFEpZKitTWm34-iINq z`T-Qrbxp+W$`rt8c~F!(4&NL2*JFp5VpRZo9f3pp*S2d%{e4485Ks=W)wNKiK|PY+ zT%`pp4Juv;7;e04sz7752~z2Bzz9V@=4(*lh#;5%)v1&4pZh5~zkW#GD1dFSJf67S znCfS?3vlWHG^tLaOg*40M-s}71+ok*&nyq>Y;x6BCn}nD8-~S0Pb-G=Cjvp zLov3K0^dUu(#2Y!@}rU*9VLzf*INp5#rmT~e#>_ddAJ$}AQcN$U~y#8IbD4{n?VeK z?!$2EvM1bkHfLN(fcr=+^2zMV)HQ8|fP3wPny@6i_-0h>^yk%rYSJxXS@LuZ+RWV8mUiDwW|%iU1kigLB52_7GTD|o=H!X@0D4x!39{I4rc#9s2LPuwl-p|P zi=uK{Skf*9asbjcL4KMfv>G?hOqDZ!N09IpVr%ZgYoc*-oWRf40Qv;Nv6{o&rpNRv zM8GL1=#3@`Z}@XSVTgC;W&k~WVc96?+~NK8)`G=CnSOuZl>6PAe) ztrDuSniB$Ewa7>8c2`{7Rsy)sBov4vp-Cx)mZL7Gasj00K$mbh^oFeIv`3w?-2l>} zp$gn7vTfM(wi2xxz(joX;n*FD`4(o(1~T}A;4N?ZE zlUDA4(^)Wwe?>&(XUnu^l*>$T;^o%%*HNss3o3t2@T26>_8C}qYNdDWYu`?Y>X8<= z05$&K=%6hhpfvVciOzf3h2m$|A&s-!@A$^|y{$c%uCn=4ccVDc$VkYm5Bd#5c|VcQ zim`cK%ztVK4dZqpW-ed$Q#_ipd`i#wQW(;>rJ)daCn+hT<#v2~2o`l3Y2bB>(|*@@ zIIHcRK~L8^%fHWrMlp_K^)U|yON@3-CrneGPu3!p!t=L&DZPu&Fs!&;_9kooU!-9h zKRXt2aL3UbCF{ct-t4nP8YpYgflPw{+32WhPM}z$><qQYw=0uI6?kRovjc5B_sJzPSm9;1RR$aSm)p71H859S zd_soYeqVH8O=8=WnaA8pUG^VmkVd1i3dx}&F8|imfbuP$#FN`JZ&)|e>)bMTTJT9@=x@JSB0mt z%f`~aa*&3_KYb_ng)!|)_e8EH&No#r8sGOPBlWU*PR`FHY9k(7St+dti8?E?c;;#! z(824?E9aeFRBnk{ylmkFly=L_%6s1KnV8Q*O_ z(nucjQzZQxI3;P~qD=pZGq3`RwpV0Ds_BPWZM|uE)JPOfjH*IjHXX*Zg)mg>j!#8H zEhBreNaL!uTUqYjz^e)KuA2QZyd@@Ql>9ER^X>h-ejOKU(xa_z-!m4QaVx^Cc1m`L ztiHFLxZcm8=eq*8D_8!QF7uD6Q#?09jk~1c3Z${7ZYsmMKV@Y{-HeS>-dSa&aa-QN zS9Uzccxc^&uHQ(cs#ZDwopiwm6dks(2kxci#_%o44Z&n-1NJfed% z8lQCeUn47*o?RV@pU5xcf3*lTbdd3YF@988-N3rNBXQI)ZHdQ&iV?;2wL^3QUR5)F zgXhT(NPf2>Yp!i)a}K$fKuFMg7{KR?FxK^ZLgLf@@I4=`2 z-`zV9BvZ}b(S#-^JHJJZs>v|VF?s2yr+-r7yRq0VWrw_moO&mPUCv5t2j>kWa zXT4gYUDa~&r~$m6$jIRSHtVkV)yR-DzT2x4hvc3VDW#28yzSmyJ)|+@`@qUcw0)T@Z!#cIF*iYqulxthAS$5% delta 206 zcmXZStxp1B9Kdm|Sj3Uo{qDH8=j7ofIG@`f5)4fK0i*LNMvcxQ(a6ib*_qr3GGXi@ z$?+!`jYf!$;`D;w?bE)`@6PtkS#-p?qbnIh8FS$Yd7aLO>Ud`B+5*yA=Xp4d=L3@=H>F1g}b2^(e5so^G-Rh}w`-SH{i z`ha=eaHK7{HvDMeq;b!-F=O5oJ`1{KcxqYt?OFNvzf$Q?E!Ey#ntge7Hh8W40abQS Ah5!Hn diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 47d2dde24788d3ac4ad9c1ceac5901fee0ebd7b2..7dacc1bbc21afcd838e500694a0258eaf5a29b5b 100644 GIT binary patch literal 38 qcmZRUXk$EL&VK3;0~j##Gczz8Thse!&r7zvbX^7(BSTXo1_l7V(Fvje literal 17 VcmZRUXk$EL&VK3;0~j!V1^^~31SJ3f diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index be48e5f6210b78fa41d0cefed2eff69dde84e29b..c315ec6842f6e5fe0a6a435fe45e36ad1e6b5de3 100644 GIT binary patch literal 8 PcmZQzVC=DH{H*~11?K_r literal 8 PcmZQzVC+%(RJ0rb2fG5j diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryController.class b/build/classes/java/main/com/sunbird/serve/need/NeedDiscoveryController.class index cea1e58b1690cc03c8b873a1e8139a28ba6d031c..3f5658da43818c5d02b0a70f621c6dff290a55df 100644 GIT binary patch delta 1577 zcmb_aS#KLv7(LfBwrj^poup9-NMTyi5+c#GkQAYcHYGG74+M&hDmfIG*c0O7%nWnK z0kfGsK%pfJTQ}OWhrI+Slu{mef+v0eFYq6DqC%WI;}|2+7lbs+x!?YsbN?7z+LHe1 z&ok!$T!-&ZrGH-)+>|kHyxFxp(=R*rHi4w9&dr%#O~4qp{Nk)(8k3e)GNx;W>pAn~ zQrW&cv`mx)+DeuzdSzGT3TzD~GncOSEa^J7wB*oEw|wi$ftBO)W~FKgjHs~uzlJd? zv*H+YN(|Pn+PqnyH&-ndEh%TJl}as|izBJIIB?OiearR*u2hBh%vq(fIW!g-SuhnE z@->&$vZm`+%EfTkp?y*ftqrRNsq4*>F=4w^meEF(C6lwfdCN0)d7k453CbeABN=fsK*ZR@{{=-z-;Jg37)$WFzq63+^U^ zU)qiZ3z@U}8v+ACr#_HK;)FmyVSjL_eJP)7NK~nWWUxc4O1DYNo8VA0hCSvu9+fkF z$20hZiYiLf!DO~SYZ+=(xycAdJAUl=B#lq;SrVr*_#Dg2Ygf04_-TRsz~bUX!H(=+ z{ab+z!LO^=2B))G{X2oa@bFu9DzygKma1Uar zNX)@j9|r>N6tq#?OP?npmEA{m3St!V^xh|Nzw*YEx2C)gG>;Fe<3o5jDk3BvL7n$I zDQI|iUi5X#=Sl z=33Wc8WXUP=RS(M8KluiS`Lwj1hzEMcoTtDR){TxbSh#CA)SiY0uH0dXoZdt>Fk@s zLY*AP*(T8_tvDW}GitWK*-W9RnL<&#LPr^&g?=9Ek~r42<~-6#91nHr)SH?dX3!D7 zkv1noZ5r3JuI}fXN}K=ve!dlIvs?dLfJl{ph;j{DREd;&yMT9AlzO+3+-iFdtMGo1 z?HSy;o#dNWv>AvoS=C8l%w|iAF+bWL4uUJR*X$P+A1U`aUM)X#8hO&JZFv5 zQBKMFZ%=3QJ#BOsdU7#l2|Sk~%XtA8Qe2dqV-9y|g}W^K7RFU@-Eeldw6&LV_EAj} z_3W2X4zQhr@@%1v7)Qjl3zI4t;fgfvrLl;biU{Hy<(Oz~WRGr#5SRX)5aLYGE^3>b z6r_vqAu?IX!y`7{!mI5(EID+{Mv7)Oa?EVx=xuaW^yTPFR2y6iMV2rPZsaoz>c#vf zL^LVoVeQ!0?i##f^s#TPzfd?xXQUOag4Xq7jQ9&*UV{0&wrzn)=;f2Lp7 z{nl9e{EsJ30kq=LgVGn#Xw?Asr(Z=cX!3PJ@7~~Y&+skBZefUt+|ZEW$~#0>p8=gY1sp_YM057FuBNhmaAqktdzee7A^L;a2;E4(bVQzn+gls zp=j91<~T#MD%<{#WmJ_cB-$O5inaHaFK1Y|IhVu7JjY{LAz6HBqLcd{(FkJEGX1#ZS)?Q6rDz3igucrV6g#$V`9c@I;pYUyqJKYw zkbdH-tVvErPth-s8&hfdYqB_cnjsx5%2HEn*UY_>-R?LZ{U5`3JUu7Ka~C=AbR(P9 z{XwqV%AHTFguI!0R(7ovKjL}}HU(|ZB7p@+UI+K2trr=lx_YE>w>XY_cz|gv_!IS)O{@R_ delta 801 zcmaix%TE(g7{$+>nRe{79iXKUSP;Q!QrkoqVq#)wLQH%R7PwGQF$UYB1#Bxr@ojx8 zK2W?WD)`#EGu^o`u*KlYorx>|0hcC3Ju}nBuyXOuJ#+5;?mfSIe{A`hFjjtl`~;u} z?>-o-ny+~@U&vO!X^X1pmckd4DWfysn;w}c=L9+{tVA+*8~!BE|~D^xFKLsTJpQOAeS1J%tr?1@K}co;R&8rXB&e;dm%6+_lGvh zFS;o|H}z|;1mf~fW2+o!@|(8RUo4K7OFG^NbkuE`i5v)YLBl2lc*Js~6yA&wl87Ni zFDcW}fi4pQSyt`{gpE<0Af+y7oTL!giM&*scT~1PM>nF_j)U~m@blY-K@4$p)ELIO z+EEiY1;tebDwTZ^6j5S~D7#K$5_!~>T&%rxTN(MN z8xp*wI$+AhasX4z<^iTq!LSQx)d1rJ^m-k@7H05va{#?LM_mCMO(<(<*Ku_XhK}oX z{yKYw{T}~Kmw!F}Ef>E>{RjCUaPKm1AI2T;GISd=*nqq8S4*dT=%Xy@SWPFBsJjY8q5w1(Z!h%15MZCsawEYFOCyAB- diff --git a/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryService.class b/build/classes/java/main/com/sunbird/serve/need/NeedTypeDiscoveryService.class index e8eab2fd7598dd8da2755fe4b56310939ac8db3b..3b473ba42f2183b11e4cec715078ea72980e7afa 100644 GIT binary patch delta 87 zcmX>pd|#OB)W2Q(7#J9A8EiLlHL*>uW94HDElw@+OxfJUwwH;~Y_bQZE3-L+#biZJ h5mj@bN=+cv24W@#OCYuav#c4^fHWHeBZCbC0{{x>5WWBa delta 97 zcmcaFd{UU})W2Q(7#J9A8EiIkHL-18#I~D>S(ZU=@<$Gd$rYU1Hf9Xw42(bpJPeu) oS`17Ksz5d;6N4F$(gb2{AZB8)0Afop%Zfn_NV5U8STisH06NwV>;M1& diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryController.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryController.class.uniqueId0 deleted file mode 100644 index eb40e6c479f28208375b01a8a33b7dcc372f6536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5499 zcmcIo*;gCa9sVvz49gf3ffpsj0UJAjg9k5l6NH@tHZiS?ZLn!elGY<>fH9*PWoCqn z-E>Kpq-(nGd()=NOM2Q;HxE61%0o~7q@139cV;9FMoL6aY@cE7{O)gG@6~_)`{us@ zoWq|x(SlY52^C4S3H033H+0R??N#kc?v|1F1==P}+w{*1v<{Cfb)X#`3OZGEK@~WW zcZ!-iSp_DxH>abxa+KHhv{wa&hO;%BLSSYj1XW4Mu@Czc z>{oFB2L+DrLK}guRl}DCPjAi@1dc`WYRu!(u9SS!v2`nxqWd3K@d)|_l6t9RZ3;X# z97kO#+j)ts%|;7qc?gdw7*H{Y!vd+A-4(VBQc*7noQ^B8lTlnug_PWfa8$uD6^~tJYtHoInI5|8wSKn<7=z?^e zP?5nTD>lkLZ+dgl*Zs05@X~Ojaw<9n!}2u4E*HI^NJElL-JsnsUC&ttJ;O$!u{(qNFstGjToTxOpN0a3dP+6p$la>&VHF>dD)d%WsQE@Vxyvf%aV6|o z^r75j!Ym9w0DoM=f`UaA*KtGOKwzx3a^{wnbyimmcUI5)j?3=R!Tb$D0!QO+nz3}x ztK>+GG9zcuM^$_bA7`~%0XH_o(1JLgz<9$#kcQtshB6~d0*M)x2t$}PZDYP%%o*-= z8G}GTUbmKX*OcE8FyXJ6^xt@+dfO(ZHU~2-+slT(<`k~#vbXx|gZGt4byC&Kl6oaV zU)VHCmOyG}zSA(d%K;o4ebv@4us`d>tz#`k7Cv1Ef3lIeQG1bA2i+xeo|bkjnyWS& zlS?PA#RI%s6L%*zy-?=P5mXrf$05HgZ~yy+zZjxY{#@f0@&n zLy(pvH*~8^E7IXnXH0rDJn!5MUH_uM;q79p@!cl>Y}4|u>i$|K=cvK+4HLRiXKyrG z8l;dHjgW>J-AE1-ti;JCAm+IA%sX7ROGsEfqjfE=J7EO&NN>jG*|DaG>7Hv%A?_}Z z-guBMpM2jHmK8U!BR|8iYInmo)3o^vjLs@SB9pgTFjn-k!LHJ+JvcDbF9`p1>}$)60;j(xNooGW;bkbug$V$Y(l=hxW`g2t%eYXZaddUL&; zR`3m8M4G`Cc|AupZr+$R<(%!8Xw}hNo0%u%ZAakAx)oEeb@Q6y*T|WBJ=2ckd%mle!rANX zZNpDG@l*Uv!OvCv0>5PYuH6+)d&5~bw5(pt6?9VQE0rTl7bkY@>+SeVi-^(kyp zg^EETNwKGuY(NGeX~nR+bqxD-V3^h#8PNz>b_d@?$xgJT+aeDpg1{eRo=Kl6m_iTlzk|4dqs-AWylFm#IsVV`f^{YE>i+Q)fIKF`h7X@w)FdQ;BD#mWxUMvk?FaNSGbaPE(Q@uQc7FISw>)# zd!ej5RatTs%95)PU#`AF{2nCU!JvY#ruyDNr-H8sQF|y+jo8aXdWBDzlHaToxmSb8 zT}#yB^Byq^_(7nfg#M7^Z4{;Vn1ONa4 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryService.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/NeedDiscoveryService.class.uniqueId1 deleted file mode 100644 index 643ec919a4e9b5f81739705ea5da871a6fe3868d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3030 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