aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-06-06 02:51:27 +0800
committerkumavis <aaron@kumavis.me>2018-06-06 02:51:27 +0800
commit20bdba3d1710a070d06c2a395f92d948b9396d47 (patch)
tree2eef359c3e3c3959339f043eb3c99a6b83b27dec /app/scripts/lib
parent6247e54fcc11d4d8d857a977d00eee8012afb92f (diff)
downloadtangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.tar
tangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.tar.gz
tangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.tar.bz2
tangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.tar.lz
tangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.tar.xz
tangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.tar.zst
tangerine-wallet-browser-20bdba3d1710a070d06c2a395f92d948b9396d47.zip
diagnostics - rewrite bug-notifier as diagnostics-reporter
Diffstat (limited to 'app/scripts/lib')
-rw-r--r--app/scripts/lib/bug-notifier.js22
-rw-r--r--app/scripts/lib/diagnostics-reporter.js71
2 files changed, 71 insertions, 22 deletions
diff --git a/app/scripts/lib/bug-notifier.js b/app/scripts/lib/bug-notifier.js
deleted file mode 100644
index 4d305b894..000000000
--- a/app/scripts/lib/bug-notifier.js
+++ /dev/null
@@ -1,22 +0,0 @@
-class BugNotifier {
- notify (uri, message) {
- return postData(uri, message)
- }
-}
-
-function postData(uri, data) {
- return fetch(uri, {
- body: JSON.stringify(data), // must match 'Content-Type' header
- credentials: 'same-origin', // include, same-origin, *omit
- headers: {
- 'content-type': 'application/json',
- },
- method: 'POST', // *GET, POST, PUT, DELETE, etc.
- mode: 'cors', // no-cors, cors, *same-origin
- })
-}
-
-const notifier = new BugNotifier()
-
-module.exports = notifier
-
diff --git a/app/scripts/lib/diagnostics-reporter.js b/app/scripts/lib/diagnostics-reporter.js
new file mode 100644
index 000000000..6c77923bd
--- /dev/null
+++ b/app/scripts/lib/diagnostics-reporter.js
@@ -0,0 +1,71 @@
+class DiagnosticsReporter {
+
+ constructor ({ firstTimeInfo, version }) {
+ this.firstTimeInfo = firstTimeInfo
+ this.version = version
+ }
+
+ async reportOrphans(orphans) {
+ try {
+ await this.submit({
+ accounts: Object.keys(orphans),
+ metadata: {
+ type: 'orphans'
+ },
+ })
+ } catch (err) {
+ console.error('DiagnosticsReporter - "reportOrphans" encountered an error:')
+ console.error(err)
+ }
+ }
+
+ async reportMultipleKeyrings(rawKeyrings) {
+ try {
+ const keyrings = await Promise.all(rawKeyrings.map(async (keyring, index) => {
+ return {
+ index,
+ type: keyring.type,
+ accounts: await keyring.getAccounts(),
+ }
+ }))
+ await this.submit({
+ accounts: [],
+ metadata: {
+ type: 'keyrings',
+ keyrings,
+ },
+ })
+ } catch (err) {
+ console.error('DiagnosticsReporter - "reportMultipleKeyrings" encountered an error:')
+ console.error(err)
+ }
+ }
+
+ async submit (message) {
+ try {
+ // add metadata
+ message.metadata.version = this.version
+ message.metadata.firstTimeInfo = this.firstTimeInfo
+ return await postData(message)
+ } catch (err) {
+ console.error('DiagnosticsReporter - "submit" encountered an error:')
+ console.error(err)
+ }
+ }
+
+}
+
+function postData(data) {
+ const uri = 'https://diagnostics.metamask.io/v1/orphanedAccounts'
+ return fetch(uri, {
+ body: JSON.stringify(data), // must match 'Content-Type' header
+ credentials: 'same-origin', // include, same-origin, *omit
+ headers: {
+ 'content-type': 'application/json',
+ },
+ method: 'POST', // *GET, POST, PUT, DELETE, etc.
+ mode: 'cors', // no-cors, cors, *same-origin
+ })
+}
+
+module.exports = DiagnosticsReporter