123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- const router = require('express').Router()
- const Address = require('../models/address')
- const User = require('../models/user')
- const virifyToken = require('../middlewares/verify-token')
- const axios = require('axios')
- router.post('/address', virifyToken, async (req, res) => {
- try {
- let address = new Address()
- address.user = req.decoded._id
- address.country = req.body.country
- address.fullName = req.body.fullName
- address.streetAddress = req.body.streetAddress
- address.city = req.body.city
- address.state = req.body.state
- address.zipCode = req.body.zipCode
- address.phoneNumber = req.body.phoneNumber
- address.deliverInstructions = req.body.deliverInstructions
- address.securityCode = req.body.securityCode
- await address.save()
- res.json({
- success: true,
- message: 'Success added an address'
- })
- } catch (err) {
- res.status(500).json({
- success: false,
- message: err.message
- })
- }
- })
- router.get('/address', virifyToken, async (req, res) => {
- try {
- let addresses = await Address.find({ user: req.decoded._id })
- res.json({
- success: true,
- addresses
- })
- } catch (err) {
- res.status(500).json({
- success: false,
- message: err.message
- })
- }
- })
- router.get('/countries', async (req, res) => {
- try {
- let response = await axios.get('https://restcountries.eu/rest/v2/all')
- res.json(response.data)
- } catch (err) {
- res.status(500).json({
- success: false,
- message: err.message
- })
- }
- })
- router.get('/address/:id', virifyToken, async (req, res) => {
- try {
- let address = await Address.findOne({ _id: req.params.id })
- res.json({
- success: true,
- address,
- })
- } catch (err) {
- res.status(500).json({
- success: fail,
- message: err.message
- })
- }
- })
- router.put('/address/:id', virifyToken, async (req, res) => {
- try {
- let foundAddress = await Address.findOne({ user: req.decoded._id, _id: req.params.id })
- if (foundAddress) {
- if (req.body.country) foundAddress.country = req.body.country
- if (req.body.fullName) foundAddress.fullName = req.body.fullName
- if (req.body.streetAddress) foundAddress.streetAddress = req.body.streetAddress
- if (req.body.city) foundAddress.city = req.body.city
- if (req.body.state) foundAddress.state = req.body.state
- if (req.body.zipCode) foundAddress.zipCode = req.body.zipCode
- if (req.body.phoneNumber) foundAddress.phoneNumber = req.body.phoneNumber
- if (req.body.deliverInstructions) foundAddress.deliverInstructions = req.body.deliverInstructions
- if (req.body.securityCode) foundAddress.securityCode = req.body.securityCode
- }
- await foundAddress.save()
- res.json({
- success: true,
- message: 'success updatea address'
- })
- } catch (err) {
- res.status(500).json({
- success: false,
- message: err.message
- })
- }
- })
- router.delete('/address/:id', virifyToken, async (req, res) => {
- try {
- let deleteAddress = await Address.remove({
- user: req.decoded._id,
- _id: req.params.id
- })
- if (deleteAddress) {
- res.json({
- success: true,
- message: 'Addres has been delete'
- })
- }
- } catch (err) {
- res.status(500).json({
- success: false,
- message: err.message
- })
- }
- })
- router.put('/address/set/default', virifyToken, async (req, res) => {
- try {
- const updatedAddressUser = await User.findOneAndUpdate(
- { _id: req.decoded._id },
- { $set: { address: req.body.id }}
- )
- if (updatedAddressUser) {
- res.json({
- success: true,
- message: 'Successfully set this address a default'
- })
- }
- } catch (err) {
- console.log(err)
- res.status(500).json({
- success: false,
- message: err.message
- })
- }
- })
- module.exports = router
|