Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import InitServer from '../../server';
- // import usernameGetToken from '../../helper/usernameGetToken'
- import changePasswordHelper from '../../helper/changePasswordHelper'
- // import {getUpdateAt} from '../helper/helper'
- import dataValidation from '../../validate/user'
- import Joi from 'joi'
- import emailGetToken from '../../helper/emailGetToken'
- import phoneGetToken from '../../helper/phoneGetToken'
- import moment from 'moment-timezone'
- import config from '../../myAWS'
- async function emailChangePassword(username,password){
- const user = await( emailGetToken(username))
- const userID = user.Items[0].userID
- const beforeUpdatedAt = user.Items[0].updatedAt
- // const beforeUpdatedAt = await getUpdateAt("USER_TOKEN", {
- // "userID":`${userID}`
- // },"updatedAt");
- //timezone should be retrieved from data.Item[0].timezone
- // console.log("beforeUpdated at "+ beforeUpdatedAt)
- await changePasswordHelper(userID,password,beforeUpdatedAt,user.Items[0].timezone)
- return(user)
- // var param={
- // TableName:"USER_TOKEN",
- // Key:{"userID":`${userID}`},
- // ConditionExpression: ' updatedAt = :beforeUpdateAt',
- // UpdateExpression:"set password = :password , updatedAt = :newUpdatedAt", // the type of attribute should be matched
- // ExpressionAttributeValues:{
- // ":password":`${password}`,
- // ":beforeUpdateAt":`${beforeUpdatedAt}`,
- // ":newUpdatedAt":moment().utcOffset(user.Items[0].timezone).format('YYYYMMDDHHmmssSSSZZ')
- // },
- // ReturnConsumedCapacity:"TOTAL"
- // };
- // console.log(param)
- // await config.dynamoDB.update(param,function(err,data){
- // console.log("updated successfully ", err, data)
- // if (err){
- // console.log(err)
- // }else{
- // console.log("updated successfully")
- // }
- // } )
- }
- async function phoneChangePassword(username,password){
- const user = await( phoneGetToken(username))
- const userID = user.Items[0].userID
- const beforeUpdatedAt = user.Items[0].updatedAt
- // const beforeUpdatedAt = await getUpdateAt("USER_TOKEN", {
- // "userID":`${userID}`
- // },"updatedAt");
- //timezone should be retrieved from data.Item[0].timezone
- changePasswordHelper(userID,password,beforeUpdatedAt,user.Items[0].timezone)
- }
- const route = async(req,res)=>{
- console.log(req.body)
- const email= Joi.validate({
- username:req.body.username
- },dataValidation.email)
- const phone = Joi.validate({
- username:req.body.username
- },dataValidation.phone)
- const validatePassword= Joi.validate({
- password :req.body.password
- },dataValidation.password)
- const password = req.body.password
- if (email.error===null && validatePassword.error ===null){
- console.log("come inside here")
- try {
- const data = await (emailChangePassword(req.body.username,password))
- res.send({"status":200 ,data})
- } catch (error) {
- res.send(error)
- }
- // const data = await (emailChangePassword(req.body.username,password))
- // res.send({"status":200 })
- // await (emailChangePassword(req.body.username,password))
- // res.send({"status":200})
- }else if(phone.error ===null && validatePassword.error ===null){
- await (phoneChangePassword(req.body.username,password))
- res.send({"status":200})
- }else{
- res.send ("some error")
- }
- }
- const routing = (router) => {
- //every API should customize the routing
- router.post('/user/forgetPassword', route);
- return router;
- }
- //lambda entry point
- export const handler = InitServer(routing);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement