From 74c24f15b8f7d97ffaad657c25a35eb2081e739e Mon Sep 17 00:00:00 2001 From: Yoshie Muranaka Date: Tue, 3 Dec 2019 10:45:46 -0800 Subject: Add proxy dev server for local development Adding proxy server to vue config to handle API requests for local development. You need to create a .env.development.local file with BASE_URL, VUE_APP_USERNAME, VUE_APP_PASSWORD defined. Temporarily adding authentication to defaults until login flow is functional. Signed-off-by: Yoshie Muranaka Signed-off-by: Derick Montague Change-Id: Ib1a1a992508fb9567af66ecb5775638e6ae6ee8d --- src/store/api.js | 34 +++++++++++++++ .../AccessControl/LocalUserMangementStore.js | 49 +++++++--------------- 2 files changed, 50 insertions(+), 33 deletions(-) create mode 100644 src/store/api.js (limited to 'src/store') diff --git a/src/store/api.js b/src/store/api.js new file mode 100644 index 00000000..d40ad0ad --- /dev/null +++ b/src/store/api.js @@ -0,0 +1,34 @@ +import Axios from "axios"; + +const api = Axios.create(); + +// TODO: this is a temporary workaround until +// authentication with login is working +const username = process.env.VUE_APP_USERNAME; +const password = process.env.VUE_APP_PASSWORD; +if (username && password) { + api.defaults.auth = {}; + api.defaults.auth.username = username; + api.defaults.auth.password = password; +} + +export default { + get(path) { + return api.get(path); + }, + delete(path, payload) { + return api.delete(path, payload); + }, + post(path, payload) { + return api.post(path, payload); + }, + patch(path, payload) { + return api.patch(path, payload); + }, + put(path, payload) { + return api.put(path, payload); + }, + all(promises) { + return Axios.all(promises); + } +}; diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js index dddfd2cc..41bbe0d8 100644 --- a/src/store/modules/AccessControl/LocalUserMangementStore.js +++ b/src/store/modules/AccessControl/LocalUserMangementStore.js @@ -1,4 +1,4 @@ -import Axios from "axios"; +import api from "../../api"; const LocalUserManagementStore = { namespaced: true, @@ -17,38 +17,21 @@ const LocalUserManagementStore = { }, actions: { getUsers({ commit }) { - let base; - let username; - let password; - if (base && username && password) { - Axios.defaults.baseURL = base; - Axios.defaults.auth = {}; - Axios.defaults.auth.username = username; - Axios.defaults.auth.password = password; - Axios.get("redfish/v1/AccountService/Accounts") - .then(response => { - return response.data.Members.map(user => user["@odata.id"]); - }) - .then(userIds => { - return Axios.all(userIds.map(user => Axios.get(user))); - }) - .then(users => { - const userData = users.map(user => user.data); - commit("setUsers", userData); - }) - .catch(error => { - console.log(error); - }); - } else { - // Faking async call with timeout - setTimeout(() => { - const users = [ - { UserName: "root", RoleId: "Admin", Locked: false, Enabled: true }, - { UserName: "user1", RoleId: "user", Locked: false, Enabled: false } - ]; - commit("setUsers", users); - }, 3000); - } + api + .get("/redfish/v1/AccountService/Accounts") + .then(response => { + return response.data.Members.map(user => user["@odata.id"]); + }) + .then(userIds => { + return api.all(userIds.map(user => api.get(user))); + }) + .then(users => { + const userData = users.map(user => user.data); + commit("setUsers", userData); + }) + .catch(error => { + console.log(error); + }); } } }; -- cgit v1.2.3