Compare commits

4 Commits

Author SHA1 Message Date
Kar
3246d7c970 login 2023-05-15 20:53:19 +05:30
Kar
a538f23124 login 2023-05-15 17:57:16 +05:30
Kar
02874ff761 tsx 2023-05-15 14:27:10 +05:30
Kar
c5a98bd991 langValueSolved 2023-05-15 13:52:53 +05:30
7 changed files with 58 additions and 24 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -16,14 +16,14 @@ export default function addUserForm() {
{lang: "Bengali", value: false}, {lang: "Bengali", value: false},
{lang: "English", value: false}, {lang: "English", value: false},
{lang: "Hindi", value: false}, {lang: "Hindi", value: false},
{lang: "telegu", value: false}, {lang: "Telegu", value: false},
{lang: "Punjabi", value: false}, {lang: "Punjabi", value: false},
{lang: "malayalam", value: false}, {lang: "Malayalam", value: false},
{lang: "tamil", value: false}, {lang: "Tamil", value: false},
{lang: "kannada", value: false}, {lang: "Kannada", value: false},
{lang: "gujrati", value: false}, {lang: "Gujrati", value: false},
]) ])
console.log(allLanguage.value) // console.log(allLanguage)
const [currentType, setCurrentType] = useState(typeParent) const [currentType, setCurrentType] = useState(typeParent)
const [countryValue, setCountryValue] = useState('') const [countryValue, setCountryValue] = useState('')
const options = useMemo(() => countryList().getData(), []) const options = useMemo(() => countryList().getData(), [])
@@ -37,7 +37,7 @@ export default function addUserForm() {
setAllCities([]) setAllCities([])
fetch(`https://api.siliconpin.com/v3/list/country/city/?country=${countryValue.value}&state=${stateCode.value}`).then(res => res.json()) fetch(`https://api.siliconpin.com/v3/list/country/city/?country=${countryValue.value}&state=${stateCode.value}`).then(res => res.json())
.then(data => { .then(data => {
console.log("handleSelectAllStates:", data, options) // console.log("handleSelectAllStates:", data, options)
let newData = data && data.length > 0 && data.map(n => { let newData = data && data.length > 0 && data.map(n => {
return { return {
label: n.name, label: n.name,
@@ -86,18 +86,19 @@ export default function addUserForm() {
const handleFormsubmit = async (event) => { const handleFormsubmit = async (event) => {
event.preventDefault() event.preventDefault()
console.log(event.target.lang.checked)
const data = { const data = {
"status": "published", "status": "published",
type: event.target.type.value, type: event.target.type.value,
uname: event.target.uname.value, uname: event.target.uname.value,
country: event.target.country.value, country: event.target.country.value,
state: event.target.state.value, state: event.target.state.value ? event.target.state.value:"",
city: event.target.city.value, city: event.target.city.value ? event.target.city.value:"",
phone: event.target.phone.value, phone: event.target.phone.value,
email: event.target.email.value, email: event.target.email.value,
school: event.target.schoolID.value, school: event.target.schoolID.value,
klas: event.target.klas.value, klas: event.target.klas.value,
lang: event.target.lang.value, lang: allLanguage,
start_month: event.target.start_month.value, start_month: event.target.start_month.value,
start_date: event.target.start_date.value, start_date: event.target.start_date.value,
end_date: event.target.end_date.value, end_date: event.target.end_date.value,
@@ -117,14 +118,14 @@ export default function addUserForm() {
} }
const response = await fetch(endpoint, options) const response = await fetch(endpoint, options)
const result = await response.json() const result = await response.json()
console.log(result) // console.log(result)
// alert(`Is this your full name: ${result}`) // alert(`Is this your full name: ${result}`)
} }
const handleOnLanguageChange = (e, v) => { const handleOnLanguageChange = (e, v) => {
let idx = allLanguage.findIndex(o => o.lang === e.target.value); let idx = allLanguage.findIndex(o => o.lang === e.target.value);
let newAllLang = [...allLanguage] let newAllLang = [...allLanguage]
newAllLang[idx].value = true newAllLang[idx].value = true
// console.log(newAllLang)
if ([typeParent, "teacher"].includes(currentType)) { if ([typeParent, "teacher"].includes(currentType)) {
let counter = 0 let counter = 0
@@ -147,7 +148,10 @@ export default function addUserForm() {
newAllLang[idx].value = false newAllLang[idx].value = false
newAllLang[idx].disabled = false newAllLang[idx].disabled = false
}) })
setLanguage(newAllLang) const { name, checked } = e.target;
setLanguage({ ...allLanguage, [name]: checked });
// setLanguage(newAllLang)
setCurrentType(e.target.value) setCurrentType(e.target.value)
} }
return ( return (
@@ -218,7 +222,7 @@ export default function addUserForm() {
<label htmlFor="" className='text-xl font-bold'>School name</label> <label htmlFor="" className='text-xl font-bold'>School name</label>
<select name="schoolID" onChange={individual} <select name="schoolID" onChange={individual}
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'> className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
<option value="individual"> individual</option> <option value="0"> individual</option>
{school && school.data.map(data => {school && school.data.map(data =>
<option value={data.id} key={data.id}>{data.name}</option> <option value={data.id} key={data.id}>{data.name}</option>
)} )}
@@ -313,6 +317,16 @@ export default function addUserForm() {
<div className='flex flex-col w-full pt-4'> <div className='flex flex-col w-full pt-4'>
<label htmlFor="lang" className='text-xl font-bold'>Language</label> <label htmlFor="lang" className='text-xl font-bold'>Language</label>
<div className='grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-y-2 pt-2'> <div className='grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-y-2 pt-2'>
{/* <label className='cursor-pointer' htmlFor="Assamese"> Assamese </label> &nbsp; <input type="checkbox" name="lang" value="Assamese" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Bengali"> Bengali </label> &nbsp; <input type="checkbox" name="lang" value="Bengali" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="English"> English </label> &nbsp; <input type="checkbox" name="lang" value="English" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Hindi"> Hindi </label> &nbsp; <input type="checkbox" name="lang" value="Hindi" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Telegu"> Telegu </label> &nbsp; <input type="checkbox" name="lang" value="Telegu" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Punjabi"> Punjabi </label> &nbsp; <input type="checkbox" name="lang" value="Punjabi" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Malayalam"> Malayalam </label> &nbsp; <input type="checkbox" name="lang" value="Malayalam" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Tamil"> Tamil </label> &nbsp; <input type="checkbox" name="lang" value="Tamil" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Kannada"> Kannada </label> &nbsp; <input type="checkbox" name="lang" value="Kannada" className='check-box'/> <br />
<label className='cursor-pointer' htmlFor="Gujrati"> Gujrati </label> &nbsp; <input type="checkbox" name="lang" value="Gujrati" className='check-box'/> <br /> */}
{allLanguage && allLanguage.length && allLanguage.map(n => { {allLanguage && allLanguage.length && allLanguage.map(n => {
return ( return (
<div key={n.lang} className=''> <div key={n.lang} className=''>

View File

@@ -1,17 +1,18 @@
export default function handler(req, res) { export default function handler(req, res) {
// const sqlite3 = require('sqlite3').verbose(); // const sqlite3 = require('sqlite3').verbose();
console.log(req.body) // console.log(req.body)
const sqlite3 = require('sqlite3'); const sqlite3 = require('sqlite3');
const argon2 = require('argon2'); const argon2 = require('argon2');
const jwt = require('jsonwebtoken'); const jwt = require('jsonwebtoken');
// Connect to the SQLite database // Connect to the SQLite database
const db = new sqlite3.Database('your_database.db'); const db = new sqlite3.Database('data/appUser.db');
// Fetch the user record // Fetch the user record
const username = 'example_user'; const username = req.body.email;
const sql = 'SELECT password_hash FROM user_table WHERE username = ?'; // console.log(username)
const sql = 'SELECT * FROM user WHERE email = ?';
db.get(sql, [username], async (err, userRecord) => { db.get(sql, [username], async (err, userRecord) => {
if (err) { if (err) {
console.error(err); console.error(err);
@@ -19,8 +20,9 @@ db.get(sql, [username], async (err, userRecord) => {
} }
if (userRecord) { if (userRecord) {
const storedHash = userRecord.password_hash; const storedHash = userRecord.pass;
const providedPassword = 'example_password'; console.log(storedHash)
const providedPassword = req.body.password;
try { try {
// Verify the provided password with the stored hash // Verify the provided password with the stored hash
@@ -28,19 +30,37 @@ db.get(sql, [username], async (err, userRecord) => {
if (isPasswordValid) { if (isPasswordValid) {
// Passwords match, generate JWT token // Passwords match, generate JWT token
const secretKey = 'your_secret_key'; const secretKey = process.env.TOKEN_HEADER_KEY;
const tokenPayload = { username: username }; const tokenPayload = {
email:userRecord.email,
role: userRecord.type,
iat: Math.floor(Date.now() / 1000),
exp: Math.floor(Date.now() / 1000) + 3600*24*7,
};
const jwtToken = jwt.sign(tokenPayload, secretKey, { algorithm: 'HS256' }); const jwtToken = jwt.sign(tokenPayload, secretKey, { algorithm: 'HS256' });
const jwtTokenData ={
data:{
access_token:jwtToken,
role: userRecord.type,
email: userRecord.email,
expires: 3600*24*7,
}
};
// Return the JWT token // Return the JWT token
res.status(200).json(jwtTokenData);
console.log(jwtToken); console.log(jwtToken);
} else { } else {
console.log('Invalid password'); console.log('Invalid password');
res.status(400).json({err:'400P'});
} }
} catch (err) { } catch (err) {
console.error(err); console.error(err);
} }
} else { } else {
res.status(400).json({err:'400U'});
console.log('User not found'); console.log('User not found');
} }
@@ -48,5 +68,5 @@ db.get(sql, [username], async (err, userRecord) => {
db.close(); db.close();
}); });
res.status(200).json({ name: 'John Doe' }); // res.status(200).json({ name: 'John Doe' });
} }

View File

@@ -18,6 +18,6 @@
"@/*": ["./src/*"] "@/*": ["./src/*"]
} }
}, },
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "src/pages/add-school-form.jsx", "src/pages/add-school-form.jsx", "src/pages/add-user-form.jsx", "src/pages/test/file-upload.jsx"], "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "src/pages/add-school-form.jsx", "src/pages/add-school-form.jsx", "src/pages/add-user-form.jsx", "src/pages/test/file-upload.jsx", "src/pages/user-list.jsx"],
"exclude": ["node_modules"] "exclude": ["node_modules"]
} }