(query = {})
| 5 | const { redactValue } = require('./redact'); |
| 6 | |
| 7 | function getAssetOverview(query = {}) { |
| 8 | const paths = getObserverPaths(); |
| 9 | const genes = readGenes(paths); |
| 10 | const capsules = readCapsules(paths); |
| 11 | const failedCapsules = readFailedCapsules(paths); |
| 12 | const events = readJsonl(paths.eventsPath, { last: query.eventsLast || 500 }).map(redactValue); |
| 13 | const candidates = readJsonl(paths.candidatesPath, { last: query.candidatesLast || 200 }).map(redactValue); |
| 14 | const externalCandidates = readJsonl(paths.externalCandidatesPath, { last: query.candidatesLast || 200 }).map(redactValue); |
| 15 | const assetCalls = readJsonl(paths.assetCallLogPath, { last: query.assetCallsLast || 500 }).map(redactValue); |
| 16 | |
| 17 | return { |
| 18 | counts: { |
| 19 | genes: genes.length, |
| 20 | capsules: capsules.length, |
| 21 | failedCapsules: failedCapsules.length, |
| 22 | events: events.length, |
| 23 | candidates: candidates.length, |
| 24 | externalCandidates: externalCandidates.length, |
| 25 | assetCalls: assetCalls.length, |
| 26 | }, |
| 27 | genesByCategory: countBy(genes, 'category'), |
| 28 | capsulesByOutcome: countBy(capsules, (c) => c.outcome && c.outcome.status || 'unknown'), |
| 29 | assetCallsByAction: countBy(assetCalls, 'action'), |
| 30 | recentEvents: events.slice(-20).reverse(), |
| 31 | recentAssetCalls: assetCalls.slice(-20).reverse(), |
| 32 | }; |
| 33 | } |
| 34 | |
| 35 | function listGenes(query = {}) { |
| 36 | const genes = readGenes(getObserverPaths()); |
nothing calls this directly
no test coverage detected