diff options
Diffstat (limited to 'src/js/store/modules')
-rw-r--r-- | src/js/store/modules/activity.js | 15 | ||||
-rw-r--r-- | src/js/store/modules/appSettings.js | 21 | ||||
-rw-r--r-- | src/js/store/modules/combo.js | 26 | ||||
-rw-r--r-- | src/js/store/modules/comments.js | 71 | ||||
-rw-r--r-- | src/js/store/modules/options.js | 144 | ||||
-rw-r--r-- | src/js/store/modules/poll.js | 75 | ||||
-rw-r--r-- | src/js/store/modules/polls.js | 10 | ||||
-rw-r--r-- | src/js/store/modules/pollsAdmin.js | 13 | ||||
-rw-r--r-- | src/js/store/modules/settings.js | 20 | ||||
-rw-r--r-- | src/js/store/modules/share.js | 55 | ||||
-rw-r--r-- | src/js/store/modules/shares.js | 43 | ||||
-rw-r--r-- | src/js/store/modules/subscription.js | 50 | ||||
-rw-r--r-- | src/js/store/modules/votes.js | 62 |
13 files changed, 187 insertions, 418 deletions
diff --git a/src/js/store/modules/activity.js b/src/js/store/modules/activity.js index b8ec60bd..9bb5e2f2 100644 --- a/src/js/store/modules/activity.js +++ b/src/js/store/modules/activity.js @@ -21,9 +21,7 @@ * */ -import axios from '@nextcloud/axios' -import { generateOcsUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { ActivityAPI } from '../../Api/activity.js' const defaultActivities = () => ({ list: [], @@ -49,18 +47,11 @@ const mutations = { const actions = { async list(context) { - const params = new URLSearchParams() - params.append('format', 'json') - params.append('since', 0) - params.append('limit', 50) - params.append('object_type', 'poll') - params.append('object_id', context.rootState.route.params.id) - const endPoint = generateOcsUrl('apps/activity/api/v2/activity/filter?') + params try { - const response = await axios.get(endPoint, axiosDefaultConfig) + const response = await ActivityAPI.getActivities(context.rootState.route.params.id) context.commit('set', response.data.ocs.data) - } catch { + } catch (error) { context.commit('reset') } }, diff --git a/src/js/store/modules/appSettings.js b/src/js/store/modules/appSettings.js index 3e2f23a8..7fcc62db 100644 --- a/src/js/store/modules/appSettings.js +++ b/src/js/store/modules/appSettings.js @@ -21,9 +21,7 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { AppSettingsAPI } from '../../Api/appSettings.js' const defaultAppSettings = () => ({ allAccessGroups: [], @@ -71,12 +69,8 @@ const mutations = { const actions = { async get(context) { - const endPoint = 'apps/polls/settings/app' try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await AppSettingsAPI.getAppSettings() context.commit('set', response.data.appSettings) } catch { // context.commit('reset') @@ -84,15 +78,14 @@ const actions = { }, async write(context) { - const endPoint = 'apps/polls/settings/app' try { - const response = await axios.post(generateUrl(endPoint), { - appSettings: context.state, - }, axiosDefaultConfig) + const response = await AppSettingsAPI.writeAppSettings(context.state) context.commit('set', response.data.appSettings) } catch (e) { - console.error('Error writing appSettings', { error: e.response }, { appSettings: state }) - throw e + if (e.name !== 'CancelledRequest') { + console.error('Error writing appSettings', { error: e.response }, { appSettings: state }) + throw e + } } }, } diff --git a/src/js/store/modules/combo.js b/src/js/store/modules/combo.js index 19128926..6adc9a0b 100644 --- a/src/js/store/modules/combo.js +++ b/src/js/store/modules/combo.js @@ -21,11 +21,11 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' import { uniqueOptions, uniqueParticipants } from '../../helpers/arrayHelper.js' import { sortBy } from 'lodash' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { PollsAPI } from '../../Api/polls.js' +import { OptionsAPI } from '../../Api/options.js' +import { VotesAPI } from '../../Api/votes.js' const defaultCombo = () => ({ id: 1, @@ -143,12 +143,8 @@ const actions = { }, async addPoll(context, payload) { - const endPoint = `apps/polls/poll/${payload.pollId}/poll` try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await PollsAPI.getPoll(payload.pollId) context.commit('addPoll', response.data) } catch (e) { console.debug('Error loading poll for combo', { error: e.response }) @@ -156,13 +152,8 @@ const actions = { }, async addOptions(context, payload) { - const endPoint = `apps/polls/poll/${payload.pollId}/options` - try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await OptionsAPI.getOptions(payload.pollId) context.commit('addOptions', response.data) } catch (e) { console.debug('Error loading options for combo', { error: e.response }) @@ -170,13 +161,8 @@ const actions = { }, async addVotes(context, payload) { - const endPoint = `apps/polls/poll/${payload.pollId}/votes` - try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await VotesAPI.getVotes(payload.pollId) context.commit('addVotes', response.data) } catch (e) { console.debug('Error loading options for combo', { error: e.response }) diff --git a/src/js/store/modules/comments.js b/src/js/store/modules/comments.js index 487e0f80..f3c66d3c 100644 --- a/src/js/store/modules/comments.js +++ b/src/js/store/modules/comments.js @@ -21,9 +21,8 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { CommentsAPI } from '../../Api/comments.js' +import { PublicAPI } from '../../Api/public.js' const defaultComments = () => ({ list: [], @@ -57,24 +56,17 @@ const getters = { const actions = { async list(context) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}` - } else if (context.rootState.route.name === 'list' && context.rootState.route.params.id) { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}` - } else { - context.commit('reset') - return - } - try { - const response = await axios.get(generateUrl(`${endPoint}/comments`), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.getComments(context.rootState.route.params.token) + } else if (context.rootState.route.name === 'vote') { + response = await CommentsAPI.getComments(context.rootState.route.params.id) + } else { + context.commit('reset') + return + } + context.commit('set', response.data) } catch { context.commit('reset') @@ -82,23 +74,16 @@ const actions = { }, async add(context, payload) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}` - } else if (context.rootState.route.name === 'list' && context.rootState.route.params.id) { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}` - } else { - context.commit('reset') - return - } - try { - await axios.post(generateUrl(`${endPoint}/comment`), { - message: payload.message, - }, axiosDefaultConfig) + if (context.rootState.route.name === 'publicVote') { + await PublicAPI.addComment(context.rootState.route.params.token, payload.message) + } else if (context.rootState.route.name === 'vote') { + await CommentsAPI.addComment(context.rootState.route.params.id, payload.message) + } else { + context.commit('reset') + return + } + context.dispatch('list') // context.commit('add', { comment: response.data.comment }) } catch (e) { @@ -108,15 +93,13 @@ const actions = { }, async delete(context, payload) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}` - } - endPoint = `${endPoint}/comment/${payload.comment.id}` - try { - await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + if (context.rootState.route.name === 'publicVote') { + await PublicAPI.deleteComment(context.rootState.route.params.token, payload.comment.id) + } else { + await CommentsAPI.deleteComment(payload.comment.id) + } + context.commit('delete', { comment: payload.comment }) } catch (e) { console.error('Error deleting comment', { error: e.response }, { payload }) diff --git a/src/js/store/modules/options.js b/src/js/store/modules/options.js index f59d3bd8..96e969f4 100644 --- a/src/js/store/modules/options.js +++ b/src/js/store/modules/options.js @@ -21,11 +21,10 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' import { orderBy } from 'lodash' import moment from '@nextcloud/moment' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { OptionsAPI } from '../../Api/options.js' +import { PublicAPI } from '../../Api/public.js' const defaultOptions = () => ({ list: [], @@ -137,23 +136,18 @@ const getters = { const actions = { async list(context) { - let endPoint = 'apps/polls' - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}/options` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}/options` - } else if (context.rootState.route.name === 'list' && context.rootState.route.params.id) { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}/options` - } else { - context.commit('reset') - return - } - try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + let response = null + + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.getOptions(context.rootState.route.params.token) + } else if (context.rootState.route.params.id) { + response = await OptionsAPI.getOptions(context.rootState.route.params.id) + } else { + context.commit('reset') + return + } + context.commit('set', { options: response.data.options }) } catch (e) { console.error('Error loding options', { error: e.response }, { pollId: context.rootState.route.params.id }) @@ -162,20 +156,28 @@ const actions = { }, async add(context, payload) { - let endPoint = 'apps/polls' - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}/option` - } else { - endPoint = `${endPoint}/option` - } - try { - const response = await axios.post(generateUrl(endPoint), { - pollId: context.rootState.route.params.id, - timestamp: payload.timestamp, - text: payload.text, - duration: payload.duration, - }, axiosDefaultConfig) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.addOption( + context.rootState.route.params.token, + { + pollId: context.rootState.route.params.id, + timestamp: payload.timestamp, + text: payload.text, + duration: payload.duration, + } + ) + } else { + response = await OptionsAPI.addOption( + { + pollId: context.rootState.route.params.id, + timestamp: payload.timestamp, + text: payload.text, + duration: payload.duration, + } + ) + } context.commit('setItem', { option: response.data.option }) } catch (e) { console.error(`Error adding option: ${e.response.data}`, { error: e.response }, { payload }) @@ -185,14 +187,8 @@ const actions = { }, async update(context, payload) { - const endPoint = `apps/polls/option/${payload.option.id}` - try { - const response = await axios.put(generateUrl(endPoint), { - timestamp: payload.option.timestamp, - text: payload.option.timeStamp, - duration: payload.option.duration, - }, axiosDefaultConfig) + const response = await OptionsAPI.updateOption(payload.option) context.commit('setItem', { option: response.data.option }) } catch (e) { console.error('Error updating option', { error: e.response }, { payload }) @@ -202,16 +198,12 @@ const actions = { }, async delete(context, payload) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}/option/${payload.option.id}` - } else { - endPoint = `${endPoint}/option/${payload.option.id}` - } - try { - await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + if (context.rootState.route.name === 'publicVote') { + await PublicAPI.deleteOption(context.rootState.route.params.token, payload.option.id) + } else { + await OptionsAPI.deleteOption(payload.option.id) + } context.commit('delete', { option: payload.option }) } catch (e) { console.error('Error deleting option', { error: e.response }, { payload }) @@ -221,13 +213,8 @@ const actions = { }, async addBulk(context, payload) { - const endPoint = 'apps/polls/option/bulk' - try { - const response = await axios.post(generateUrl(endPoint), { - pollId: context.rootState.route.params.id, - text: payload.text, - }, axiosDefaultConfig) + const response = OptionsAPI.addOptions(context.rootState.route.params.id, payload.text) context.commit('set', { options: response.data.options }) } catch (e) { console.error(`Error adding option: ${e.response.data}`, { error: e.response }, { payload }) @@ -237,12 +224,9 @@ const actions = { }, async confirm(context, payload) { - const endPoint = `apps/polls/option/${payload.option.id}/confirm` - context.commit('confirm', { option: payload.option }) - try { - const response = await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + const response = OptionsAPI.confirmOption(payload.optionId) context.commit('setItem', { option: response.data.option }) } catch (e) { console.error('Error confirming option', { error: e.response }, { payload }) @@ -252,14 +236,10 @@ const actions = { }, async reorder(context, payload) { - const endPoint = `apps/polls/poll/${context.rootState.route.params.id}/options/reorder` - context.commit('reorder', { options: payload }) try { - const response = await axios.post(generateUrl(endPoint), { - options: payload, - }, axiosDefaultConfig) + const response = await OptionsAPI.reorderOptions(context.rootState.route.params.id, payload) context.commit('set', { options: response.data.options }) } catch (e) { console.error('Error reordering option', { error: e.response }, { payload }) @@ -269,14 +249,13 @@ const actions = { }, async sequence(context, payload) { - const endPoint = `apps/polls/option/${payload.option.id}/sequence` - try { - const response = await axios.post(generateUrl(endPoint), { - step: payload.sequence.step, - unit: payload.sequence.unit.value, - amount: payload.sequence.amount, - }, axiosDefaultConfig) + const response = await OptionsAPI.addOptionsSequence( + payload.option.id, + payload.sequence.step, + payload.sequence.unit.value, + payload.sequence.amount, + ) context.commit('set', { options: response.data.options }) } catch (e) { console.error('Error creating sequence', { error: e.response }, { payload }) @@ -286,13 +265,12 @@ const actions = { }, async shift(context, payload) { - const endPoint = `apps/polls/poll/${context.rootState.route.params.id}/shift` - try { - const response = await axios.post(generateUrl(endPoint), { - step: payload.shift.step, - unit: payload.shift.unit.value, - }, axiosDefaultConfig) + const response = await OptionsAPI.shiftOptions( + context.rootState.route.params.id, + payload.shift.step, + payload.shift.unit.value, + ) context.commit('set', { options: response.data.options }) } catch (e) { console.error('Error shifting dates', { error: e.response }, { payload }) @@ -300,20 +278,6 @@ const actions = { throw e } }, - - async getEvents(context, payload) { - const endPoint = `apps/polls/option/${payload.option.id}/events` - - try { - return await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { tz: Intl.DateTimeFormat().resolvedOptions().timeZone }, - }) - } catch (e) { - return { events: [] } - } - }, - } export default { state, mutations, getters, actions, namespaced } diff --git a/src/js/store/modules/poll.js b/src/js/store/modules/poll.js index aa587336..14aedb22 100644 --- a/src/js/store/modules/poll.js +++ b/src/js/store/modules/poll.js @@ -21,12 +21,11 @@ * */ -import axios from '@nextcloud/axios' import moment from '@nextcloud/moment' -import { generateUrl } from '@nextcloud/router' import acl from './subModules/acl.js' import { uniqueArrayOfObjects } from '../../helpers/arrayHelper.js' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { PollsAPI } from '../../Api/polls.js' +import { PublicAPI } from '../../Api/public.js' const defaultPoll = () => ({ id: 0, @@ -173,52 +172,40 @@ const actions = { }, async get(context) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}/poll` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}/poll` - } else { - context.commit('reset') - context.commit('acl/reset') - return - } try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.getPoll(context.rootState.route.params.token) + } else if (context.rootState.route.name === 'vote') { + response = await PollsAPI.getPoll(context.rootState.route.params.id) + } else { + context.commit('reset') + context.commit('acl/reset') + return + } context.commit('set', response.data) context.commit('acl/set', response.data) } catch (e) { - console.debug('Error loading poll', { error: e.response }) + console.debug('Error loading poll', { error: e }) throw e } }, async add(context, payload) { - const endPoint = 'apps/polls/poll/add' try { - const response = await axios.post(generateUrl(endPoint), { - title: payload.title, - type: payload.type, - }, axiosDefaultConfig) - - context.dispatch('polls/list', null, { root: true }) + const response = await PollsAPI.addPoll(payload.type, payload.title) return response } catch (e) { console.error('Error adding poll:', { error: e.response }, { state: context.state }) throw e + } finally { + context.dispatch('polls/list', null, { root: true }) } }, async update(context) { - const endPoint = `apps/polls/poll/${context.state.id}` try { - const response = await axios.put(generateUrl(endPoint), { - poll: context.state, - }, axiosDefaultConfig) + const response = await PollsAPI.updatePoll(context.state) context.commit('set', response.data) context.commit('acl/set', response.data) } catch (e) { @@ -231,9 +218,8 @@ const actions = { }, async delete(context, payload) { - const endPoint = `apps/polls/poll/${payload.pollId}` try { - await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + await PollsAPI.deletePoll(payload.pollId) } catch (e) { console.error('Error deleting poll', { error: e.response }, { payload }) } finally { @@ -242,9 +228,8 @@ const actions = { }, async toggleArchive(context, payload) { - const endPoint = `apps/polls/poll/${payload.pollId}/toggleArchive` try { - await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + await PollsAPI.toggleArchive(payload.pollId) } catch (e) { console.error('Error archiving/restoring', { error: e.response }, { payload }) } finally { @@ -253,34 +238,14 @@ const actions = { }, async clone(context, payload) { - const endPoint = `apps/polls/poll/${payload.pollId}/clone` try { - const response = await axios.post(generateUrl(endPoint), null, axiosDefaultConfig) + const response = await PollsAPI.clonePoll(payload.pollId) context.dispatch('polls/list', null, { root: true }) return response } catch (e) { console.error('Error cloning poll', { error: e.response }, { payload }) } }, - - async sendConfirmation(context, payload) { - const endPoint = `apps/polls/poll/${context.rootState.route.params.id}/confirmation` - try { - const response = await axios.post(generateUrl(endPoint), null, axiosDefaultConfig) - return response.data.confirmations - } catch (e) { - console.error('Error sending confirmation', { error: e.response }, { payload }) - } - }, - - async getParticipantsEmailAddresses(context) { - const endPoint = `apps/polls/poll/${context.state.id}/addresses` - try { - return await axios.get(generateUrl(endPoint), axiosDefaultConfig) - } catch (e) { - console.error('Error retrieving email addresses', { error: e.response }) - } - }, } export default { namespaced, state, mutations, getters, actions, modules } diff --git a/src/js/store/modules/polls.js b/src/js/store/modules/polls.js index e188ac7b..17c0ad94 100644 --- a/src/js/store/modules/polls.js +++ b/src/js/store/modules/polls.js @@ -23,11 +23,9 @@ * */ -import axios from '@nextcloud/axios' import moment from '@nextcloud/moment' -import { generateUrl } from '@nextcloud/router' import { orderBy } from 'lodash' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { PollsAPI } from '../../Api/polls.js' const state = { list: [], @@ -197,13 +195,9 @@ const actions = { }, async list(context) { - const endPoint = 'apps/polls/polls' try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await PollsAPI.getPolls() context.commit('set', { list: response.data.list }) context.commit('setPollCreationAllowed', { pollCreationAllowed: response.data.pollCreationAllowed }) context.commit('setComboAllowed', { comboAllowed: response.data.comboAllowed }) diff --git a/src/js/store/modules/pollsAdmin.js b/src/js/store/modules/pollsAdmin.js index d30f1338..f718948e 100644 --- a/src/js/store/modules/pollsAdmin.js +++ b/src/js/store/modules/pollsAdmin.js @@ -21,10 +21,8 @@ * */ -import axios from '@nextcloud/axios' import { getCurrentUser } from '@nextcloud/auth' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { PollsAPI } from '../../Api/polls.js' const namespaced = true const state = { @@ -47,12 +45,8 @@ const actions = { return } - const endPoint = 'apps/polls/administration/polls' try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await PollsAPI.getPollsForAdmin() context.commit('set', { list: response.data }) } catch (e) { console.error('Error loading polls', { error: e.response }) @@ -64,8 +58,7 @@ const actions = { return } - const endPoint = `apps/polls/administration/poll/${payload.pollId}/takeover` - axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + PollsAPI.takeOver(payload.pollId) }, } diff --git a/src/js/store/modules/settings.js b/src/js/store/modules/settings.js index b5e03338..c2ef1c66 100644 --- a/src/js/store/modules/settings.js +++ b/src/js/store/modules/settings.js @@ -21,9 +21,8 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { CalendarAPI } from '../../Api/calendar.js' +import { UserSettingsAPI } from '../../Api/userSettings.js' const defaultSettings = () => ({ user: { @@ -122,12 +121,8 @@ const getters = { const actions = { async get(context) { - const endPoint = 'apps/polls/preferences' try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await UserSettingsAPI.getUserSettings() if (response.data.preferences.defaultViewTextPoll === 'desktop') { response.data.preferences.defaultViewTextPoll = 'table-view' } @@ -148,18 +143,14 @@ const actions = { async setPollCombo(context, payload) { await context.commit('setPollCombo', { - headers: { Accept: 'application/json' }, pollCombo: payload.pollCombo, }) context.dispatch('write') }, async write(context) { - const endPoint = 'apps/polls/preferences' try { - const response = await axios.post(generateUrl(endPoint), { - settings: context.state.user, - }, axiosDefaultConfig) + const response = await UserSettingsAPI.writeUserSettings(context.state.user) context.commit('setPreference', response.data.preferences) } catch (e) { console.error('Error writing preferences', { error: e.response }, { preferences: state.user }) @@ -168,8 +159,7 @@ const actions = { }, async getCalendars(context) { - const endPoint = 'apps/polls/calendars' - const response = await axios.get(generateUrl(endPoint), axiosDefaultConfig) + const response = await CalendarAPI.getCalendars() context.commit('setCalendars', { calendars: response.data.calendars }) return response }, diff --git a/src/js/store/modules/share.js b/src/js/store/modules/share.js index 43b50adb..e671f938 100644 --- a/src/js/store/modules/share.js +++ b/src/js/store/modules/share.js @@ -21,10 +21,7 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import { setCookie } from '../../helpers/cookieHelper.js' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { PublicAPI } from '../../Api/public.js' const defaultShares = () => ({ displayName: '', @@ -62,13 +59,8 @@ const actions = { return } - const endPoint = `apps/polls/s/${context.rootState.route.params.token}/share` - try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await PublicAPI.getShare(context.rootState.route.params.token) context.commit('set', { share: response.data.share }) return response.data } catch (e) { @@ -77,42 +69,13 @@ const actions = { } }, - async register(context, payload) { - if (context.rootState.route.name !== 'publicVote') { - return - } - - const endPoint = `apps/polls/s/${context.rootState.route.params.token}/register` - - try { - const response = await axios.post(generateUrl(endPoint), { - userName: payload.userName, - emailAddress: payload.emailAddress, - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, - }, axiosDefaultConfig) - - if (payload.saveCookie && context.state.type === 'public') { - const cookieExpiration = (30 * 24 * 60 * 1000) - setCookie(context.rootState.route.params.token, response.data.share.token, cookieExpiration) - } - - return { token: response.data.share.token } - - } catch (e) { - console.error('Error writing personal share', { error: e.response }, { payload }) - throw e - } - }, - async updateEmailAddress(context, payload) { if (context.rootState.route.name !== 'publicVote') { return } - const endPoint = `apps/polls/s/${context.rootState.route.params.token}/email/${payload.emailAddress}` - try { - const response = await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + const response = await PublicAPI.setEmail(context.rootState.route.params.token, payload.emailAddress) context.commit('set', { share: response.data.share }) context.dispatch('poll/get', null, { root: true }) } catch (e) { @@ -126,10 +89,8 @@ const actions = { return } - const endPoint = `apps/polls/s/${context.rootState.route.params.token}/name/${payload.displayName}` - try { - const response = await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + const response = await PublicAPI.setDisplayName(context.rootState.route.params.token, payload.displayName) context.commit('set', { share: response.data.share }) context.dispatch('poll/get', null, { root: true }) context.dispatch('comments/list', null, { root: true }) @@ -146,10 +107,8 @@ const actions = { return } - const endPoint = `apps/polls/s/${context.rootState.route.params.token}/email` - try { - const response = await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + const response = PublicAPI.deleteEmailAddress(context.rootState.route.params.token) context.commit('set', { share: response.data.share }) context.dispatch('subscription/update', false, { root: true }) context.dispatch('poll/get', null, { root: true }) @@ -164,10 +123,8 @@ const actions = { return } - const endPoint = `apps/polls/s/${context.rootState.route.params.token}/resend` - try { - return await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + return await PublicAPI.resendInvitation(context.rootState.route.params.token) } catch (e) { console.error('Error sending invitation', { error: e.response }, { payload }) throw e diff --git a/src/js/store/modules/shares.js b/src/js/store/modules/shares.js index 8095cb36..9fce6d73 100644 --- a/src/js/store/modules/shares.js +++ b/src/js/store/modules/shares.js @@ -21,9 +21,7 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { SharesAPI } from '../../Api/shares.js' const defaultShares = () => ({ list: [], @@ -72,13 +70,8 @@ const getters = { const actions = { async list(context) { - const endPoint = `apps/polls/poll/${context.rootState.route.params.id}/shares` - try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + const response = await SharesAPI.getShares(context.rootState.route.params.id) context.commit('set', response.data) } catch (e) { console.error('Error loading shares', { error: e.response }, { pollId: context.rootState.route.params.id }) @@ -87,10 +80,8 @@ const actions = { }, async add(context, payload) { - const endPoint = `apps/polls/poll/${context.rootState.route.params.id}/share` - try { - await axios.post(generateUrl(endPoint), payload.share, axiosDefaultConfig) + await SharesAPI.addShare(context.rootState.route.params.id, payload.share) } catch (e) { console.error('Error writing share', { error: e.response }, { payload }) throw e @@ -100,18 +91,12 @@ const actions = { }, async switchAdmin(context, payload) { - let endPoint = `apps/polls/share/${payload.share.token}` - - if (payload.share.type === 'admin') { - endPoint = `${endPoint}/user` - } else if (payload.share.type === 'user') { - endPoint = `${endPoint}/admin` - } + const setTo = payload.share.type === 'user' ? 'admin' : 'user' try { - await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + await SharesAPI.switchAdmin(payload.share.token, setTo) } catch (e) { - console.error('Error switching type', { error: e.response }, { payload }) + console.error(`Error switching type to ${setTo}`, { error: e.response }, { payload }) throw e } finally { context.dispatch('list') @@ -119,10 +104,8 @@ const actions = { }, async setPublicPollEmail(context, payload) { - const endPoint = `apps/polls/share/${payload.share.token}/publicpollemail/${payload.value}` - try { - await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + await SharesAPI.setEmailAddressConstraint(payload.share.token, payload.value) } catch (e) { console.error('Error changing email register setting', { error: e.response }, { payload }) throw e @@ -132,10 +115,8 @@ const actions = { }, async sendInvitation(context, payload) { - const endPoint = `apps/polls/share/${payload.share.token}/invite` - try { - return await axios.post(generateUrl(endPoint), null, axiosDefaultConfig) + return await SharesAPI.sendInvitation(payload.share.token) } catch (e) { console.error('Error sending invitation', { error: e.response }, { payload }) throw e @@ -145,10 +126,9 @@ const actions = { }, async resolveGroup(context, payload) { - const endPoint = `apps/polls/share/${payload.share.token}/resolve` try { - await axios.get(generateUrl(endPoint), axiosDefaultConfig) + await SharesAPI.resolveShare(payload.share.token) } catch (e) { console.error('Error exploding group', e.response.data, { error: e.response }, { payload }) throw e @@ -158,12 +138,9 @@ const actions = { }, async delete(context, payload) { - const endPoint = `apps/polls/share/${payload.share.token}` - context.commit('delete', { share: payload.share }) - try { - await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + await SharesAPI.deleteShare(payload.share.token) } catch (e) { console.error('Error removing share', { error: e.response }, { payload }) throw e diff --git a/src/js/store/modules/subscription.js b/src/js/store/modules/subscription.js index 3a531066..837c1736 100644 --- a/src/js/store/modules/subscription.js +++ b/src/js/store/modules/subscription.js @@ -21,9 +21,8 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { PollsAPI } from '../../Api/polls.js' +import { PublicAPI } from '../../Api/public.js' const defaultSubscription = () => ({ subscribed: false, @@ -47,22 +46,16 @@ const mutations = { const actions = { async get(context) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}/subscription` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}/subscription` - } else { - context.commit('reset') - return - } - try { - const response = await axios.get(generateUrl(endPoint), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.getSubscription(context.rootState.route.token) + } else if (context.rootState.route.name === 'vote') { + response = await PollsAPI.getSubscription(context.rootState.route.params.id) + } else { + context.commit('reset') + return + } context.commit('set', response.data) } catch { context.commit('set', false) @@ -70,19 +63,16 @@ const actions = { }, async update(context, payload) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}${payload ? '/subscribe' : '/unsubscribe'}` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}${payload ? '/subscribe' : '/unsubscribe'}` - } else { - context.commit('reset') - return - } - try { - const response = await axios.put(generateUrl(endPoint), null, axiosDefaultConfig) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = PublicAPI.setSubscription(context.rootState.route.params.token) + } else if (context.rootState.route.name === 'vote') { + response = PollsAPI.setSubscription(context.rootState.route.params.id) + } else { + context.commit('reset') + return + } context.commit('set', response.data) } catch (e) { console.error(e.response) diff --git a/src/js/store/modules/votes.js b/src/js/store/modules/votes.js index 9a7fb92d..16f94ed1 100644 --- a/src/js/store/modules/votes.js +++ b/src/js/store/modules/votes.js @@ -21,9 +21,8 @@ * */ -import axios from '@nextcloud/axios' -import { generateUrl } from '@nextcloud/router' -import axiosDefaultConfig from '../../helpers/AxiosDefault.js' +import { VotesAPI } from '../../Api/votes.js' +import { PublicAPI } from '../../Api/public.js' const defaultVotes = () => ({ list: [], @@ -81,21 +80,16 @@ const getters = { const actions = { async list(context) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.route.params.token}` - } else if (context.rootState.route.name === 'vote') { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}` - } else { - context.commit('reset') - return - } try { - const response = await axios.get(generateUrl(`${endPoint}/votes`), { - ...axiosDefaultConfig, - params: { time: +new Date() }, - }) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.getVotes(context.rootState.route.params.token) + } else if (context.rootState.route.name === 'vote') { + response = await VotesAPI.getVotes(context.rootState.route.params.id) + } else { + context.commit('reset') + return + } const votes = [] response.data.votes.forEach((vote) => { if (vote.answer === 'yes') { @@ -117,17 +111,13 @@ const actions = { }, async set(context, payload) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.poll.acl.token}` - } - try { - const response = await axios.put(generateUrl(`${endPoint}/vote`), { - optionId: payload.option.id, - setTo: payload.setTo, - }, axiosDefaultConfig) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.setVote(context.rootState.route.params.token, payload.option.id, payload.setTo) + } else { + response = await VotesAPI.setVote(payload.option.id, payload.setTo) + } context.commit('setItem', { option: payload.option, pollId: context.rootState.poll.id, vote: response.data.vote }) context.dispatch('options/list', null, { root: true }) context.dispatch('poll/get', null, { root: true }) @@ -144,16 +134,13 @@ const actions = { }, async resetVotes(context) { - let endPoint = 'apps/polls' - - if (context.rootState.route.name === 'publicVote') { - endPoint = `${endPoint}/s/${context.rootState.poll.acl.token}/user` - } else { - endPoint = `${endPoint}/poll/${context.rootState.route.params.id}/user` - } - try { - const response = await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + let response = null + if (context.rootState.route.name === 'publicVote') { + response = await PublicAPI.removeVotes(context.rootState.route.params.token) + } else { + response = await VotesAPI.removeUser(context.rootState.route.params.id) + } context.commit('deleteVotes', { userId: response.data.deleted }) } catch (e) { console.error('Error deleting votes', { error: e.response }) @@ -162,9 +149,8 @@ const actions = { }, async deleteUser(context, payload) { - const endPoint = `apps/polls/poll/${context.rootState.route.params.id}/user/${payload.userId}` try { - await axios.delete(generateUrl(endPoint), axiosDefaultConfig) + await VotesAPI.removeUser(context.rootState.route.params.id, payload.userId) context.commit('deleteVotes', payload) } catch (e) { console.error('Error deleting votes', { error: e.response }, { payload }) |