MVP, working sentry scraper
This commit is contained in:
172
app/models/replay.ts
Normal file
172
app/models/replay.ts
Normal file
@ -0,0 +1,172 @@
|
||||
import { DateTime } from 'luxon'
|
||||
import { BaseModel, column } from '@adonisjs/lucid/orm'
|
||||
|
||||
export default class Replay extends BaseModel {
|
||||
@column({ isPrimary: true })
|
||||
declare id: string
|
||||
|
||||
@column()
|
||||
declare project_id: string
|
||||
|
||||
@column({
|
||||
prepare: (value) => {
|
||||
// The values from sentry are just arrays so convert them to json
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
})
|
||||
declare trace_ids: string[]
|
||||
|
||||
@column({
|
||||
prepare: (value) => {
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
})
|
||||
declare error_ids: string[]
|
||||
|
||||
@column()
|
||||
declare environment: string | null
|
||||
|
||||
@column({
|
||||
prepare: (value) => {
|
||||
// The values from sentry are just arrays so convert them to json
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
})
|
||||
declare tags: any
|
||||
|
||||
@column()
|
||||
declare user: any
|
||||
|
||||
|
||||
@column()
|
||||
declare sdk: any
|
||||
|
||||
|
||||
@column()
|
||||
declare os: any
|
||||
|
||||
|
||||
@column()
|
||||
declare browser: any
|
||||
|
||||
|
||||
@column()
|
||||
declare device: any
|
||||
@column()
|
||||
declare ota_updates: any
|
||||
|
||||
@column()
|
||||
declare is_archived: boolean | null
|
||||
|
||||
|
||||
@column({
|
||||
prepare: (value) => {
|
||||
// The values from sentry are just arrays so convert them to json
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
})
|
||||
declare urls: any
|
||||
|
||||
|
||||
@column({
|
||||
prepare: (value) => {
|
||||
// The values from sentry are just arrays so convert them to json
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
})
|
||||
declare clicks: any
|
||||
|
||||
@column()
|
||||
declare count_dead_clicks: number | null
|
||||
|
||||
@column()
|
||||
declare count_rage_clicks: number | null
|
||||
|
||||
@column()
|
||||
declare count_errors: number | null
|
||||
|
||||
@column()
|
||||
declare duration: number | null
|
||||
|
||||
@column.dateTime()
|
||||
declare finished_at: DateTime | null
|
||||
|
||||
@column.dateTime({serializeAs: 'started_at'})
|
||||
declare started_at: DateTime | null
|
||||
|
||||
@column()
|
||||
declare activity: number | null
|
||||
|
||||
@column()
|
||||
declare count_urls: number | null
|
||||
|
||||
@column()
|
||||
declare replay_type: string
|
||||
|
||||
@column()
|
||||
declare count_segments: number | null
|
||||
|
||||
@column()
|
||||
declare platform: string | null
|
||||
|
||||
|
||||
@column({
|
||||
prepare: (value) => {
|
||||
// The values from sentry are just arrays so convert them to json
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
})
|
||||
declare releases: any
|
||||
|
||||
@column()
|
||||
declare dist: string | null
|
||||
|
||||
@column()
|
||||
declare count_warnings: number | null
|
||||
|
||||
@column()
|
||||
declare count_infos: number | null
|
||||
|
||||
@column()
|
||||
declare has_viewed: boolean
|
||||
|
||||
@column.dateTime({ autoCreate: true })
|
||||
declare created_at: DateTime
|
||||
|
||||
@column.dateTime({ autoCreate: true, autoUpdate: true })
|
||||
declare updated_at: DateTime
|
||||
|
||||
public static allowedFields = [
|
||||
'id',
|
||||
'project_id',
|
||||
'trace_ids',
|
||||
'error_ids',
|
||||
'environment',
|
||||
'tags',
|
||||
'user',
|
||||
'sdk',
|
||||
'os',
|
||||
'browser',
|
||||
'device',
|
||||
'ota_updates',
|
||||
'is_archived',
|
||||
'urls',
|
||||
'clicks',
|
||||
'count_dead_clicks',
|
||||
'count_rage_clicks',
|
||||
'count_errors',
|
||||
'duration',
|
||||
'finished_at',
|
||||
'started_at',
|
||||
'activity',
|
||||
'count_urls',
|
||||
'replay_type',
|
||||
'count_segments',
|
||||
'platform',
|
||||
'releases',
|
||||
'dist',
|
||||
'count_warnings',
|
||||
'count_infos',
|
||||
'has_viewed',
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user