Advertisement
Guest User

Untitled

a guest
Nov 10th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import InitServer from '../../server';
  2. // import usernameGetToken from '../../helper/usernameGetToken'
  3. import changePasswordHelper from '../../helper/changePasswordHelper'
  4. // import {getUpdateAt} from '../helper/helper'
  5. import dataValidation from '../../validate/user'
  6. import Joi from 'joi'
  7. import emailGetToken from '../../helper/emailGetToken'
  8. import phoneGetToken from '../../helper/phoneGetToken'
  9. import moment from 'moment-timezone'
  10. import config from '../../myAWS'
  11.  
  12. async function  emailChangePassword(username,password){
  13.     const user = await( emailGetToken(username))
  14.    
  15.      
  16.  
  17.         const userID = user.Items[0].userID
  18.         const beforeUpdatedAt = user.Items[0].updatedAt
  19.         // const beforeUpdatedAt = await getUpdateAt("USER_TOKEN", {
  20.         //     "userID":`${userID}`
  21.         // },"updatedAt");
  22.  
  23.  
  24.  
  25.           //timezone should be retrieved from data.Item[0].timezone
  26.         //   console.log("beforeUpdated at "+ beforeUpdatedAt)
  27.        await changePasswordHelper(userID,password,beforeUpdatedAt,user.Items[0].timezone)
  28.         return(user)
  29.     //    var param={
  30.     //     TableName:"USER_TOKEN",
  31.     //     Key:{"userID":`${userID}`},
  32.     //     ConditionExpression: ' updatedAt = :beforeUpdateAt',
  33.     //     UpdateExpression:"set password = :password , updatedAt = :newUpdatedAt",   // the type of attribute should be matched
  34.     //     ExpressionAttributeValues:{
  35.     //         ":password":`${password}`,
  36.     //         ":beforeUpdateAt":`${beforeUpdatedAt}`,
  37.     //         ":newUpdatedAt":moment().utcOffset(user.Items[0].timezone).format('YYYYMMDDHHmmssSSSZZ')
  38.     //     },
  39.     //     ReturnConsumedCapacity:"TOTAL"
  40.     // };
  41.     //     console.log(param)
  42.  
  43.     //     await config.dynamoDB.update(param,function(err,data){
  44.     //         console.log("updated successfully ", err, data)
  45.     //     if (err){
  46.     //         console.log(err)
  47.     //     }else{
  48.     //         console.log("updated successfully")
  49.     //     }
  50.     // } )
  51.  
  52.  
  53.  
  54.    
  55. }
  56.  
  57.  
  58.  
  59. async function phoneChangePassword(username,password){
  60.        
  61.     const user = await( phoneGetToken(username))
  62.  
  63.        
  64.         const userID = user.Items[0].userID
  65.         const beforeUpdatedAt = user.Items[0].updatedAt
  66.  
  67.         // const beforeUpdatedAt = await getUpdateAt("USER_TOKEN", {
  68.         //     "userID":`${userID}`
  69.         // },"updatedAt");
  70.        
  71.         //timezone should be retrieved from data.Item[0].timezone
  72.         changePasswordHelper(userID,password,beforeUpdatedAt,user.Items[0].timezone)
  73.        
  74.    
  75. }
  76.  
  77.  
  78. const route = async(req,res)=>{
  79.     console.log(req.body)
  80.  
  81.     const email= Joi.validate({
  82.         username:req.body.username
  83.     },dataValidation.email)
  84.  
  85.     const phone = Joi.validate({
  86.         username:req.body.username
  87.     },dataValidation.phone)
  88.  
  89.     const validatePassword= Joi.validate({
  90.         password :req.body.password
  91.     },dataValidation.password)
  92.     const password = req.body.password
  93.  
  94.     if (email.error===null  &&  validatePassword.error ===null){
  95.         console.log("come inside here")
  96.     try {
  97.      
  98.         const data = await (emailChangePassword(req.body.username,password))
  99.         res.send({"status":200 ,data})
  100.     } catch (error) {
  101.         res.send(error)
  102.     }
  103.             // const data = await (emailChangePassword(req.body.username,password))
  104.             // res.send({"status":200 })
  105.    
  106.         // await (emailChangePassword(req.body.username,password))
  107.         // res.send({"status":200})
  108.     }else if(phone.error ===null    &&  validatePassword.error ===null){
  109.         await (phoneChangePassword(req.body.username,password))
  110.         res.send({"status":200})
  111.     }else{
  112.         res.send ("some error")
  113.     }
  114.  
  115.  
  116.  
  117.  
  118. }
  119. const routing = (router) => {
  120.     //every API should customize the routing
  121.     router.post('/user/forgetPassword', route);
  122.     return router;
  123. }
  124. //lambda entry point
  125. export const handler = InitServer(routing);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement