Refactor ~/logging.ts to a useLogger composable

This commit is contained in:
Kasper Seweryn 2022-04-30 20:40:57 +02:00 committed by Georg Krause
parent 7fb5284d0e
commit 12b09b085a
31 changed files with 167 additions and 114 deletions

View File

@ -71,9 +71,11 @@
<script>
import { debounce } from 'lodash-es'
import axios from 'axios'
import logger from '~/logging'
import AlbumCard from '~/components/audio/album/Card.vue'
import ArtistCard from '~/components/audio/artist/Card.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -118,7 +120,7 @@ export default {
}
const self = this
self.isLoading = true
logger.default.debug('Searching track matching "' + this.query + '"')
logger.debug('Searching track matching "' + this.query + '"')
const params = {
query: this.query
}

View File

@ -698,11 +698,13 @@
<script>
import $ from 'jquery'
import axios from 'axios'
import logger from '~/logging'
import PasswordInput from '~/components/forms/PasswordInput.vue'
import SubsonicTokenForm from '~/components/auth/SubsonicTokenForm.vue'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import AttachmentInput from '~/components/common/AttachmentInput.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -796,14 +798,14 @@ export default {
const url = `users/${this.$store.state.auth.username}/`
return axios.patch(url, payload).then(
response => {
logger.default.info('Updated settings successfully')
logger.info('Updated settings successfully')
self.settings.success = true
return axios.get('users/me/').then(response => {
self.$store.dispatch('auth/updateProfile', response.data)
})
},
error => {
logger.default.error('Error while updating settings')
logger.error('Error while updating settings')
self.isLoading = false
self.settings.errors = error.backendErrors
}
@ -818,7 +820,7 @@ export default {
self.apps = response.data
},
error => {
logger.default.error('Error while fetching Apps')
logger.error('Error while fetching Apps')
self.isLoading = false
self.settings.errors = error.backendErrors
}
@ -833,7 +835,7 @@ export default {
self.ownedApps = response.data.results
},
error => {
logger.default.error('Error while fetching owned Apps')
logger.error('Error while fetching owned Apps')
self.isLoading = false
self.settings.errors = error.backendErrors
}
@ -849,7 +851,7 @@ export default {
})
},
error => {
logger.default.error('Error while revoking App')
logger.error('Error while revoking App')
self.isLoading = false
self.settings.errors = error.backendErrors
}
@ -865,7 +867,7 @@ export default {
})
},
error => {
logger.default.error('Error while deleting App')
logger.error('Error while deleting App')
self.isLoading = false
self.settings.errors = error.backendErrors
}
@ -901,7 +903,7 @@ export default {
const url = 'auth/registration/change-password/'
return axios.post(url, credentials).then(
response => {
logger.default.info('Password successfully changed')
logger.info('Password successfully changed')
self.$router.push({
name: 'profile.overview',
params: {

View File

@ -154,10 +154,12 @@
<script>
import axios from 'axios'
import logger from '~/logging'
import LoginForm from '~/components/auth/LoginForm.vue'
import PasswordInput from '~/components/forms/PasswordInput.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -232,7 +234,7 @@ export default {
}
return axios.post('auth/registration/', payload).then(
response => {
logger.default.info('Successfully created account')
logger.info('Successfully created account')
self.submitted = true
self.isLoading = false
},

View File

@ -135,7 +135,6 @@
<script>
import axios from 'axios'
import $ from 'jquery'
import logger from '~/logging'
import RadioButton from '~/components/radios/Button.vue'
import Pagination from '~/components/Pagination.vue'
import OrderingMixin from '~/components/mixins/Ordering.vue'
@ -143,6 +142,10 @@ import PaginationMixin from '~/components/mixins/Pagination.vue'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import { checkRedirectToLogin } from '~/utils'
import TrackTable from '~/components/audio/track/Table.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const FAVORITES_URL = 'tracks/'
export default {
@ -218,7 +221,7 @@ export default {
page_size: this.paginateBy,
ordering: this.getOrderingAsString()
}
logger.default.time('Loading user favorites')
logger.time('Loading user favorites')
axios.get(url, { params: params }).then(response => {
self.results = response.data
self.nextLink = response.data.next
@ -226,7 +229,7 @@ export default {
self.results.results.forEach(track => {
self.$store.commit('favorites/track', { id: track.id, value: true })
})
logger.default.timeEnd('Loading user favorites')
logger.timeEnd('Loading user favorites')
self.isLoading = false
})
},

View File

@ -151,14 +151,15 @@ import qs from 'qs'
import axios from 'axios'
import $ from 'jquery'
import logger from '~/logging'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import AlbumCard from '~/components/audio/album/Card.vue'
import Pagination from '~/components/Pagination.vue'
import TagsSelector from '~/components/library/TagsSelector.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const FETCH_URL = 'albums/'
@ -239,7 +240,7 @@ export default {
include_channels: 'true',
content_category: 'music'
}
logger.default.debug('Fetching albums')
logger.debug('Fetching albums')
axios.get(
url,
{

View File

@ -215,7 +215,6 @@
<script>
import axios from 'axios'
import logger from '~/logging'
import PlayButton from '~/components/audio/PlayButton.vue'
import EmbedWizard from '~/components/audio/EmbedWizard.vue'
import Modal from '~/components/semantic/Modal.vue'
@ -224,6 +223,9 @@ import TagsList from '~/components/tags/List.vue'
import ReportMixin from '~/components/mixins/Report.vue'
import { getDomain } from '~/utils'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -333,7 +335,7 @@ export default {
async fetchData () {
const self = this
this.isLoading = true
logger.default.debug('Fetching artist "' + this.id + '"')
logger.debug('Fetching artist "' + this.id + '"')
const artistPromise = axios.get('artists/' + this.id + '/', { params: { refresh: 'true' } }).then(response => {
if (response.data.channel) {

View File

@ -167,14 +167,15 @@ import qs from 'qs'
import axios from 'axios'
import $ from 'jquery'
import logger from '~/logging'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import ArtistCard from '~/components/audio/artist/Card.vue'
import Pagination from '~/components/Pagination.vue'
import TagsSelector from '~/components/library/TagsSelector.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const FETCH_URL = 'artists/'
@ -262,7 +263,7 @@ export default {
include_channels: 'true',
content_category: 'music'
}
logger.default.debug('Fetching artists')
logger.debug('Fetching artists')
axios.get(
url,
{

View File

@ -72,11 +72,13 @@
<script>
import axios from 'axios'
import logger from '~/logging'
import ChannelsWidget from '~/components/audio/ChannelsWidget.vue'
import TrackWidget from '~/components/audio/track/Widget.vue'
import AlbumWidget from '~/components/audio/album/Widget.vue'
import PlaylistWidget from '~/components/playlists/Widget.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const ARTISTS_URL = 'artists/'
@ -116,10 +118,10 @@ export default {
playable: true
}
const url = ARTISTS_URL
logger.default.time('Loading latest artists')
logger.time('Loading latest artists')
axios.get(url, { params: params }).then(response => {
self.artists = response.data.results
logger.default.timeEnd('Loading latest artists')
logger.timeEnd('Loading latest artists')
self.isLoadingArtists = false
})
}

View File

@ -199,8 +199,6 @@ import qs from 'qs'
import axios from 'axios'
import $ from 'jquery'
import logger from '~/logging'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import TranslationsMixin from '~/components/mixins/Translations.vue'
@ -209,6 +207,9 @@ import Pagination from '~/components/Pagination.vue'
import TagsSelector from '~/components/library/TagsSelector.vue'
import Modal from '~/components/semantic/Modal.vue'
import RemoteSearchForm from '~/components/RemoteSearchForm.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const FETCH_URL = 'artists/'
@ -298,7 +299,7 @@ export default {
include_channels: 'true',
content_category: 'podcast'
}
logger.default.debug('Fetching artists')
logger.debug('Fetching artists')
axios.get(
url,
{

View File

@ -178,13 +178,14 @@
import axios from 'axios'
import $ from 'jquery'
import logger from '~/logging'
import OrderingMixin from '~/components/mixins/Ordering.vue'
import PaginationMixin from '~/components/mixins/Pagination.vue'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import RadioCard from '~/components/radios/Card.vue'
import Pagination from '~/components/Pagination.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const FETCH_URL = 'radios/radios/'
@ -260,7 +261,7 @@ export default {
name__icontains: this.query,
ordering: this.getOrderingAsString()
}
logger.default.debug('Fetching radios')
logger.debug('Fetching radios')
axios.get(url, { params: params }).then(response => {
self.result = response.data
self.isLoading = false

View File

@ -222,7 +222,6 @@
import time from '~/utils/time'
import axios from 'axios'
import { getDomain } from '~/utils'
import logger from '~/logging'
import PlayButton from '~/components/audio/PlayButton.vue'
import TrackFavoriteIcon from '~/components/favorites/TrackFavoriteIcon.vue'
import TrackPlaylistIcon from '~/components/playlists/TrackPlaylistIcon.vue'
@ -231,6 +230,9 @@ import EmbedWizard from '~/components/audio/EmbedWizard.vue'
import ReportMixin from '~/components/mixins/Report.vue'
import { momentFormat } from '~/init/filters'
import updateQueryString from '~/composables/updateQueryString'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
const FETCH_URL = 'tracks/'
@ -384,7 +386,7 @@ export default {
const self = this
this.isLoading = true
const url = FETCH_URL + this.id + '/'
logger.default.debug('Fetching track "' + this.id + '"')
logger.debug('Fetching track "' + this.id + '"')
axios.get(url, { params: { refresh: 'true' } }).then(response => {
self.track = response.data
axios.get(`artists/${response.data.artist.id}/`).then(response => {

View File

@ -92,8 +92,10 @@
import axios from 'axios'
import { mapState } from 'vuex'
import logger from '~/logging'
import Modal from '~/components/semantic/Modal.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -127,7 +129,7 @@ export default {
}
}
return axios.post('moderation/content-filters/', payload).then(response => {
logger.default.info('Successfully added track to playlist')
logger.info('Successfully added track to playlist')
self.update(false)
self.$store.commit('moderation/lastUpdate', new Date())
self.isLoading = false
@ -138,7 +140,7 @@ export default {
date: new Date()
})
}, error => {
logger.default.error(`Error while hiding ${self.type} ${self.target.id}`)
logger.error(`Error while hiding ${self.type} ${self.target.id}`)
self.errors = error.backendErrors
self.isLoading = false
})

View File

@ -102,7 +102,9 @@ import $ from 'jquery'
import axios from 'axios'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import logger from '~/logging'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
mixins: [TranslationsMixin],
@ -180,7 +182,7 @@ export default {
self.$emit('updated', response.data)
self.$store.dispatch('playlists/fetchOwn')
}, error => {
logger.default.error('Error while creating playlist')
logger.error('Error while creating playlist')
self.isLoading = false
self.errors = error.backendErrors
})

View File

@ -197,10 +197,12 @@ import { filter, sortBy, flow } from 'lodash-es'
import axios from 'axios'
import { mapState } from 'vuex'
import logger from '~/logging'
import Modal from '~/components/semantic/Modal.vue'
import PlaylistForm from '~/components/playlists/Form.vue'
import { onBeforeRouteLeave, onBeforeRouteUpdate } from 'vue-router'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -267,7 +269,7 @@ export default {
self.lastSelectedPlaylist = playlistId
return axios.post(`playlists/${playlistId}/add`, payload).then(response => {
logger.default.info('Successfully added track to playlist')
logger.info('Successfully added track to playlist')
self.update(false)
self.$store.dispatch('playlists/fetchOwn')
}, error => {

View File

@ -1,2 +1,10 @@
import jsLogger from 'js-logger'
export default (logger = 'default') => jsLogger.get(logger)
import Logger from 'js-logger'
Logger.useDefaults({
defaultLevel: import.meta.env.DEV
? Logger.DEBUG
: Logger.WARN
})
export default (logger?: string) => logger
? Logger.get(logger)
: Logger

View File

@ -246,8 +246,8 @@
<script>
import axios from 'axios'
import Logo from '@/components/Logo.vue'
import updateQueryString from './composables/updateQueryString'
import Logo from '~/components/Logo.vue'
import updateQueryString from '~/composables/updateQueryString'
import time from '~/utils/time'
function getURLParams () {

View File

@ -3,11 +3,14 @@ import { InitModule } from '~/types'
import createAuthRefreshInterceptor from 'axios-auth-refresh'
import axios, { AxiosError } from 'axios'
import moment from 'moment'
import logger from '~/logging'
import { parseAPIErrors } from '~/utils'
import Vue from 'vue'
import useLogger from '~/composables/useLogger'
import { gettext } from '~/init/locale'
export const install: InitModule = ({ app, store, router }) => {
const { $pgettext, $gettext } = gettext
const logger = useLogger()
export const install: InitModule = ({ store, router }) => {
axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.xsrfHeaderName = 'X-CSRFToken'
axios.interceptors.request.use(function (config) {
@ -29,7 +32,7 @@ export const install: InitModule = ({ app, store, router }) => {
error.backendErrors = []
if (store.state.auth.authenticated && !store.state.auth.oauth.accessToken && error.response.status === 401) {
store.commit('auth/authenticated', false)
logger.default.warn('Received 401 response from API, redirecting to login form', router.currentRoute.value.fullPath)
logger.warn('Received 401 response from API, redirecting to login form', router.currentRoute.value.fullPath)
await router.push({ name: 'login', query: { next: router.currentRoute.value.fullPath } })
}
@ -56,10 +59,10 @@ export const install: InitModule = ({ app, store, router }) => {
if (rateLimitStatus.availableSeconds) {
rateLimitStatus.availableSeconds = parseInt(rateLimitStatus.availableSeconds)
const tryAgain = moment().add(rateLimitStatus.availableSeconds, 's').toNow(true)
message = Vue.prototype.$pgettext('*/Error/Paragraph', 'You sent too many requests and have been rate limited, please try again in %{ delay }')
message = Vue.prototype.$gettextInterpolate(message, { delay: tryAgain })
message = $pgettext('*/Error/Paragraph', 'You sent too many requests and have been rate limited, please try again in %{ delay }')
message = $gettext(message, { delay: tryAgain })
} else {
message = Vue.prototype.$pgettext('*/Error/Paragraph', 'You sent too many requests and have been rate limited, please try again later')
message = $pgettext('*/Error/Paragraph', 'You sent too many requests and have been rate limited, please try again later')
}
error.backendErrors.push(message)
store.commit('ui/addMessage', {
@ -67,9 +70,9 @@ export const install: InitModule = ({ app, store, router }) => {
date: new Date(),
class: 'error'
})
logger.default.error('This client is rate-limited!', rateLimitStatus)
logger.error('This client is rate-limited!', rateLimitStatus)
} else if (error.response.status === 500) {
error.backendErrors.push('A server error occured')
error.backendErrors.push('A server error occurred')
} else if (error.response.data) {
if (error.response.data.detail) {
error.backendErrors.push(error.response.data.detail)
@ -81,7 +84,7 @@ export const install: InitModule = ({ app, store, router }) => {
}
if (error.backendErrors.length === 0) {
error.backendErrors.push('An unknown error occured, ensure your are connected to the internet and your funkwhale instance is up and running')
error.backendErrors.push('An unknown error occurred, ensure your are connected to the internet and your funkwhale instance is up and running')
}
// Do something with response error

View File

@ -115,7 +115,7 @@ export function humanSize (bytes: number) {
return bytes.toFixed(1) + ' ' + units[u]
}
// Removes duplicates from a list
// Remove duplicates from a list
export function unique (list: Record<string, unknown>[], property: string) {
property = property || 'id'
const unique: Record<string, unknown>[] = []
@ -123,6 +123,8 @@ export function unique (list: Record<string, unknown>[], property: string) {
return unique
}
// TODO (wvffle): Migrate to Vue 3
// Replace filters with computed values
export const install: InitModule = () => {
Vue.filter('humanSize', humanSize)
Vue.filter('unique', unique)

View File

@ -1,8 +0,0 @@
import jsLogger from 'js-logger'
jsLogger.useDefaults()
export default {
get: jsLogger.get,
default: jsLogger.get('default')
}

View File

@ -1,5 +1,7 @@
import axios from 'axios'
import logger from '~/logging'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
// import axios from 'axios'
@ -13,7 +15,7 @@ const RADIOS = {
axios.get('history/listenings', { params }).then((response) => {
const latest = response.data.results[0]
if (!latest) {
logger.default.error('No more tracks')
logger.error('No more tracks')
dispatch('stop')
}
this.offset += 1
@ -24,7 +26,7 @@ const RADIOS = {
})
}
}, (error) => {
logger.default.error('Error while fetching listenings', error)
logger.error('Error while fetching listenings', error)
dispatch('stop')
})
},
@ -40,7 +42,7 @@ const RADIOS = {
this.offset += 1
}
}, (error) => {
logger.default.error('Cannot retrieve track info', error)
logger.error('Cannot retrieve track info', error)
})
}
}

View File

@ -1,6 +1,8 @@
import Vue from 'vue'
import axios from 'axios'
import logger from '~/logging'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
function getDefaultScopedTokens () {
return {
@ -130,7 +132,7 @@ export default {
form.set(k, credentials[k])
})
return axios.post('users/login', form).then(response => {
logger.default.info('Successfully logged in as', credentials.username)
logger.info('Successfully logged in as', credentials.username)
dispatch('fetchProfile').then(() => {
// Redirect to a specified route
import('~/router').then((router) => {
@ -138,7 +140,7 @@ export default {
})
})
}, response => {
logger.default.error('Error while logging in', response.data)
logger.error('Error while logging in', response.data)
onError(response)
})
},
@ -159,12 +161,12 @@ export default {
modules.forEach(m => {
commit(`${m}/reset`, null, { root: true })
})
logger.default.info('Log out, goodbye!')
logger.info('Log out, goodbye!')
},
fetchProfile ({ commit, dispatch, state }) {
return new Promise((resolve, reject) => {
axios.get('users/me/').then((response) => {
logger.default.info('Successfully fetched user profile')
logger.info('Successfully fetched user profile')
dispatch('updateProfile', response.data)
dispatch('ui/fetchUnreadNotifications', null, { root: true })
if (response.data.permissions.library) {
@ -181,7 +183,7 @@ export default {
dispatch('playlists/fetchOwn', null, { root: true })
resolve(response.data)
}, (response) => {
logger.default.info('Error while fetching user profile')
logger.info('Error while fetching user profile')
reject(new Error('Error while fetching user profile'))
})
})

View File

@ -1,5 +1,7 @@
import axios from 'axios'
import logger from '~/logging'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -57,16 +59,16 @@ export default {
commit('subscriptions', { uuid, value })
if (value) {
return axios.post(`channels/${uuid}/subscribe/`).then((response) => {
logger.default.info('Successfully subscribed to channel')
logger.info('Successfully subscribed to channel')
}, (response) => {
logger.default.info('Error while subscribing to channel')
logger.info('Error while subscribing to channel')
commit('subscriptions', { uuid, value: !value })
})
} else {
return axios.post(`channels/${uuid}/unsubscribe/`).then((response) => {
logger.default.info('Successfully unsubscribed from channel')
logger.info('Successfully unsubscribed from channel')
}, (response) => {
logger.default.info('Error while unsubscribing from channel')
logger.info('Error while unsubscribing from channel')
commit('subscriptions', { uuid, value: !value })
})
}

View File

@ -1,5 +1,7 @@
import axios from 'axios'
import logger from '~/logging'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -36,16 +38,16 @@ export default {
commit('track', { id, value })
if (value) {
return axios.post('favorites/tracks/', { track: id }).then((response) => {
logger.default.info('Successfully added track to favorites')
logger.info('Successfully added track to favorites')
}, (response) => {
logger.default.info('Error while adding track to favorites')
logger.info('Error while adding track to favorites')
commit('track', { id, value: !value })
})
} else {
return axios.post('favorites/tracks/remove/', { track: id }).then((response) => {
logger.default.info('Successfully removed track from favorites')
logger.info('Successfully removed track from favorites')
}, (response) => {
logger.default.info('Error while removing track from favorites')
logger.info('Error while removing track from favorites')
commit('track', { id, value: !value })
})
}
@ -62,7 +64,7 @@ export default {
}
const promise = axios.get('favorites/tracks/all/', { params: params })
return promise.then((response) => {
logger.default.info('Fetched a batch of ' + response.data.results.length + ' favorites')
logger.info('Fetched a batch of ' + response.data.results.length + ' favorites')
response.data.results.forEach(result => {
commit('track', { id: result.track, value: true })
})

View File

@ -1,6 +1,8 @@
import axios from 'axios'
import logger from '~/logging'
import { merge } from 'lodash-es'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
function getDefaultUrl () {
return (
@ -142,7 +144,7 @@ export default {
// Send a request to the login URL and save the returned JWT
fetchSettings ({ commit }, payload) {
return axios.get('instance/settings/').then(response => {
logger.default.info('Successfully fetched instance settings')
logger.info('Successfully fetched instance settings')
const sections = response.data.reduce((map, entry) => {
map[entry.section] ??= {}
@ -153,14 +155,14 @@ export default {
commit('settings', sections)
payload?.callback?.()
}, response => {
logger.default.error('Error while fetching settings', response.data)
logger.error('Error while fetching settings', response.data)
})
},
fetchFrontSettings ({ commit }) {
return axios.get('/settings.json').then(response => {
commit('frontSettings', response.data)
}, response => {
logger.default.error('Error when fetching front-end configuration (or no customization available)')
logger.error('Error when fetching front-end configuration (or no customization available)')
})
}
}

View File

@ -1,5 +1,7 @@
import axios from 'axios'
import logger from '~/logging'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -41,19 +43,19 @@ export default {
set ({ commit, state }, { uuid, value }) {
if (value) {
return axios.post('federation/follows/library/', { target: uuid }).then((response) => {
logger.default.info('Successfully subscribed to library')
logger.info('Successfully subscribed to library')
commit('follows', { library: uuid, follow: response.data })
}, (response) => {
logger.default.info('Error while subscribing to library')
logger.info('Error while subscribing to library')
commit('follows', { library: uuid, follow: null })
})
} else {
const follow = state.followsByLibrary[uuid]
return axios.delete(`federation/follows/library/${follow.uuid}/`).then((response) => {
logger.default.info('Successfully unsubscribed from library')
logger.info('Successfully unsubscribed from library')
commit('follows', { library: uuid, follow: null })
}, (response) => {
logger.default.info('Error while unsubscribing from library')
logger.info('Error while unsubscribing from library')
commit('follows', { library: uuid, follow: follow })
})
}

View File

@ -1,6 +1,8 @@
import axios from 'axios'
import logger from '~/logging'
import { sortBy } from 'lodash-es'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -98,7 +100,7 @@ export default {
promise = axios.get('moderation/content-filters/', { params: params })
}
return promise.then((response) => {
logger.default.info('Fetched a batch of ' + response.data.results.length + ' filters')
logger.info('Fetched a batch of ' + response.data.results.length + ' filters')
if (response.data.next) {
dispatch('fetchContentFilters', response.data.next)
}

View File

@ -1,6 +1,8 @@
import axios from 'axios'
import logger from '~/logging'
import time from '~/utils/time'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -135,7 +137,7 @@ export default {
return
}
return axios.post('history/listenings/', { track: track.id }).then((response) => {}, (response) => {
logger.default.error('Could not record track in history')
logger.error('Could not record track in history')
})
},
trackEnded ({ commit, dispatch, rootState }, track) {

View File

@ -1,5 +1,7 @@
import logger from '~/logging'
import { shuffle } from 'lodash-es'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -72,7 +74,7 @@ export default {
},
appendMany ({ state, commit, dispatch }, { tracks, index, callback }) {
logger.default.info('Appending many tracks to the queue', tracks.map(e => { return e.title }))
logger.info('Appending many tracks to the queue', tracks.map(e => { return e.title }))
let shouldPlay = false
if (state.tracks.length === 0) {
index = 0
@ -128,11 +130,11 @@ export default {
},
next ({ state, dispatch, commit, rootState }) {
if (rootState.player.looping === 2 && state.currentIndex >= state.tracks.length - 1) {
logger.default.info('Going back to the beginning of the queue')
logger.info('Going back to the beginning of the queue')
return dispatch('currentIndex', 0)
} else {
if (state.currentIndex < state.tracks.length - 1) {
logger.default.debug('Playing next track')
logger.debug('Playing next track')
return dispatch('currentIndex', state.currentIndex + 1)
} else {
commit('ended', true)

View File

@ -1,7 +1,8 @@
import axios from 'axios'
import logger from '~/logging'
import { getClientOnlyRadio } from '~/radios'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
namespaced: true,
@ -62,12 +63,12 @@ export default {
return
}
return axios.post('radios/sessions/', params).then((response) => {
logger.default.info('Successfully started radio ', type)
logger.info('Successfully started radio ', type)
commit('current', { type, objectId, session: response.data.id, customRadioId })
commit('running', true)
dispatch('populateQueue', true)
}, (response) => {
logger.default.error('Error while starting radio', type)
logger.error('Error while starting radio', type)
})
},
stop ({ commit, state }) {
@ -91,7 +92,7 @@ export default {
return getClientOnlyRadio(state.current).populateQueue({ current: state.current, dispatch, state, rootState, playNow })
}
return axios.post('radios/tracks/', params).then((response) => {
logger.default.info('Adding track to queue from radio')
logger.info('Adding track to queue from radio')
const append = dispatch('queue/append', { track: response.data.track }, { root: true })
if (playNow) {
append.then(() => {
@ -99,7 +100,7 @@ export default {
})
}
}, () => {
logger.default.error('Error while adding track to queue from radio')
logger.error('Error while adding track to queue from radio')
commit('reset')
})
}

View File

@ -358,8 +358,10 @@
<script>
import axios from 'axios'
import logger from '~/logging'
import TranslationsMixin from '~/components/mixins/Translations.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
mixins: [
@ -424,12 +426,12 @@ export default {
params[attr] = newValue
axios.patch(`manage/library/libraries/${this.id}/`, params).then(
response => {
logger.default.info(
logger.info(
`${attr} was updated succcessfully to ${newValue}`
)
},
error => {
logger.default.error(
logger.error(
`Error while setting ${attr} to ${newValue}`,
error
)

View File

@ -567,11 +567,13 @@
<script>
import axios from 'axios'
import logger from '~/logging'
import $ from 'jquery'
import InstancePolicyForm from '~/components/manage/moderation/InstancePolicyForm.vue'
import InstancePolicyCard from '~/components/manage/moderation/InstancePolicyCard.vue'
import useLogger from '~/composables/useLogger'
const logger = useLogger()
export default {
components: {
@ -690,13 +692,13 @@ export default {
}
axios.patch(`manage/users/users/${this.object.user.id}/`, params).then(
response => {
logger.default.info(
logger.info(
`${attr} was updated succcessfully to ${newValue}`
)
self.updating[attr] = false
},
error => {
logger.default.error(
logger.error(
`Error while setting ${attr} to ${newValue}`,
error
)