diff --git a/src/api/contributions_collection/index.js b/src/api/contributions_collection/index.js new file mode 100644 index 0000000..5c0169f --- /dev/null +++ b/src/api/contributions_collection/index.js @@ -0,0 +1,13 @@ +import api from '@/api'; +import getHeader from '@/api/utils/get-header'; + +export default { + async getContributionsCollection(sessionID) { + let option = null; + if (sessionID) { + option = getHeader(sessionID); + } + const contributionsCollectionData = (await api.client.get('/contribution_collections', option)).data; + return contributionsCollectionData; + }, +}; diff --git a/src/components/GitHubContributionGraph.vue b/src/components/GitHubContributionGraph.vue new file mode 100644 index 0000000..9e68070 --- /dev/null +++ b/src/components/GitHubContributionGraph.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/store/index.js b/src/store/index.js index 0685493..a110be2 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -12,6 +12,7 @@ import memberIntroduction from './modules/memberIntroduction'; import editUser from './modules/editUser'; import invitation from './modules/invitation'; import ui from './modules/ui'; +import contributionsCollection from './modules/githubContributionsCollection'; Vue.use(Vuex); @@ -29,6 +30,7 @@ export default new Vuex.Store({ editUser, invitation, ui, + contributionsCollection, }, plugins: [ createPersistedState({ diff --git a/src/store/modules/githubContributionsCollection/index.js b/src/store/modules/githubContributionsCollection/index.js new file mode 100644 index 0000000..c1872c2 --- /dev/null +++ b/src/store/modules/githubContributionsCollection/index.js @@ -0,0 +1,24 @@ +import ContributionsCollectionClient from '@/api/contributions_collection'; + +export default { + namespaced: true, + state: { + contributionsCollection: null, + }, + /* eslint-disable no-param-reassign */ + mutations: { + setContributionsCollection(state, contributionsCollection) { + state.contributionsCollection = contributionsCollection; + }, + }, + /* eslint-enable no-param-reassign */ + actions: { + async getContributionsCollection({ commit, dispatch }, sessionID) { + try { + commit('setContributionsCollection', await ContributionsCollectionClient.getContributionsCollection(sessionID)); + } catch (e) { + dispatch('criticalError/createError', e, { root: true }); + } + }, + }, +}; diff --git a/src/views/Home.vue b/src/views/Home.vue index b4350df..75e878d 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,24 +1,32 @@