How to use UpdateUsers method in redwood

Best JavaScript code snippet using redwood

users.js

Source:users.js Github

copy

Full Screen

1const dataBase = require("../BDD/dbConnect");2const jwt = require('jsonwebtoken');3const bcrypt = require('bcrypt');4const fs = require('fs');5const User = require('../models/users');6const reqUser = require('../BDD/req/req.prep');7/* a placer dans un dossier destiner a la securite */8 const isValidEmail = (value) => {9 let reGex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;10 return reGex.test(value);11 };12 const isValidPassword = (value) => {13 let reGex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[-+!*$@%_])([-+!*$@%_\w]{8,15})$/;14 return reGex.test(value);15 };16/* */ 17exports.getOneAccount = (req, res, next) => {18 try{19 const idCourant = req.params.id;20 reqUser.reqSelectBdd(req, res, next, 'users', 'users.id', idCourant);21 } catch(err){22 res.status(500).json({message:"erreur serveur", error: err})23 }24};// DONE25exports.getAccount = (req, res, next) => {26 try{27 reqUser.reqSelectBdd(req, res, next, 'users')28 29 } catch(err){30 res.status(500).json({message:"erreur serveur", error:err})31 }32};// DONE33exports.createAccount = (req, res, next) => {34 try{35 const requeteBody = req.body;36 if(isValidPassword(requeteBody.pass)){37 if(isValidEmail(requeteBody.mail)){38 bcrypt.hash(requeteBody.pass, 10)39 .then(hash=> {40 const user = new User(41 requeteBody.nom,42 requeteBody.prenom,43 requeteBody.mail,44 hash,45 'user_base.png',46 requeteBody.age,47 048 )49 reqUser.reqInsertIntoBdd(req, res, next, "users", user);50 })51 } else{52 return res.status(400).json({message:"Votre adresse email n'est pas valide"});53 }54 }55 else {56 return res.status(400).json({message:'mot de passe trop faible il doit contenir une lettre MAJ, une lettre min, un chiffre et un charactere spéciale, il doit également contenir entre 8 et 15 characteres au total'})57 }58 } catch(err){59 res.status(500).json({message:"erreur serveur", error:err})60 }61};// DONE62exports.deleteAccount = (req, res, next) => {63 const requeteDel = req.body;64 let deleteImgUrl = 'user_base.png';65 try {66 dataBase.query(`SELECT ?? FROM ?? WHERE ?? = ?`, ["users.img_url", "users", "users.id",req.params.id],(err, result)=>{67 if(err) {68 res.status(404).json({err});69 throw err;70 }71 else {72 if(result.length < 1){73 return res.status(404).json({message:'users is not found on Bdd'})74 }else {75 result.forEach(itm=>{deleteImgUrl=itm.img_url; return deleteImgUrl});76 console.log(`deleteimg = ${deleteImgUrl}`);77 if(deleteImgUrl == "user_base.png") {78 console.log("Aucune image a suprimer");79 reqUser.reqDeleteBdd(req,res,next,'users',"users.id",req.params.id);80 return;81 }else {82 fs.unlink(`./assets/images/profils/users/${deleteImgUrl}`,(err, result)=>{83 console.log(`l'image : ${deleteImgUrl} du profil de ${requeteDel.nom} a bien été suprime!`);84 reqUser.reqDeleteBdd(req,res,next,'users',"users.id",req.params.id);85 })86 }87 } 88 }89 }90 )91 } catch (err) {92 res.status(500).json(err);93 throw err;94 }95};// DONE96exports.putAccount = (req, res, next) => {97 const reqUserModif = req.body;98 const idParams = req.params.id;99 const file = req.file;100 let onModif =0;101 try { 102 dataBase.query(103 `SELECT * from ?? WHERE ?? = ?`, ["users", "users.id", idParams], (err,result)=>{104 if(err){105 res.status(400).json(err);106 }107 else{108 let userFound = {};109 result.forEach(element => {110 userFound = element;111 return userFound;112 });113 const updateUsers = new User(114 reqUserModif.nom,115 reqUserModif.prenom,116 reqUserModif.mail,117 reqUserModif.pass,118 "user_base.png",119 reqUserModif.age,120 0121 )122 if(result.length!==0){123 if((updateUsers.nom != undefined && updateUsers.nom != userFound.nom) ||124 (updateUsers.prenom != undefined && updateUsers.prenom != userFound.prenom) ||125 (updateUsers.age != undefined && updateUsers.age != userFound.age) ||126 (updateUsers.mail != undefined && updateUsers.mail && updateUsers.mail != userFound.mail) ||127 (updateUsers.pass!= undefined) ||128 (updateUsers.img_url != undefined && updateUsers.img_url != userFound.img_url)){129 if(updateUsers.pass){130 onModif++131 bcrypt.compare(updateUsers.pass, userFound.pass)132 .then(valid=>{133 if(!valid){134 console.log(onModif)135 if(isValidPassword(updateUsers.pass)){136 bcrypt.hash(updateUsers.pass, 10)137 .then(hash=> {138 const user = {139 pass:hash140 };141 reqUser.reqUpdateBdd(req, res, next, "users", "users.pass", user.pass, "users.id", req.params.id);142 143 })144 console.log(onModif)145 }else {146 console.log('erreur pass');147 return res.status(400).json({message:'mot de passe trop faible il doit contenir une lettre MAJ, une lettre min, un chiffre et un charactere spéciale, il doit également contenir entre 8 et 15 characteres au total'});;148 }149 }else{150 console.log("pass is same");151 return onModif152 }153 })154 }155 if(updateUsers.mail){156 if(updateUsers.mail!=userFound.mail){157 if(isValidEmail(updateUsers.mail)){158 onModif++159 reqUser.reqUpdateBdd(req, res, next, "users", "users.mail", updateUsers.mail, "users.id", req.params.id);160 }else{161 return res.status(400).json({message:"email non fonctionel, etes vous sur d'utiliser un email valide? "});162 }163 }164 }165 if(updateUsers.nom){166 if(updateUsers.nom!=userFound.nom){167 onModif++168 console.log(reqUser.reqUpdateBdd(req, res, next, "users", "users.nom", updateUsers.nom, "users.id", req.params.id))169 reqUser.reqUpdateBdd(req, res, next, "users", "users.nom", updateUsers.nom, "users.id", req.params.id);170 }171 }172 if(updateUsers.prenom){173 if(updateUsers.prenom!=userFound.prenom){174 onModif++175 reqUser.reqUpdateBdd(req, res, next, "users", "users.prenom", updateUsers.prenom, "users.id", req.params.id);176 }177 }178 if(updateUsers.age){179 if(updateUsers.age!=userFound.age){180 onModif++181 reqUser.reqUpdateBdd(req, res, next, "users", "users.age", updateUsers.age, "users.id", req.params.id);182 }183 }184 185 // pour la V 1.1.X metre en place un systeme de verif par email186 187 if(file){188 onModif++189 reqUser.reqUpdateBdd(req, res, next, "users", "users.img_url", file.filename, "users.id", req.params.id);190 updateUsers.img_url = file.filename;191 console.log("updateUsers with new file ",updateUsers);192 fs.unlink(`./assets/images/profils/users/${userFound.img_url}`, ()=>{193 console.log(`${userFound.img_url} a bien été delete`);194 });195 }196 console.log(onModif)197 console.log(updateUsers)198 if(onModif> 0 && (isValidPassword(updateUsers.pass)||updateUsers.pass==undefined)){199 res.status(200).json({message:'utilisateur modifier'});200 }else if((updateUsers.nom == undefined || updateUsers.nom == userFound.nom) &&201 (updateUsers.prenom == undefined || updateUsers.prenom == userFound.prenom) &&202 (updateUsers.mail == undefined || updateUsers.mail == userFound.mail) &&203 (updateUsers.age == undefined || updateUsers.age == userFound.age) &&204 updateUsers.pass == undefined ){205 res.status(200).json({message:"aucune modification sur l'utilisateur"});206 }207 }208 }else{209 if(file){210 updateUsers.img_url = file.filename;211 console.log(updateUsers);212 fs.unlink(`./assets/images/profils/users/${updateUsers.img_url}`, ()=>{213 console.log(`${updateUsers.img_url} a été delete car l'id de cet user n'existe pas`);214 })215 }216 res.status(404).json({message: "Aucun users ne porte cet ID"});217 }218 }219 }220 )221 } catch (err) {222 res.status(500).json({message:"erreur serveur", error:err});223 }224};// DONE FOR 1.0.0 -- NEED MODIFY FOR 1.1.X225/* ----------------------------LOGIN----------------------------------- */226exports.login = (req, res, next) => {227 try {228 const userLog = req.body;229 dataBase.query(`SELECT * FROM ?? WHERE ?? = ?`, ["users","users.mail",`${userLog.mail}`],(err, result)=>{230 if(err){231 console.log(err)232 }else {233 if(result<1){234 return res.status(404).json({message: "email non reconue"})235 }else{236 let userOnBdd;237 result.forEach((elt)=>{238 userOnBdd=elt;239 return userOnBdd;240 })241 bcrypt.compare(userLog.pass, userOnBdd.pass)242 .then(valid=>{243 if(!valid){244 return res.status(404).json({message:'vérifiez votre mot de passe'});245 }else{246 isCo = true;247 res.status(200).json({248 message:"login done",249 isConected : isCo,250 isAdmin: userOnBdd.admin,251 id : userOnBdd.id,252 password:userLog.pass,253 token:jwt.sign(254 { user_id: userOnBdd.id,isAdmin: userOnBdd.admin},255 `${process.env.JSW_SECRET}`,256 {expiresIn:`${process.env.TOKEN_EXPIRE}`}257 )258 });259 };260 })261 .catch(262 error=>res.status(500).json(error));263 }264 }265 });266 } catch (err) {267 res.status(500).json({message:"erreur serveur", error:err})268 }...

Full Screen

Full Screen

UserForm.js

Source:UserForm.js Github

copy

Full Screen

1import React, { Component } from "react";2import { Drawer, Form, Button, Col, Row, Input, message,Select, DatePicker, Divider } from "antd";3import { PUT_USER_PROFILE_URL } from "../utils/endpoints";4import axios from "axios";5import moment from "moment";6class UserFormRaw extends Component {7 constructor(props){8 super(props);9 this.state = {10 visible: false,11 updateUsers: {},12 file: null13 };14 this.handlefileChange = this.handlefileChange.bind(this);15 }16 17 handleTextChange = e => {18 let updateUsers = this.state.updateUsers;19 updateUsers[e.target.name] = e.target.value;20 this.setState({ updateUsers });21 };22 handleDateChange = (date, dateString) => {23 const updateUsers = this.state.updateUsers;24 updateUsers["dob"] = moment(date).toISOString();25 this.setState({ updateUsers });26 };27 handlefileChange(e) {28 // let banner = this.state.banner;29 this.setState({ file: e.target.files[0] });30 }31 32 handleSubmit = () => {33 const token = localStorage.getItem("token");34 let updateUsers = this.state.updateUsers;35 console.log("updateUsers", updateUsers);36 var formData = new FormData();37 if (this.state.file){38 formData.append("user", this.state.file);39 }40 formData.append("username", updateUsers.username);41 formData.append("dob", updateUsers.dob);42 formData.append("gender", updateUsers.gender);43 formData.append("userId", updateUsers._id);44 if (this.props.mode === "new") {45 // axios46 // .post(47 // POST_FAQ_URL,48 // {49 // ...updateUsers50 // },51 // {52 // headers: {53 // Authorization: token54 // }55 // }56 // )57 // .then(res => {58 // message.success("Faq created successfully!");59 // window.location.reload();60 // })61 // .catch(err => {62 // message.error(err.response.data.response);63 // });64 } else {65 console.log("file", this.state.file);66 console.log("formData", formData);67 // console.log("id", userId);68 axios69 .put(70 PUT_USER_PROFILE_URL,71 // {72 formData,73 // userId: updateUsers._id,74 // id: updateUsers.id75 // },76 {77 headers: {78 Authorization: token,79 "Content-Type": "multipart/form-data"80 }81 }82 )83 .then(res => {84 message.success("User info updated successfully!");85 window.location.reload();86 })87 .catch(err => {88 message.error(err.response.data.response);89 });90 }91 };92 componentWillReceiveProps(props) {93 if (props.mode === "edit") {94 this.setState({ updateUsers: props.entry });95 }96 }97 render() {98 const { getFieldDecorator } = this.props.form;99 const { visible, hideForm, mode } = this.props;100 return (101 <div>102 {mode === "new" ? (103 <Drawer title="Add a new Faq" width={720} onClose={hideForm} visible={visible}>104 <Form layout="vertical" hideRequiredMark>105 <Row gutter={16}>106 <Col span={12}>107 <Form.Item label="Title">108 {getFieldDecorator("title", {109 rules: [{ required: true, message: "Please enter title" }]110 })(111 <Input112 placeholder="Please enter title"113 onChange={this.handleTextChange}114 name="title"115 value={this.state.faq.title}116 />117 )}118 </Form.Item>119 </Col>120 <Col span={12}>121 <Form.Item label="Content">122 {getFieldDecorator("content", {123 rules: [{ required: true, message: "Please enter content" }]124 })(125 <Input126 placeholder="Please enter content"127 onChange={this.handleTextChange}128 name="content"129 value={this.state.faq.content}130 />131 )}132 </Form.Item>133 </Col>134 </Row>135 </Form>136 <div137 style={{138 position: "absolute",139 left: 0,140 bottom: 0,141 width: "100%",142 borderTop: "1px solid #e9e9e9",143 padding: "10px 16px",144 background: "#fff",145 textAlign: "right"146 }}147 >148 <Button onClick={hideForm} style={{ marginRight: 8 }}>149 Cancel150 </Button>151 <Divider type="vertical" />152 <Button onClick={this.handleSubmit} type="primary">153 Submit154 </Button>155 </div>156 </Drawer>157 ) : (158 <Drawer159 title={`Edit details ${this.state.updateUsers && this.state.updateUsers.username}`}160 width={720}161 onClose={hideForm}162 visible={visible}163 entry={this.state.entry}164 >165 <Form layout="vertical" hideRequiredMark>166 <Row gutter={16}>167 <Col span={12}>168 <Form.Item label="Select image">169 {getFieldDecorator("userImage", {170 rules: [{ required: true, message: "Please select image" }]171 })(172 <Input173 onChange={this.handlefileChange}174 name="userImage"175 type="file"176 // value={this.state.banner.bannerImage}177 />178 )}179 </Form.Item>180 </Col>181 <Col span={12}>182 <Form.Item label="User name">183 <Input184 placeholder="Please enter username"185 value={this.state.updateUsers && this.state.updateUsers.username}186 name="username"187 onChange={this.handleTextChange}188 />189 </Form.Item>190 </Col>191 </Row>192 <Row gutter={16}>193 <Col span={12}>194 <Form.Item label="Date of birth">195 <DatePicker196 style={{ width: "100%" }}197 getPopupContainer={trigger => trigger.parentNode}198 onChange={this.handleDateChange}199 value={moment(this.state.updateUsers.dob)}200 />201 </Form.Item>202 </Col>203 <Col span={12}>204 <Form.Item label="Gender">205 <Select206 placeholder="Please select gender"207 value={this.state.updateUsers && this.state.updateUsers.gender}208 onChange={value =>209 this.handleTextChange({210 target: {211 name: "gender",212 value: value213 }214 })215 }216 >217 <Select.Option value="man">Man</Select.Option>218 <Select.Option value="woman">Woman</Select.Option>219 </Select>220 </Form.Item>221 </Col>222 223 </Row>224 225 </Form>226 <div227 style={{228 position: "absolute",229 left: 0,230 bottom: 0,231 width: "100%",232 borderTop: "1px solid #e9e9e9",233 padding: "10px 16px",234 background: "#fff",235 textAlign: "right"236 }}237 >238 <Button onClick={hideForm} style={{ marginRight: 8 }}>239 Cancel240 </Button>241 <Button onClick={this.handleSubmit} type="primary">242 Submit243 </Button>244 </div>245 </Drawer>246 )}247 </div>248 );249 }250}251const UserForm = Form.create()(UserFormRaw);...

Full Screen

Full Screen

App.js

Source:App.js Github

copy

Full Screen

1import React, { useState, useEffect } from 'react';2import axios from 'axios';3import './dist/style.css';4import { NewUserForm } from './components/NewUserForm';5import { NewAccountForm } from './components/NewAccountForm';6import { NewTransactionForm } from './components/NewTransactionForm';7import { EditUserForm } from './components/EditUserForm';8import { EditAccountForm } from './components/EditAccountForm';9import { DeleteUserForm } from './components/DeleteUserForm';10import { DeleteAccountForm } from './components/DeleteAccountForm';11import { UsersList } from './components/UsersList';12import { AccountsList } from './components/AccountsList';13import { TransactionTable } from './components/TransactionTable';14const userForm = {15 firstName: '',16 lastName: '',17 email: ''18};19const accountForm = {20 name: '',21 balance: '',22 credit: false23};24const App = () => {25 const [users, setUsers] = useState([]);26 const [currentUser, setCurrentUser] = useState({});27 const [currentAccount, setCurrentAccount] = useState({});28 const [payees, setPayees] = useState([]);29 useEffect(() => {30 updateUsers();31 updatePayees();32 }, []);33 useEffect(() => {34 const user = users.find((user) => user._id === currentUser._id);35 if (user) {36 setCurrentUser(user);37 } else {38 setCurrentUser({});39 }40 }, [users]);41 useEffect(() => {42 if (currentUser._id) {43 const account = currentUser.accounts.find((account) => account._id === currentAccount._id);44 if (account) {45 setCurrentAccount(account);46 } else {47 setCurrentAccount({});48 }49 }50 }, [currentUser]);51 const updateUsers = async () => {52 try {53 const res = await axios.get('http://localhost:8000/users');54 setUsers(res.data);55 } catch (err) {56 alert(err);57 }58 };59 const updatePayees = async () => {60 try {61 const res = await axios.get('http://localhost:8000/payees');62 setPayees(res.data);63 } catch (err) {64 alert(err);65 }66 };67 return (68 <div className="container">69 <div>70 <NewUserForm71 userForm={userForm}72 updateUsers={updateUsers}73 />74 <UsersList75 users={users}76 setCurrentUser={setCurrentUser}77 setCurrentAccount={setCurrentAccount}78 />79 {currentUser._id && <div>80 <div className="edit-delete-forms">81 <EditUserForm82 userForm={userForm}83 currentUser={currentUser}84 updateUsers={updateUsers}85 />86 <DeleteUserForm87 currentUser={currentUser}88 updateUsers={updateUsers}89 />90 </div>91 <NewAccountForm92 accountForm={accountForm}93 currentUser={currentUser}94 updateUsers={updateUsers}95 />96 <AccountsList97 currentUser={currentUser}98 setCurrentAccount={setCurrentAccount}99 />100 </div>}101 {currentAccount._id && <div className="edit-delete-forms">102 <EditAccountForm103 accountForm={accountForm}104 currentUser={currentUser}105 currentAccount={currentAccount}106 updateUsers={updateUsers}107 />108 <DeleteAccountForm109 currentUser={currentUser}110 currentAccount={currentAccount}111 updateUsers={updateUsers}112 />113 </div>}114 </div>115 {currentAccount._id && <div>116 <NewTransactionForm117 currentUser={currentUser}118 currentAccount={currentAccount}119 payees={payees}120 updateUsers={updateUsers}121 />122 </div>}123 {currentAccount._id && <div>124 <TransactionTable125 currentUser={currentUser}126 currentAccount={currentAccount}127 updateUsers={updateUsers}128 />129 </div>}130 </div>131 );132};...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1import { useMutation, useFlash } from '@redwoodjs/web'2import { navigate, routes } from '@redwoodjs/router'3 query UpdateUserQuery($id: Int!) {4 user: user(id: $id) {5 }6 }7export const Loading = () => <div>Loading...</div>8export const Success = ({ user }) => {9 const { addMessage } = useFlash()10 const [updateUser, { loading, error }] = useMutation(UPDATE_USER_MUTATION, {11 onCompleted: () => {12 navigate(routes.users())13 addMessage('User updated.', { classes: 'rw-flash-success' })14 },15 })16 const onSave = (input, id) => {17 updateUser({ variables: { input, id } })18 }19 return (20 user={user}21 onSave={onSave}22 error={error}23 loading={loading}24}

Full Screen

Using AI Code Generation

copy

Full Screen

1var redwoodUser = require('redwoodUser');2redwoodUser.UpdateUsers();3var redwoodUser = {4UpdateUsers: function() {5}6}7module.exports = redwoodUser;8var redwoodUser = {9UpdateUsers: function() {10}11}12module.exports = redwoodUser;13function RedwoodUser() {14this.UpdateUsers = function() {15}16}17module.exports = RedwoodUser;18var redwoodUser = function() {19var UpdateUsers = function() {20}21return {22}23}24module.exports = redwoodUser;

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run redwood automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful