feat: add user context to sentry.io reports

This commit is contained in:
Matthieu Bessat 2020-09-02 22:10:57 +02:00
parent 8691ca0453
commit b02a051223
4 changed files with 36 additions and 16 deletions

View file

@ -1 +1,2 @@
VUE_APP_BASE_URL=https://associations.espacecondorcet.org
VUE_APP_SENTRY_URL=https://wow.com

View file

@ -77,6 +77,8 @@
</template>
<script>
import * as Sentry from '@sentry/browser'
export default {
data: () => ({
drawer: null,
@ -111,6 +113,10 @@ export default {
window.localStorage.setItem('adminToken', adminToken)
this.loading = false
this.enabled = true
// set sentry meta data to debug
Sentry.setTag('user.type', 'admin')
Sentry.setUser({type: "admin"})
// this.$store.commit('ADD_ALERT', {
// color: 'success',
// text: 'Vous voilà connecté !'

View file

@ -254,6 +254,7 @@
</template>
<script>
import * as Sentry from '@sentry/browser'
import Preview from '../components/Preview'
export default {
@ -348,6 +349,29 @@ export default {
this.$apitator.setAuthorizationToken(delegateToken)
// verify the token
this.$apitator.get('/delegate', { withAuth: true }).then(res => {
const organization = res.data.data.organization
const proposedVersion = res.data.data.organization.proposedVersion
const tags = res.data.data.tags
const organizationMeta = {
_id: organization._id,
adminName: organization.adminName,
email: organization.email,
slug: organization.slugs[organization.slugs.length - 1],
publicUrl: process.env.VUE_APP_BASE_URL + '/association/' + organization.slugs[organization.slugs.length - 1],
validationState: organization.validationState,
rejectionDescription: organization.rejectionDescription,
publishedAt: organization.publishedAt
}
// set sentry meta data to debug
Sentry.setUser({
type: 'delegate',
organization: organizationMeta
})
Sentry.setTag('user.type', 'delegate')
Sentry.setTag('organization.id', organization._id)
window.localStorage.setItem('delegateToken', delegateToken)
if (this.token !== '') {
this.$router.push({ query: { delegateToken: this.token } })
@ -355,18 +379,7 @@ export default {
clearTimeout(this.loadingHandle)
this.loading = false
this.enabled = true
const organization = res.data.data.organization
const proposedVersion = res.data.data.organization.proposedVersion
const tags = res.data.data.tags
this.$store.commit('SET_DELEGATE', {
_id: organization._id,
adminName: organization.adminName,
email: organization.email,
slug: organization.slugs[organization.slugs.length - 1],
publicUrl: process.env.VUE_APP_BASE_URL + '/association/' + organization.slugs[organization.slugs.length - 1],
validationState: organization.validationState,
rejectionDescription: organization.rejectionDescription
})
this.$store.commit('SET_DELEGATE', organizationMeta)
this.$store.commit('SET_DATA', proposedVersion)
this.$store.commit('SET_TAGS', tags)
this.$nextTick(() => {

View file

@ -17,9 +17,9 @@ import * as Sentry from '@sentry/browser'
import { Vue as VueIntegration } from '@sentry/integrations'
import { Integrations } from '@sentry/tracing'
if (process.env.VUE_APP_DISABLE_SENTRY === undefined) {
if (process.env.VUE_APP_SENTRY_URL != null) {
Sentry.init({
dsn: 'https://e69f240d55414b0ca7763773c2fe3a24@o315435.ingest.sentry.io/5410664',
dsn: process.env.VUE_APP_SENTRY_URL,
integrations: [
new VueIntegration({ Vue, tracing: true }),
new Integrations.BrowserTracing()
@ -40,7 +40,7 @@ Vue.filter('formatDate', (s: string) => {
return ''
}
const d = new Date(s)
return d.toLocaleString('fr-FR', { timeZone: 'Europe/Paris' })
return d.toLocaleString('en-GB', { timeZone: 'Europe/Paris' })
})
Vue.use(TiptapVuetifyPlugin, {
vuetify,