From bedbe94159433a01b19cff5a8916da9e7d79ff23 Mon Sep 17 00:00:00 2001 From: Kyle Seongwoo Jun Date: Sun, 29 Dec 2024 19:57:24 +0900 Subject: [PATCH] feat(pub): add monthly downloads endpoint - Introduced a new endpoint for monthly downloads under '/pub/dm/:pkg'. - Updated the apiHandler to handle the new 'dm' topic for fetching download counts. --- pages/api/pub.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pages/api/pub.ts b/pages/api/pub.ts index ced01f4b..bbeb781d 100644 --- a/pages/api/pub.ts +++ b/pages/api/pub.ts @@ -15,13 +15,14 @@ export default createBadgenHandler({ '/pub/likes/firebase_core': 'likes', '/pub/points/rxdart': 'pub points', '/pub/popularity/mobx': 'popularity', + '/pub/dm/riverpod': 'monthly downloads', '/pub/sdk-version/uuid': 'sdk-version', '/pub/dart-platform/rxdart': 'dart-platform', '/pub/dart-platform/google_sign_in': 'dart-platform', '/pub/flutter-platform/xml': 'flutter-platform' }, handlers: { - '/pub/:topic/:pkg': apiHandler, + '/pub/:topic/:pkg': apiHandler, '/pub/:topic/:pkg': licenseHandler } }) @@ -76,6 +77,14 @@ async function apiHandler ({ topic, pkg }: PathArgs) { color: 'green' } } + case 'dm': { + const { downloadCount30Days } = await client.get(`packages/${pkg}/score`).json() + return { + subject: 'downloads', + status: millify(downloadCount30Days) + '/month', + color: 'green' + } + } case 'dart-platform': { const { scorecard: pubScores } = await client.get(`packages/${pkg}/metrics`).json() const sdk = parseTags(pubScores.panaReport.derivedTags, 'sdk').join(' | ')