UNPKG

1.5 kBJavaScriptView Raw
1const payload = require('@bugsnag/core/lib/json-payload')
2const { isoDate } = require('@bugsnag/core/lib/es-utils')
3const request = require('./request')
4
5module.exports = (client) => ({
6 sendReport: (report, cb = () => {}) => {
7 const _cb = err => {
8 if (err) client._logger.error(`Report failed to send…\n${(err && err.stack) ? err.stack : err}`, err)
9 cb(err)
10 }
11
12 try {
13 request({
14 url: client.config.endpoints.notify,
15 headers: {
16 'Content-Type': 'application/json',
17 'Bugsnag-Api-Key': report.apiKey || client.config.apiKey,
18 'Bugsnag-Payload-Version': '4',
19 'Bugsnag-Sent-At': isoDate()
20 },
21 body: payload.report(report, client.config.filters),
22 agent: client.config.agent
23 }, (err, body) => _cb(err))
24 } catch (e) {
25 _cb(e)
26 }
27 },
28 sendSession: (session, cb = () => {}) => {
29 const _cb = err => {
30 if (err) client._logger.error(`Session failed to send…\n${(err && err.stack) ? err.stack : err}`, err)
31 cb(err)
32 }
33
34 try {
35 request({
36 url: client.config.endpoints.sessions,
37 headers: {
38 'Content-Type': 'application/json',
39 'Bugsnag-Api-Key': client.config.apiKey,
40 'Bugsnag-Payload-Version': '1',
41 'Bugsnag-Sent-At': isoDate()
42 },
43 body: payload.session(session, client.config.filters),
44 agent: client.config.agent
45 }, err => _cb(err))
46 } catch (e) {
47 _cb(e)
48 }
49 }
50})