From b1c231668e211c4eeac5b96bb68c9df69180da50 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 11 Apr 2025 16:43:12 +0700 Subject: [PATCH] refactor: create student with excel (email field) --- controllers/auth/auth.js | 17 ++++++++++------- media/uploads/excel/excel example.xlsx | Bin 8929 -> 9718 bytes media/uploads/excel/excel template.xlsx | Bin 8805 -> 8845 bytes package-lock.json | 20 +++++++++++++------- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/controllers/auth/auth.js b/controllers/auth/auth.js index 9dd5806..8f7d910 100644 --- a/controllers/auth/auth.js +++ b/controllers/auth/auth.js @@ -795,9 +795,10 @@ export const registerStudentCSV = async (req, res) => { if (headers) { const NISN = row[headers.NISN]?.trim(); const NAME_USERS = row[headers.NAME_USERS]?.trim(); + const EMAIL = row[headers.EMAIL]?.trim(); - if (NISN && NAME_USERS) { - students.push({ NISN, NAME_USERS }); + if (NISN && NAME_USERS && EMAIL) { + students.push({ NISN, NAME_USERS, EMAIL }); } } }) @@ -830,9 +831,10 @@ export const registerStudentCSV = async (req, res) => { const NISN = row.getCell(headers.NISN)?.text?.trim(); const NAME_USERS = row.getCell(headers.NAME_USERS)?.text?.trim(); + const EMAIL = row.getCell(headers.EMAIL)?.text?.trim(); - if (NISN && NAME_USERS) { - students.push({ NISN, NAME_USERS }); + if (NISN && NAME_USERS && EMAIL) { + students.push({ NISN, NAME_USERS, EMAIL }); } } }); @@ -854,9 +856,7 @@ export const registerStudentCSV = async (req, res) => { try { for (const student of students) { - const { NISN, NAME_USERS } = student; - - const EMAIL = `${NISN}@student.seals.com`; + const { NISN, NAME_USERS, EMAIL } = student; const PASSWORD = "12345678"; const salt = await bcrypt.genSalt(10); @@ -1334,6 +1334,7 @@ function normalizeHeaders(headers) { const synonyms = { NISN: ["nisn", "no nisn", "nomor nisn"], NAME_USERS: ["nama", "nama lengkap", "full name", "nama siswa"], + EMAIL: ["email", "alamat email"], }; const normalized = {}; @@ -1367,6 +1368,8 @@ function normalizeHeadersXLSX(headers) { "nama lengkap": "NAME_USERS", "full name": "NAME_USERS", "nama siswa": "NAME_USERS", + email: "EMAIL", + "alamat email": "EMAIL", }; const normalized = {}; diff --git a/media/uploads/excel/excel example.xlsx b/media/uploads/excel/excel example.xlsx index 7ef54f226b568297cc2796b22ee870a62920ab9d..265012ffbbd58e8dc7e3dc7a5e8702d0d8600fa6 100644 GIT binary patch delta 3979 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 E4-PBy_5c6? diff --git a/media/uploads/excel/excel template.xlsx b/media/uploads/excel/excel template.xlsx index cca4f3a1335961e637b0a2820d1559787dd0030b..2e7fa72f129443384cc81c145eb33de56f1a3f5c 100644 GIT binary patch delta 2247 zcmZ8jc{CIX7oRZ*(O5>9$T3C3nUszbMT2u(G*2OEVMpy8LH}(Lu_?}BdCf54VKn~rJ=<=ActLV5K zD^d#`gpQS0Z;<8?EDW*fLI6=mPJ5R>`OKNXLDm!7S7~A=iSX&Eu0T3=m<|yQc5P&> z)*6$s+qauV7fMMLjVx>8)=W3EqwrB;%tf9}9Kd*{_i~-HnEQF}iDp^${WZ+ddleZ1 z=!UFQHB1FX7jLI(Xs90ji-&-3-81u)B^7bMXa0(B%=EOHT|5M>^w7o~kK8AjBY9sT zPm}sqOH3;;`mt^rL+?KG1VL>jyy`B<_Q#n{!PX^Uyg4K=3HNG#eU7uT%=M4jtWvRa z5!}NQ_qNgdQ*@1=S#fXh$LvhQRjs^p>let`+Z}xaNFNr{XX0ZvGxIBt@v#R{7uVn@@#8mh=cNTxx62$eP~!#&%-R&8(i4ASqBAUA1|cdDHSOQh+!EmTWNEl@j;bW70;>UE1oKwywP-;tNZEGx_%Q4kpH* zlwFOwCejSr}+{w;2%-1xwLVR2)=ul$qfwDkZdgH#;F`m@^tGX^Jx_*)4`e zysyD?vk}F~UO&QvlGSKix2itrDPJKe9kYHv*x!czYx!2y=Q5<=$N}CaJw)(JhhbiT zZF!!R0}{hdR}&eHFQx;5b9enk)GgO}9SBD~WyIo3DP7kxb3{eLZZ~P|-M&WC-(MC3 zKYRf#sx%WAe$jHRH=?}P?+J0rGgK!s;`=+|h*#xSJMsJ638rkcojpNK%8npq(=j&~ zYPa1s6lj09Te+N+IsvUI=|!7Pv?qy?K-5eSr0F`}84kWFQEB=!4gf%ei%RF0Au-bP zH6TgMQ#+EU=i-4>fy7i=^;IXALbb_sL?>U*yGZ)^8+%gJ01IpN(oDDKSK7CVJ{E0` zp~o@mso5?4_!Ac5w~{`aXy>0G9nkrb#NB)I;>KHq^o)4#6v3sDso-f`h+=}NF$R}@ zYIQnQ@b#&ZT!DyF&?%M2=)ul+BwR{Jnvc0yc@V`6U8D?$#lZbngp$>?W6$+;r zn5I6s4`S0Pb#0>%5@%H|V`Dltc$~veHTaXABt*WuY1Ot&z+=*34`C;9_AJPiL#M6s z(*#pfr9X|{LXgeqci+0flGl_=owMBAK_=XC^6R?z9Ta1($fQE{LTgD&q84+!pXYqq zz2Gzba=oNA0>is!52&{x#plvt|#_~lzQcAW9^4k}TZQ6K5Ovp~(rA0R)~vMG`L zVDFBUD$wf0Ude8_a9uf7ap72I>(b< zj(4a|Th_R2{_WK4bsPm{ElCa{%XJ&yykAI8I}B+zHJyie-G>BSh9umFc+{%E1mG}d z0u|5%0k`mxfT~2=qr>*ghYtDo2wcVZh6ngN5yG*dfmeTB0?%|*5D39&51x18qVWjantoZg^r;2&@mQuden!Di}=5>v}1*+Y030bgS%ZN`C$0 z`VT$}$n}@bxrVb=^Wxg}c4oE*v?w=cyU+QLHPy1vkrl#w%Vo`}(~WP=2gw)s%Z?VT z`-)%0_4N7l&}h+7+)d%n>j~eN=M}iC$Yl*p&;s^~bh3o4++WDXpL5YD8`9|R;6H$0 zOT%TdF{)+NR0CB2l42-t>|SXICNM3Zn=TO-b+PD1iu3*hrIWHkoQszkGum>Ir)M&D zUp9SI2;n)oxK_vr3v?a2M|3|@PS8(FH~ zWYRa<>MSnJ(9!w3h?tvk-jiT^cC~LsiwEA=9Im^}of~X}m(S&I*ECd#SgpAq5ls4I z%eAzh>Ohw8 z`v+amdJ_|}Hvg~{(f6=PQ8Lb4Xab{S{#7C=Ndpk?|2_t)pNt(aklHAt3j3{20D$-* zfqq*al_g^iyhTOI8guZ7QOUB>u>WV<@8U^ntE>|2zoR>3yw{=J3H=5Sv!_(HtPxO` NYA7eqy(j$(`VU3a4)_27 delta 2184 zcmZ9OX*kr48pg-YSjL(`hB30QSwptLYnSX>cJa>Gn(S(jBwNg%hKNG47LhDv8Ob1f zwkFH5Z<#QmY;V2iocCPUc|JV%m*2PNzVGWvH(WNT?W4#3F{M?XKm!6LFoHl35C{~B zmX8R&f$|CtM#)76qO0xPf=kr7Z@CAY(Jah#i|K+?_?BrJaz0y+`;qX*2!;ZWagT{y zF*}vBTQA`zq+b8*uV@4G7D}inhTOce+y8=lLdk{|KTZ_mooaN<=`C=`&pJ5}F?<@R z^2q)Y5B8N8;^?l*K7OYN>l*Yd+S%lX50&nC+Lr#NMtFgkw4+Hrvr|1-2328N=~=F7 zX(Mg4SLR`kCxj}p72tOJwmH1Q*pggdMtxYhh%&QZhZ!j9sSF2$ucq^A>UN0g>!yC<8Z>V6U)_6yM>iTck>9lMuLw0a?;qY6 zpo>|1h8k%(H8leyJzWx1HF}%TOt=tKE#K zWk3H$3#)m?L&g#*I?4>Bh{cNL1DHBVHMm6)i8>%wxd#2ADk2xTw;S5@HSGabYm$yp zo&b|sUp@7TwE=lAKnAqSAzf&n_CX|8U7!>uqNj|!24%HgdIq&P{$%BMs!Ule^A?@* z0bLqKzzSJHm*52~!aANy#n@qiCjXUznfF3sdp@6+dt%`WXN!ef8^YSL(JcK5Qtz$^ z-(Wuybg>GcG2IZPE+qF_o`j?@=#H3~q-b$^DnCvrK917(cF#xK?D$i1g*fVqJ9hUW z_;HY0Ny}ZZYBwp}d#vnedU2_xXlivGIno`00rF0^-DTf0km)orq41v}D}?FE{O*A~ z)JvfIO-}>YsMWi$7IbdoSSE(}uS0jBj-RJK46HMXM@%Qz; ziIM+X6n|&70O$=ODX=Gz>3*`&k}tmIZ}hnIEoJ2@w*_9wB3*`1T8^XO&P5$$EKM=Z zr*i0WCy~_7GIhiu;x$C7YM@NgUzt%d-YEB~Dk2|VlBjE@2U*i-j4GLpNMri%}wXybr=miiSR7Wc2Xy9Q_o%5=@B)Y z&f#hA#6bv24vrD7s&oCXo}A&P|7=PjM6nz7iy8y|=hDWapfX0&Uau`z_Us%AxM%>NaaHXioEM36~Y4Kve04FU<D|p6XH(5?#GR%)Nm!t+o7Asp&^`i#yYI0oLC2MAGUhxE3rqYoj)6tdq5BX zvS_&JGHAm>^y>ThMX9i9xB<&91@=U;@mu6l%z}CV$19xeak;n@+?sa5Z<;hA5-vl^ z+$Yp8iUu-DF=WihVi9>%Vh?dWY+Gf9YKi|-2AZK7p$_qqEKOYD(fN{&8%)V zCSBd3)Tz}asGy4A5X?$=V7%wK2@_UN;^+1!E0{2z?nKx2olFl)b3MnMdJrsonrs^9 z@2IyNSY~`^3J5VTjz6Hn5gt*lJbYURB6? zI&EkS)NR#N%j5e9gK)A$;!`9A*u~Awyu_FHjiS#1GM3jjvxjA#@BMI5J9NPE21%4J z9-eVsR~F}5V7kI{xP`Qx``syki3nT0t)MIo(?2f&kRohJg#xC9Wd;7fYkv9UKT`<6 z;f7QYZ~y1zbqrA1D1nxc|%jtsTH3T>Rfx10W(iRJp(f5p61Vz()i@KP2=U F`3utI0D=Gj diff --git a/package-lock.json b/package-lock.json index 807757a..dea5684 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1250,9 +1250,10 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -1273,7 +1274,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -1288,6 +1289,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express-prom-bundle": { @@ -2441,9 +2446,10 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" }, "node_modules/pg-connection-string": { "version": "2.7.0",