-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi.js
76 lines (57 loc) · 1.85 KB
/
api.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const customer = require('./customer')
const partner = require('./partner')
const {client } = require('./verification/twilio')
require('dotenv').config()
const SERVICE = process.env.SERVICE
const {checkMobile,getAccessToken,validateRefresh,validateJWT,returnTokens,inValidateRefresh} = require('./utils')
const tokenStore = require('./TokenStorage/tokenStore')
const router = require('express').Router()
router.use('/customer',customer)
router.use('/partner',partner)
router.post('/sendOTP',checkMobile,async function(req,res){
if(process.env.NODE_ENV === 'dev')
return res.sendStatus(200)
client.verify.services(SERVICE)
.verifications
.create({to: `+91${req.body.number}`, channel: 'sms'})
.then(()=>{return res.sendStatus(200) })
.catch((err)=>{
console.log(err)
return res.sendStatus(500)
})
})
router.post('/refreshToken',validateRefresh,getAccessToken,returnTokens,async (req,res)=>{
})
router.get('/devices',validateJWT,async (req,res)=>{
try{
const devices = await tokenStore.getDeviceList(req.user._id)
console.log(devices)
return res.json({devices})
}
catch(err)
{
console.log(err)
}
})
router.post('/logout',validateJWT,inValidateRefresh, (req,res)=>{
return res.sendStatus(200)
})
router.post('/remove',validateJWT,async (req,res)=>{
if(!req.body.clientID)
return res.sendStatus(400)
if(req.user.clientID === req.body.clientID)
return res.status(400).send('can not remote logout self')
try{
await tokenStore.remove(req.user._id,req.body.clientID)
return res.sendStatus(200)
}
catch(err)
{
console.log(err)
return res.sendStatus(500)
}
})
router.all('*',(req,res)=>{
return res.sendStatus(404)
})
module.exports = router