address.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. const router = require('express').Router()
  2. const Address = require('../models/address')
  3. const User = require('../models/user')
  4. const virifyToken = require('../middlewares/verify-token')
  5. const axios = require('axios')
  6. router.post('/address', virifyToken, async (req, res) => {
  7. try {
  8. let address = new Address()
  9. address.user = req.decoded._id
  10. address.country = req.body.country
  11. address.fullName = req.body.fullName
  12. address.streetAddress = req.body.streetAddress
  13. address.city = req.body.city
  14. address.state = req.body.state
  15. address.zipCode = req.body.zipCode
  16. address.phoneNumber = req.body.phoneNumber
  17. address.deliverInstructions = req.body.deliverInstructions
  18. address.securityCode = req.body.securityCode
  19. await address.save()
  20. res.json({
  21. success: true,
  22. message: 'Success added an address'
  23. })
  24. } catch (err) {
  25. res.status(500).json({
  26. success: false,
  27. message: err.message
  28. })
  29. }
  30. })
  31. router.get('/address', virifyToken, async (req, res) => {
  32. try {
  33. let addresses = await Address.find({ user: req.decoded._id })
  34. res.json({
  35. success: true,
  36. addresses
  37. })
  38. } catch (err) {
  39. res.status(500).json({
  40. success: false,
  41. message: err.message
  42. })
  43. }
  44. })
  45. router.get('/countries', async (req, res) => {
  46. try {
  47. let response = await axios.get('https://restcountries.eu/rest/v2/all')
  48. res.json(response.data)
  49. } catch (err) {
  50. res.status(500).json({
  51. success: false,
  52. message: err.message
  53. })
  54. }
  55. })
  56. router.put('/address/:id', virifyToken, async (req, res) => {
  57. try {
  58. let foundAddress = await Address.findOne({ user: req.decoded._id, _id: req.params.id })
  59. if (foundAddress) {
  60. if (req.body.country) foundAddress.country = req.body.country
  61. if (req.body.fullName) foundAddress.fullName = req.body.fullName
  62. if (req.body.streetAddress) foundAddress.streetAddress = req.body.streetAddress
  63. if (req.body.city) foundAddress.city = req.body.city
  64. if (req.body.state) foundAddress.state = req.body.state
  65. if (req.body.zipCode) foundAddress.zipCode = req.body.zipCode
  66. if (req.body.phoneNumber) foundAddress.phoneNumber = req.body.phoneNumber
  67. if (req.body.deliverInstructions) foundAddress.deliverInstructions = req.body.deliverInstructions
  68. if (req.body.securityCode) foundAddress.securityCode = req.body.securityCode
  69. }
  70. await foundAddress.save()
  71. res.json({
  72. success: true,
  73. message: 'success updatea address'
  74. })
  75. } catch (err) {
  76. res.status(500).json({
  77. success: false,
  78. message: err.message
  79. })
  80. }
  81. })
  82. router.delete('/address/:id', virifyToken, async (req, res) => {
  83. try {
  84. let deleteAddress = await Address.remove({
  85. user: req.decoded._id,
  86. _id: req.params.id
  87. })
  88. if (deleteAddress) {
  89. res.json({
  90. success: true,
  91. message: 'Addres has been delete'
  92. })
  93. }
  94. } catch (err) {
  95. res.status(500).json({
  96. success: false,
  97. message: err.message
  98. })
  99. }
  100. })
  101. router.put('/address/set/default', virifyToken, async (req, res) => {
  102. try {
  103. const updatedAddressUser = await User.findOneAndUpdate(
  104. { _id: req.decoded._id },
  105. { $set: { address: req.body.id }}
  106. )
  107. if (updatedAddressUser) {
  108. res.json({
  109. success: true,
  110. message: 'Successfully set this address a default'
  111. })
  112. }
  113. } catch (err) {
  114. console.log(err)
  115. res.status(500).json({
  116. success: false,
  117. message: err.message
  118. })
  119. }
  120. })
  121. module.exports = router