diff options
Diffstat (limited to 'src/store.js')
-rw-r--r-- | src/store.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/store.js b/src/store.js index 79bdaff..98a4417 100644 --- a/src/store.js +++ b/src/store.js @@ -11,6 +11,9 @@ export default new Vuex.Store({ commits: [], top_authors: [], emails: {}, + commit_data: {}, + author_avatar: "", + committer_avatar: "", }, getters: { loading: state => { @@ -28,6 +31,15 @@ export default new Vuex.Store({ emails: state => { return state.emails }, + commit: state => { + return state.commit_data + }, + author_avatar: state => { + return state.author_avatar + }, + committer_avatar: state => { + return state.committer_avatar + }, }, mutations: { loading_state: (state, value) => { @@ -45,6 +57,15 @@ export default new Vuex.Store({ load_emails: (state, value) => { state.emails = value }, + load_commit: (state, value) => { + state.commit_data = value + }, + load_author_avatar: (state, value) => { + state.author_avatar = value.hash_md5 + }, + load_committer_avatar: (state, value) => { + state.committer_avatar = value.hash_md5 + }, }, actions: { // Get all commits from the api backend @@ -78,6 +99,30 @@ export default new Vuex.Store({ commit('load_top_authors', await response.json()); }) commit('loading_top_authors_state', false) + }, + // Get commit by hash + async get_commit({commit}, hash) { + await fetch(`${this.state.api}/commit/${hash}/`) + .then(async response => { + commit('load_commit', await response.json()); + }) + }, + // Get email + async get_email({commit}, data) { + await fetch(`${this.state.api}/email/search/?q=${data.email}`) + .then(async response => { + if(await response.status == 200) { + commit(`load_${data.type}_avatar`, await response.json()); + } + }) + }, + // Set committer avatar + async set_committer({commit}, avatar) { + commit('load_committer_avatar', avatar); + }, + // Set loading state + async set_loading({commit}, status) { + commit('loading_state', status); } }, modules: { |