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 <yoshiemuranaka@gmail.com>
Signed-off-by: Derick Montague <derick.montague@ibm.com>
Change-Id: Ib1a1a992508fb9567af66ecb5775638e6ae6ee8d
diff --git a/src/store/api.js b/src/store/api.js
new file mode 100644
index 0000000..d40ad0a
--- /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 dddfd2c..41bbe0d 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 @@
},
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);
+ });
}
}
};