diff --git a/src/pages/api/getUserDetails.js b/src/pages/api/getUserDetails.js new file mode 100644 index 0000000..3ea5f61 --- /dev/null +++ b/src/pages/api/getUserDetails.js @@ -0,0 +1,67 @@ +import csv from 'csv-parser'; +import fs from 'fs'; +import sqlite3 from 'sqlite3'; + +export default function handler(req,res) { + + + const DB_NAME = 'data/appUser.db'; + const TABLE_NAME = 'user'; + + // Open a connection to the SQLite database + const db = new sqlite3.Database(DB_NAME); + + const query = `SELECT * FROM ${TABLE_NAME}`; + + function getAllRows(tableName) { + return new Promise((resolve, reject) => { + const sql = `SELECT * FROM ${tableName} WHERE id = ?`; + db.all(sql, [req.query.user], (err, rows) => { + if (err) { + reject(err); + return; + } + const data = rows; + resolve(data); + }); + }); + }; + async function doSomething() { + try { + const returnData = await getAllRows('user'); + res.setHeader('Content-Type', 'application/json') + res.status(200).json(returnData) + // console.log(data); + } catch (err) { + console.error(err); + } + } + + doSomething(); +// const returnData = getAllRows('user'); +// console.log(getAllRows('user')); +// const returnData= db.run('SELECT * FROM user'); + +// 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); +// } +// }); +// }) +// .on('end', () => { +// console.log(`Data inserted successfully into table ${TABLE_NAME}`); + +// // Close the database connection +// db.close(); +// }); + + + +} + diff --git a/src/pages/api/updateUserDetails.js b/src/pages/api/updateUserDetails.js new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/edit-user.jsx b/src/pages/edit-user.jsx index 46d6eba..0b4c406 100644 --- a/src/pages/edit-user.jsx +++ b/src/pages/edit-user.jsx @@ -1,133 +1,60 @@ -// https://management.beanstalkedu.com/items/school -// import React from 'react'; import {useId, useState, useEffect, useMemo} from 'react'; -import Select from 'react-select' -import countryList from 'react-select-country-list' import 'react-phone-number-input/style.css' -import PhoneInput from 'react-phone-number-input' import NavBar from '../components/NavBar'; import { useRouter } from 'next/router' -// import { Inter } from 'next/font/google' -const typeParent = "parent" - -export default function addUserForm() { - - const router = useRouter(); - - const [allLanguage, setLanguage] = useState([ - {lang: "Assamese", value: false}, - {lang: "Bengali", value: false}, - {lang: "English", value: false}, - {lang: "Hindi", value: false}, - {lang: "Telegu", value: false}, - {lang: "Punjabi", value: false}, - {lang: "Malayalam", value: false}, - {lang: "Tamil", value: false}, - {lang: "Kannada", value: false}, - {lang: "Gujrati", value: false}, - ]) - // console.log(allLanguage) - const [currentType, setCurrentType] = useState(typeParent) - const [countryValue, setCountryValue] = useState('') - const options = useMemo(() => countryList().getData(), []) - const [phoneValue, setphoneValue] = useState() - let [individualValue = true, setindividualValue] = useState() - - const [allStates, setAllStates] = useState([]) - const [allCities, setAllCities] = useState([]) - - const handleSelectAllStates = stateCode => { - setAllCities([]) - fetch(`https://api.siliconpin.com/v3/list/country/city/?country=${countryValue.value}&state=${stateCode.value}`) - .then(res => res.json()) - .then(data => { - // console.log("handleSelectAllStates:", data, options) - let newData = data && data.length > 0 && data.map(n => { - return { - label: n.name, - value: n.name - - } - }) - setAllCities(newData) - }) - } - - const selectCountry = countryValue => { - setAllStates([]) - fetch(`https://api.siliconpin.com/v3/list/country/state/?country=${countryValue.value}`).then(res => res.json()) - .then(data => { - console.log("countryValue:", data, options) - let newData = data && data.length > 0 && data.map(n => { - return { - label: n.name, - value: n.iso2 - - } - }) - setAllStates(newData) - setAllCities([]) - }) - - setCountryValue(countryValue) - } - - const individual = (event) => { - // console.log(event.target.schoolID.value) - - setindividualValue(individualValue = false) - } - const [school, setSchool] = useState(null); - useEffect(() => { - fetch(`https://management.beanstalkedu.com/items/school`) - .then(res => res.json()) - .then(data => { - setSchool(data) - - }) - }, []) +export default function editUser() { + const router = useRouter(); + const updateUserData = async (event) => { + const body = new FormData(); + body.append("file", agreement.files[0]); + body.append("fName", `${router.query.school}.pdf`); + const response = await fetch("/api/updateUserDetails", { + method: "POST", + body + }); + }; + const [user, setUser] = useState({}); useEffect(()=>{ - if(router.query.user && router.query.user>1){ - fetch(`/api/listUsers/${router.query.user}`) + console.log(router.query); + // if(router.query.school<1) { + // const { sid } = router.query; + // setSchool(sid) + if(router.query.user && router.query.user>1 ){ + fetch(`/api/getUserDetails?user=${router.query.user}`) .then(res => res.json()) - .then(data => { - setUser(data) + .then(data => { + console.log(router.query.user); + setUser(data) + }) } - ) - } - }, - [router.query.user]); - console.log(user) - - const handleFormsubmit = async (event) => { + + }, [router.query.school]); + + const handleSubmit = async (event) => { event.preventDefault() - console.log(event.target.lang.checked) const data = { - "status": "published", - type: event.target.type.value, - uname: event.target.uname.value, + "status":"published", + name: event.target.schoolName.value, country: event.target.country.value, - state: event.target.state.value ? event.target.state.value:"", - city: event.target.city.value ? event.target.city.value:"", - phone: event.target.phone.value, - email: event.target.email.value, - school: event.target.schoolID.value, - klas: event.target.klas.value, - lang: allLanguage, - start_month: event.target.start_month.value, - start_date: event.target.start_date.value, - end_date: event.target.end_date.value, + state: event.target.state.value, + cities: event.target.cities.value, anual: event.target.anual.value, - early_start_programme: event.target.early_start_programme.value, toddlers: event.target.toddlers.value, + early_start_programme: event.target.early_start_programme.value, interakto: event.target.interakto.value, + agreement_expiry_date: event.target.agreement_expiry_date.value, + school_agreement: event.target.school_agreement.value, + school_contact_number: event.target.school_contact_number.value, + school_email_id: event.target.school_email_id.value, + } const JSONdata = JSON.stringify(data) - const endpoint = '/api/addUsers' + console.log(data) + const endpoint = 'https://management.beanstalkedu.com/items/school' const options = { method: 'POST', headers: { @@ -136,43 +63,12 @@ export default function addUserForm() { body: JSONdata, } const response = await fetch(endpoint, options) + const result = await response.json() - // console.log(result) - // alert(`Is this your full name: ${result}`) - } - const handleOnLanguageChange = (e, v) => { - let idx = allLanguage.findIndex(o => o.lang === e.target.value); - let newAllLang = [...allLanguage] - newAllLang[idx].value = true - // console.log(newAllLang) - - if ([typeParent, "teacher"].includes(currentType)) { - let counter = 0 - newAllLang.forEach((n, idx) => { - if (n.value) { - counter++ - } - }) - if (counter >= 2) { - newAllLang.forEach((n, idx) => { - newAllLang[idx].disabled = true - }) - } - } - setLanguage(newAllLang) - } - const handleTypeOnChange = (e) => { - let newAllLang = [...allLanguage] - newAllLang.forEach((n, idx) => { - newAllLang[idx].value = false - newAllLang[idx].disabled = false - }) - const { name, checked } = e.target; - setLanguage({ ...allLanguage, [name]: checked }); - - // setLanguage(newAllLang) - setCurrentType(e.target.value) + // alert(`Is this your full name: ${result.data}`) + alert(`School Saved`) } + return (
@@ -184,18 +80,16 @@ export default function addUserForm() {

Update User Information

-
+
- +
- +
@@ -204,194 +98,27 @@ export default function addUserForm() {
-
- {allStates && allStates.length > 0 && -
- - {}} - /> -
} +
- +
- +
- +
- {individualValue && -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- -
- {/*  
-  
-  
-  
-  
-  
-  
-  
-  
-  
*/} - {allLanguage && allLanguage.length && allLanguage.map(n => { - return ( -
-   - -
- ) - })} -
-
-
- - -
-
- - -
-
- - -
-
- } + +
- {/* */}
diff --git a/src/pages/edit-user2.jsx b/src/pages/edit-user2.jsx new file mode 100644 index 0000000..46d6eba --- /dev/null +++ b/src/pages/edit-user2.jsx @@ -0,0 +1,402 @@ +// https://management.beanstalkedu.com/items/school +// import React from 'react'; +import {useId, useState, useEffect, useMemo} from 'react'; +import Select from 'react-select' +import countryList from 'react-select-country-list' +import 'react-phone-number-input/style.css' +import PhoneInput from 'react-phone-number-input' +import NavBar from '../components/NavBar'; +import { useRouter } from 'next/router' +// import { Inter } from 'next/font/google' + +const typeParent = "parent" + +export default function addUserForm() { + + const router = useRouter(); + + const [allLanguage, setLanguage] = useState([ + {lang: "Assamese", value: false}, + {lang: "Bengali", value: false}, + {lang: "English", value: false}, + {lang: "Hindi", value: false}, + {lang: "Telegu", value: false}, + {lang: "Punjabi", value: false}, + {lang: "Malayalam", value: false}, + {lang: "Tamil", value: false}, + {lang: "Kannada", value: false}, + {lang: "Gujrati", value: false}, + ]) + // console.log(allLanguage) + const [currentType, setCurrentType] = useState(typeParent) + const [countryValue, setCountryValue] = useState('') + const options = useMemo(() => countryList().getData(), []) + const [phoneValue, setphoneValue] = useState() + let [individualValue = true, setindividualValue] = useState() + + const [allStates, setAllStates] = useState([]) + const [allCities, setAllCities] = useState([]) + + const handleSelectAllStates = stateCode => { + setAllCities([]) + fetch(`https://api.siliconpin.com/v3/list/country/city/?country=${countryValue.value}&state=${stateCode.value}`) + .then(res => res.json()) + .then(data => { + // console.log("handleSelectAllStates:", data, options) + let newData = data && data.length > 0 && data.map(n => { + return { + label: n.name, + value: n.name + + } + }) + setAllCities(newData) + }) + } + + const selectCountry = countryValue => { + setAllStates([]) + fetch(`https://api.siliconpin.com/v3/list/country/state/?country=${countryValue.value}`).then(res => res.json()) + .then(data => { + console.log("countryValue:", data, options) + let newData = data && data.length > 0 && data.map(n => { + return { + label: n.name, + value: n.iso2 + + } + }) + setAllStates(newData) + setAllCities([]) + }) + + setCountryValue(countryValue) + } + + const individual = (event) => { + // console.log(event.target.schoolID.value) + + setindividualValue(individualValue = false) + } + const [school, setSchool] = useState(null); + useEffect(() => { + fetch(`https://management.beanstalkedu.com/items/school`) + .then(res => res.json()) + .then(data => { + setSchool(data) + + }) + }, []) + + const [user, setUser] = useState({}); + + useEffect(()=>{ + if(router.query.user && router.query.user>1){ + fetch(`/api/listUsers/${router.query.user}`) + .then(res => res.json()) + .then(data => { + setUser(data) + } + ) + } + }, + [router.query.user]); + console.log(user) + + const handleFormsubmit = async (event) => { + event.preventDefault() + console.log(event.target.lang.checked) + const data = { + "status": "published", + type: event.target.type.value, + uname: event.target.uname.value, + country: event.target.country.value, + state: event.target.state.value ? event.target.state.value:"", + city: event.target.city.value ? event.target.city.value:"", + phone: event.target.phone.value, + email: event.target.email.value, + school: event.target.schoolID.value, + klas: event.target.klas.value, + lang: allLanguage, + start_month: event.target.start_month.value, + start_date: event.target.start_date.value, + end_date: event.target.end_date.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 options = { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSONdata, + } + const response = await fetch(endpoint, options) + const result = await response.json() + // console.log(result) + // alert(`Is this your full name: ${result}`) + } + const handleOnLanguageChange = (e, v) => { + let idx = allLanguage.findIndex(o => o.lang === e.target.value); + let newAllLang = [...allLanguage] + newAllLang[idx].value = true + // console.log(newAllLang) + + if ([typeParent, "teacher"].includes(currentType)) { + let counter = 0 + newAllLang.forEach((n, idx) => { + if (n.value) { + counter++ + } + }) + if (counter >= 2) { + newAllLang.forEach((n, idx) => { + newAllLang[idx].disabled = true + }) + } + } + setLanguage(newAllLang) + } + const handleTypeOnChange = (e) => { + let newAllLang = [...allLanguage] + newAllLang.forEach((n, idx) => { + newAllLang[idx].value = false + newAllLang[idx].disabled = false + }) + const { name, checked } = e.target; + setLanguage({ ...allLanguage, [name]: checked }); + + // setLanguage(newAllLang) + setCurrentType(e.target.value) + } + return ( +
+
+ +
+
+
+ +

Update User Information

+
+
+
+ + + + +
+
+ + +
+
+ + +
+
+ + +
} + { + allCities && allCities.length > 0 && +
+ + + + {school && school.data.map(data => + + )} + +
+
+ + +
+ {individualValue && +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ {/*  
+  
+  
+  
+  
+  
+  
+  
+  
+  
*/} + {allLanguage && allLanguage.length && allLanguage.map(n => { + return ( +
+   + +
+ ) + })} +
+
+
+ + +
+
+ + +
+
+ + +
+
+ } +
+ + {/* */} +
+
+
+
+
+
+ ) +} diff --git a/src/pages/school-list/index.jsx b/src/pages/school-list/index.jsx index ae841e9..1219b98 100644 --- a/src/pages/school-list/index.jsx +++ b/src/pages/school-list/index.jsx @@ -22,10 +22,18 @@ const fetchData = async () => {
-
- - Add School -
+
+
+ + + + +
+ +   + Add School + +
@@ -33,8 +41,9 @@ const fetchData = async () => { - - + + + @@ -48,6 +57,7 @@ const fetchData = async () => { + diff --git a/src/pages/user-list.jsx b/src/pages/user-list.jsx index 964870e..ac9565f 100644 --- a/src/pages/user-list.jsx +++ b/src/pages/user-list.jsx @@ -22,9 +22,15 @@ const fetchData = async () => {
-
- - + @@ -64,7 +70,7 @@ const fetchData = async () => {
ID School Name CountryAnualEarly Start ProgramAnnualS.E.DE.S.P Toddlers Interakto Status{data.name} {data.country} {data.anual}{data.agreement_expiry_date} {data.early_start_programme} {data.toddlers} {data.interakto}