Skip to content

Commit 8cd4de1

Browse files
committed
[backend] fix getNewPackages
1 parent 12fbdb9 commit 8cd4de1

1 file changed

Lines changed: 8 additions & 9 deletions

File tree

backend/main/main-canister.mo

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -468,24 +468,23 @@ actor class Main() = this {
468468
};
469469

470470
public query func getNewPackages() : async [PackageSummary] {
471-
let packagesFirstPub = TrieMap.TrieMap<PackageName, Time.Time>(Text.equal, Text.hash);
471+
let packagesFirstPub = TrieMap.TrieMap<PackageName, (Time.Time, PackageVersion)>(Text.equal, Text.hash);
472472
for ((packageId, publication) in packagePublications.entries()) {
473-
let (packageName, _) = PackageUtils.parsePackageId(packageId);
474-
let firstPubTime = Option.get(packagesFirstPub.get(packageName), Time.now());
473+
let (packageName, packageVersion) = PackageUtils.parsePackageId(packageId);
474+
let firstPubTime = Option.get(packagesFirstPub.get(packageName), (Time.now(), packageVersion)).0;
475475
if (publication.time < firstPubTime) {
476-
packagesFirstPub.put(packageName, publication.time);
476+
packagesFirstPub.put(packageName, (publication.time, packageVersion));
477477
};
478478
};
479479

480-
let packagesFirstPubSorted = Array.sort(Iter.toArray(packagesFirstPub.entries()), func(a : (PackageName, Time.Time), b : (PackageName, Time.Time)) : Order.Order {
481-
Int.compare(b.1, a.1);
480+
let packagesFirstPubSorted = Array.sort(Iter.toArray(packagesFirstPub.entries()), func(a : (PackageName, (Time.Time, PackageVersion)), b : (PackageName, (Time.Time, PackageVersion))) : Order.Order {
481+
Int.compare(b.1.0, a.1.0);
482482
});
483483

484484
packagesFirstPubSorted
485485
|> Array.take(_, 5)
486-
|> Array.map<(PackageName, Time.Time), PackageSummary>(_, func((packageName, pubTime)) {
487-
let ?version = registry.getHighestVersion(packageName) else Debug.trap("Package '" # packageName # "' not found");
488-
let ?summary = _getPackageSummary(packageName, version) else Debug.trap("Package '" # PackageUtils.getPackageId(packageName, version) # "' not found");
486+
|> Array.map<(PackageName, (Time.Time, PackageVersion)), PackageSummary>(_, func((packageName, (pubTime, packageVersion))) {
487+
let ?summary = _getPackageSummary(packageName, packageVersion) else Debug.trap("Package '" # PackageUtils.getPackageId(packageName, packageVersion) # "' not found");
489488
summary;
490489
});
491490
};

0 commit comments

Comments
 (0)