@intuitionrobotics/bug-report
Version:
38 lines • 1.75 kB
JavaScript
import { addItemToArray, BeLogged, LogClient_MemBuffer, LogLevel, LogLevelOrdinal, Module } from "@intuitionrobotics/ts-common";
import { XhrHttpModule } from "@intuitionrobotics/thunderstorm/frontend";
import { HttpMethod } from "@intuitionrobotics/thunderstorm";
import { Platform_Jira } from "../../shared/api.js";
import { Dialog_JiraOpened } from "../ui/Dialog_JiraOpened.js";
export const RequestKey_BugReportApi = "BugReport";
export class BugReportModule_Class extends Module {
reports = [];
constructor() {
super("BugReportModule");
addItemToArray(this.reports, new LogClient_MemBuffer("default"));
addItemToArray(this.reports, new LogClient_MemBuffer("info")
.setFilter(level => LogLevelOrdinal.indexOf(level) >= LogLevelOrdinal.indexOf(LogLevel.Info)));
}
init() {
this.reports.forEach(report => BeLogged.addClient(report));
}
sendBugReport = (subject, description, platforms) => {
const body = {
subject,
description,
reports: this.reports.map(report => ({ log: report.buffers, name: report.name })),
platforms
};
XhrHttpModule
.createRequest(HttpMethod.POST, RequestKey_BugReportApi)
.setJsonBody(body)
.setRelativeUrl("/v1/bug-reports/report")
.setOnError(() => this.logWarning(`Error updating the report`))
.execute((response) => {
const jiraTicket = response.find(ticket => ticket.platform === Platform_Jira);
if (jiraTicket)
Dialog_JiraOpened.show(jiraTicket.issueId);
});
};
}
export const BugReportModule = new BugReportModule_Class();
//# sourceMappingURL=BugReportModule.js.map