From 2dad506280ce68595dd0e18ef9d0751de6b2a99c Mon Sep 17 00:00:00 2001 From: CPSO <5735792+CPSO@users.noreply.github.com> Date: Thu, 21 May 2020 02:29:41 +0200 Subject: [PATCH] button for fetch servers from user, and saves it in store. option list has all servers listed and saves the selected servers clientIdentifier as id --- src/components/layout/Header.vue | 47 +++++++++++++++++++++++----- src/store/index.js | 6 ++++ src/store/modules/servers/index.js | 50 ++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 7 deletions(-) create mode 100644 src/store/modules/servers/index.js diff --git a/src/components/layout/Header.vue b/src/components/layout/Header.vue index 5caea37..0afe691 100644 --- a/src/components/layout/Header.vue +++ b/src/components/layout/Header.vue @@ -18,15 +18,21 @@
- + + +
- +
@@ -38,7 +44,34 @@ diff --git a/src/store/index.js b/src/store/index.js index 10ecddc..75e6a9f 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,6 +1,7 @@ import Vue from 'vue' import Vuex from 'vuex' import VuexPersistence from 'vuex-persist'; +import servers from './modules/servers/index' Vue.use(Vuex) @@ -23,10 +24,15 @@ export default new Vuex.Store({ } }, getters: { + getAuthToken: state => { + return state.authToken + } }, actions: { }, modules: { + servers + }, plugins: [vuexLocal.plugin] }) diff --git a/src/store/modules/servers/index.js b/src/store/modules/servers/index.js new file mode 100644 index 0000000..302497e --- /dev/null +++ b/src/store/modules/servers/index.js @@ -0,0 +1,50 @@ +import axios from 'axios'; +import mstore from '../../index'; + + +const state = { + plexServers: [], + selectedServerId: '' +}; + +const mutations = { + UPDATE_PLEX_SERVERS(state, payload) { + state.plexServers = payload; + }, + UPDATE_SELECTED_SERVER(state, value) { + state.selectedServerId = value + } +}; + +const actions = { + getPlexServers({ commit }) { + axios({ + method: 'get', + url: 'https://plex.tv/api/v2/resources', + headers: + { + 'includeHttps' : '1', + 'includeRelay' : '1', + 'X-Plex-Client-Identifier' : 'WebTools-NG', + 'X-Plex-Token': mstore.getters.getAuthToken + }, + }) + .then((response) => { + commit('UPDATE_PLEX_SERVERS', response.data) + }); + + } +}; + +const getters = { + plexServers: state => state.plexServers +}; + +const serverModule = { + state, + mutations, + actions, + getters +} + +export default serverModule; \ No newline at end of file