Browse Source

주소찾기 오픈 API 적용

kiboky 5 years ago
parent
commit
095b6e1335
4 changed files with 58 additions and 3 deletions
  1. 18 3
      client/pages/address/add.vue
  2. 26 0
      server/package-lock.json
  3. 1 0
      server/package.json
  4. 13 0
      server/routes/address.js

+ 18 - 3
client/pages/address/add.vue

@@ -50,8 +50,11 @@
                   <div class="a-spacing-top-medium">
                     <label style="margin-bottom: 0px;">Country/Region</label>
                     <select v-model="country" class="a-select-option">
-                      <option value>--</option>
-                      <option></option>
+                      <option
+                        v-for="country in countries"
+                        :key="country.alpha2Code"
+                        :value="country.name"
+                      >{{ country.name }}</option>
                     </select>
                   </div>
                   <!-- Full name -->
@@ -170,9 +173,21 @@
 
 <script>
 export default {
+  async asyncData ({ $axios }) {
+    try {
+      let response = await $axios.$get('/api/countries')
+
+      return {
+        countries: response
+      }
+    } catch (err) {
+      console.log(err)
+    }
+  },
+
   data () {
     return {
-      country: '',
+      country: 'United States of America',
       fullName: '',
       streetAddress1: '',
       streetAddress2: '',

+ 26 - 0
server/package-lock.json

@@ -39,6 +39,14 @@
         "xml2js": "0.4.19"
       }
     },
+    "axios": {
+      "version": "0.19.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.1.tgz",
+      "integrity": "sha512-Yl+7nfreYKaLRvAvjNPkvfjnQHJM1yLBY3zhqAwcJSwR/6ETkanUgylgtIvkvz0xJ+p/vZuNw8X7Hnb7Whsbpw==",
+      "requires": {
+        "follow-redirects": "1.5.10"
+      }
+    },
     "base64-js": {
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
@@ -311,6 +319,24 @@
         "unpipe": "~1.0.0"
       }
     },
+    "follow-redirects": {
+      "version": "1.5.10",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
+      "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
+      "requires": {
+        "debug": "=3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
     "forwarded": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",

+ 1 - 0
server/package.json

@@ -10,6 +10,7 @@
   "license": "ISC",
   "dependencies": {
     "aws-sdk": "^2.596.0",
+    "axios": "^0.19.1",
     "bcrypt-nodejs": "0.0.3",
     "body-parser": "^1.19.0",
     "cors": "^2.8.5",

+ 13 - 0
server/routes/address.js

@@ -1,6 +1,7 @@
 const router = require('express').Router()
 const Address = require('../models/address')
 const virifyToken = require('../middlewares/verify-token')
+const axios = require('axios')
 
 router.post('/address', virifyToken, async (req, res) => {
   try {
@@ -46,4 +47,16 @@ router.get('/address', virifyToken, async (req, res) => {
   }
 })
 
+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
+    })
+  }
+})
 module.exports = router