diff --git a/src/components/fileviewer.js b/src/components/fileviewer.js index f9afe45b..4b3f7b4c 100644 --- a/src/components/fileviewer.js +++ b/src/components/fileviewer.js @@ -33,29 +33,37 @@ export default class FileViewerContainer extends Component { }); }); - FetchAPI.getFileRevisionCoverage(revision, path, - (data) => { - console.log(data); - this.setState(() => ({ coverage: data })); - // TODO remove these log lines - console.log(this.state.coverage.data[0][0].source.file.covered); - console.log(this.state.coverage.data[0][0].source.file.uncovered); - console.log(this.state.coverage.data[0][0].source.file.percentage_covered); - } - ) + FetchAPI.getFileRevisionCoverage(revision, path) + .then(response => { + if (response.status !== 200) { + console.log('Error status code' + response.status); + return; + } + response.json().then(data => { + this.setState({ coverage: data }); + // TODO remove these log lines + console.log(data); + console.log(this.state.coverage.data[0][0].source.file.covered); + console.log(this.state.coverage.data[0][0].source.file.uncovered); + console.log(this.state.coverage.data[0][0].source.file.percentage_covered); + }); + }) + .catch(err => { + console.log('Fetch error', err); + }) }; render() { const { revision, path } = this.props; return (
- -
@@ -65,13 +73,13 @@ export default class FileViewerContainer extends Component { /* This component renders each line of the file with its line number */ const FileViewer = ({ parsedFile, coverage }) => { - return ( + return (
- { + { parsedFile.map((line, lineNumber) => ( - export const getRawFile = (revision, path) => fetch(`${hgHost}/integration/mozilla-inbound/raw-file/${revision}/${path}`, { plainHeaders }); -// Taken from https://github.com/mozilla/moz-coco/blob/master/src/client/Client.js -// On October 23, 2017 -// Under the MPL License -export const getFileRevisionCoverage = (revision, path, callback) => { - const body = Query.testCoverage(revision, path); - const jsonbody = JSON.stringify(body); - const options = { - hostname: `${activeData}`, - port: 443, - path: '/query', - method: 'POST', - headers: { - 'Content-Type': 'text/plain', - 'Content-Length': Buffer.byteLength(jsonbody) - } - } - console.log("Query sent: " + jsonbody); - const respchunks = []; - const p = new Promise((resolve, reject) => { - const req = https.request(options, (res) => { - res.setEncoding('utf8'); - res.on('data', (chunk) => { - respchunks.push(new Buffer(chunk)); - }); - res.on('end', (chunk) => { - resolve(Buffer.concat(respchunks).toString('utf8')); - }); - res.on('error', (e) => { - reject(e); - }); - }); - req.write(jsonbody); - req.end(); - }); - p.then((body) => { - callback(JSON.parse(body)); - }).catch((err) => console.log(`Exception in fetch_data.js: ${err}`)); -} \ No newline at end of file +// get coverage from ActiveData for a particular source file +export const getFileRevisionCoverage = (revision, path) => + fetch(`${activeData}/query`, { jsonHeaders, method:"POST", body: JSON.stringify(Query.testCoverage(revision, path)) });