From 96b933edc13771c1684e6269b4edc190ca3ca2ad Mon Sep 17 00:00:00 2001 From: Kar Date: Sun, 21 May 2023 02:56:35 +0530 Subject: [PATCH] s3 --- data/.~lock.user.csv# | 1 - data/appUser.db | Bin 24576 -> 24576 bytes src/components/NavBar.tsx | 3 +- src/pages/add-user-form.jsx | 14 ++--- src/pages/api/{addUsers.js => addUser.js} | 2 +- src/pages/api/addUsersBulk.js | 64 ++++++++++++++-------- src/pages/edit-school.jsx | 33 ++++++++--- src/pages/profile.jsx | 2 +- src/pages/upload-user.jsx | 38 +++++++++++++ 9 files changed, 117 insertions(+), 40 deletions(-) delete mode 100644 data/.~lock.user.csv# rename src/pages/api/{addUsers.js => addUser.js} (96%) create mode 100644 src/pages/upload-user.jsx diff --git a/data/.~lock.user.csv# b/data/.~lock.user.csv# deleted file mode 100644 index 00777a3..0000000 --- a/data/.~lock.user.csv# +++ /dev/null @@ -1 +0,0 @@ -,ov,d4,16.05.2023 12:44,file:///home/ov/.config/libreoffice/4; \ No newline at end of file diff --git a/data/appUser.db b/data/appUser.db index 545b3ace067353b4d8e5f9584fd2c74b0fe5a480..ea0525f7ebe1111276b2fdc84bd58a165e7bb33b 100644 GIT binary patch delta 912 zcmZoTz}Rqrae_2s??f4A#@>wyJ@Smko8QU{30TJPa-Cz~WM9L~#lfG#cbdnZ2rDWw@V7^6GcfS;^Q#I9 z$}@1}CFZ6o7#5T!I` zP9_mLpc-8B(m{?QUV}$wUJ8==AO`>)RFB~zsQDqOIjQNT#2X(_nwOQBgk%9uFGDTx zP0UHGOa%Hr7hwt1Q8?X{n46h{P)*1N@5H>k#FRw58WJGU0CkglX;x8U2|-W9YFipA zSbzY8G%zqIHgrhMP0Y;EOU}>r^z(7?PAp3V8dZ`xnZxQB3j+fq&&Ea$MxjRWXh~pd z4sxYs6?Y+0foxiZMcx zK~Z I*PdAc022WVfB*mh delta 541 zcmZoTz}Rqrae_2s@kAMC#^Q|$J@SkOo8QU{3COzf@-i}Tad9y7r}LfTGv%Gl%f^$) zeV5yt>l_!yWgjE)ZE2`r2?7w(t2EERz@Wg;AvHHKGe<8uKiAVQ z+{r1iC^0FqDzT`M-(HeITb@B0YL7D59&15CX$HmM&@e|oZ^s~oV8N1Dyo58tiwNdnVtr4HcB-mSm7b1eY?y zI4FT$6cy&5tYs@b`M;ggWCI&6CIh3%b~fgM;+*J)ys_>S s6yrb_b+PLdU`H3cYu6zt%!X#u @@ -15,6 +15,7 @@ export default function NavBar() { Add School | School List| Add User | + Upload User | User List | diff --git a/src/pages/add-user-form.jsx b/src/pages/add-user-form.jsx index d1ef08b..db8043a 100644 --- a/src/pages/add-user-form.jsx +++ b/src/pages/add-user-form.jsx @@ -10,7 +10,7 @@ import NavBar from '../components/NavBar'; const typeParent = "parent" -export default function AddUser() { +export default function addUserForm() { const [allLanguage, setLanguage] = useState([ {lang: "Assamese", value: false}, {lang: "Bengali", value: false}, @@ -75,7 +75,7 @@ export default function AddUser() { } const [school, setSchool] = useState(null); useEffect(() => { - fetch(`https://management.beanstalkedu.com/items/school`) + fetch(`/api/listSchlools`) .then(res => res.json()) .then(data => { setSchool(data) @@ -102,13 +102,13 @@ export default function AddUser() { start_month: event.target.start_month.value, start_date: event.target.start_date.value, end_date: event.target.end_date.value, - annual: event.target.annual.value, + anual: event.target.anual.value, early_start_programme: event.target.early_start_programme.value, toddlers: event.target.toddlers.value, interakto: event.target.interakto.value, } const JSONdata = JSON.stringify(data) - const endpoint = '/api/addUsers' + const endpoint = '/api/addUser' const options = { method: 'POST', headers: { @@ -223,7 +223,7 @@ export default function AddUser() { @@ -242,8 +242,8 @@ export default function AddUser() { {individualValue &&
- - diff --git a/src/pages/api/addUsers.js b/src/pages/api/addUser.js similarity index 96% rename from src/pages/api/addUsers.js rename to src/pages/api/addUser.js index 81807b0..3aa0d7a 100644 --- a/src/pages/api/addUsers.js +++ b/src/pages/api/addUser.js @@ -14,7 +14,7 @@ export default function handler(req, res) { if(req.body.end_date) end_date =req.body.end_date; if(req.body.plan) plan =req.body.plan; if(req.body.klas) klas =req.body.klas; - if(req.body.lang) lang =req.body.lang; + if(req.body.lang) lang =req.body.lang; lang=JSON.stringify(lang); if(req.body.phone) phone =req.body.phone; if(req.body.pass) pass =req.body.pass; if(req.body.annual) annual =req.body.annual; diff --git a/src/pages/api/addUsersBulk.js b/src/pages/api/addUsersBulk.js index c15f89f..7d2ba17 100644 --- a/src/pages/api/addUsersBulk.js +++ b/src/pages/api/addUsersBulk.js @@ -1,36 +1,56 @@ import csv from 'csv-parser'; -import fs from 'fs'; +import formidable from "formidable"; +import fs from "fs"; import sqlite3 from 'sqlite3'; +export const config = { + api: { + bodyParser: false + } +}; + export default function handler(req,res) { + const form = new formidable.IncomingForm(); + form.parse(req, async function (err, fields, files) { - const DB_NAME = 'data/appUser.db'; - const TABLE_NAME = 'user'; + // console.log('ppp') + console.log(files.file.filepath) + const DB_NAME = 'data/appUser.db'; + const TABLE_NAME = 'user'; + + // Open a connection to the SQLite database + const db = new sqlite3.Database(DB_NAME); + + // fs.createReadStream('data/user.csv') + fs.createReadStream(files.file.filepath) + .pipe(csv()) + .on('data', (data) => { + const values = Object.values(data); + const placeholders = values.map(() => '?').join(','); + const sql = `INSERT INTO ${TABLE_NAME} (${Object.keys(data).join(',')}) VALUES (${placeholders})`; + db.run(sql, values, (err) => { + if (err) { + console.error(err); + } + }); + }) + .on('end', () => { + console.log(`Data inserted successfully into table ${TABLE_NAME}`); - // Open a connection to the SQLite database - const db = new sqlite3.Database(DB_NAME); - - fs.createReadStream('data/user.csv') - .pipe(csv()) - .on('data', (data) => { - const values = Object.values(data); - const placeholders = values.map(() => '?').join(','); - const sql = `INSERT INTO ${TABLE_NAME} (${Object.keys(data).join(',')}) VALUES (${placeholders})`; - db.run(sql, values, (err) => { - if (err) { - console.error(err); - } + fs.unlinkSync(files.file.filepath); + db.close(); }); - }) - .on('end', () => { - console.log(`Data inserted successfully into table ${TABLE_NAME}`); - // Close the database connection - db.close(); + + // console.log(fields) + // await saveFile(files.file,fields.fName? fields.fName:files.file.originalFilename ); + return res.status(201).send(""); }); - res.status(200).json({ name: 'John Doe' }) + + + res.status(200).json({ msg: 'ok' }) } diff --git a/src/pages/edit-school.jsx b/src/pages/edit-school.jsx index 4728526..da7ea0b 100644 --- a/src/pages/edit-school.jsx +++ b/src/pages/edit-school.jsx @@ -7,16 +7,35 @@ import Link from 'next/link' export default function EditSchool() { const router = useRouter(); - + const uploadToServer = async (event) => { + const body = new FormData(); + body.append("file", agreement.files[0]); + body.append("fName", `${router.query.school}.pdf`); + const response = await fetch("/api/fileUpload", { + method: "POST", + body + }); + }; + const uploadCsv = async (event) => { + // alert('p') + const body = new FormData(); + body.append("file", csv.files[0]); + // console.log('body') + // body.append("fName", `${router.query.school}.pdf`); + const response = await fetch("/api/addUsersBulk", { + method: "POST", + body + }); + }; const [school, setSchool] = useState({}); useEffect(()=>{ if(router.query.school && router.query.school>0 ){ - console.log(router.query); + // console.log(router.query); fetch(`/api/getSchoolDetails?school=${router.query.school}`) .then(res => res.json()) .then(data => { - console.log(data); + // console.log(data); setSchool(data[0]) // console.log(school) }) @@ -43,7 +62,7 @@ export default function EditSchool() { email: event.target.email.value, } const JSONdata = JSON.stringify(data) - console.log(data) + // console.log(data) const endpoint = '/api/editSchool' const options = { method: 'POST', @@ -73,8 +92,8 @@ export default function EditSchool() { List Users Under This School
- CSV Upload   - + CSV   +
{/* */} @@ -144,7 +163,7 @@ export default function EditSchool() {
- setSchool(e.target.value)} type="file" name="agreement_documents" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' /> +
diff --git a/src/pages/profile.jsx b/src/pages/profile.jsx index 203746a..48d3540 100644 --- a/src/pages/profile.jsx +++ b/src/pages/profile.jsx @@ -2,7 +2,7 @@ import { signIn, signOut, useSession } from 'next-auth/react' export default function Home() { const { data: session } = useSession() -console.log(session) +// console.log(session) if (session) { return ( <> diff --git a/src/pages/upload-user.jsx b/src/pages/upload-user.jsx new file mode 100644 index 0000000..46ec8aa --- /dev/null +++ b/src/pages/upload-user.jsx @@ -0,0 +1,38 @@ +import {useId, useState, useEffect, useMemo} from 'react'; +import NavBar from '../components/NavBar'; +import { useRouter } from 'next/router' + + +export default function EditSchool() { + const router = useRouter(); + + const uploadCsv = async (event) => { + // alert('p') + const body = new FormData(); + body.append("file", csv.files[0]); + // console.log('body') + // body.append("fName", `${router.query.school}.pdf`); + const response = await fetch("/api/addUsersBulk", { + method: "POST", + body + }); + }; + + + + return ( +
+
+ +
+
+ CSV   + +
+
+
+
+ ) +} + +