Skip to content

Commit 1b6d606

Browse files
committed
Updated tests and checks.
1 parent aa850bd commit 1b6d606

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

app/lib/frontend/handlers/atom_feed.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ import 'package:clock/clock.dart';
99
import 'package:crypto/crypto.dart';
1010
import 'package:shelf/shelf.dart' as shelf;
1111

12+
import '../../admin/actions/actions.dart';
1213
import '../../package/backend.dart';
1314
import '../../package/models.dart';
15+
import '../../package/overrides.dart';
1416
import '../../shared/configuration.dart';
1517
import '../../shared/redis_cache.dart';
1618
import '../../shared/urls.dart' as urls;
@@ -35,6 +37,7 @@ Future<shelf.Response> packageAtomFeedhandler(
3537
shelf.Request request,
3638
String package,
3739
) async {
40+
checkPackageVersionParams(package);
3841
final feedContent = await cache
3942
.packageAtomFeedXml(package)
4043
.get(() => buildPackageAtomFeedContent(package));
@@ -50,19 +53,25 @@ Future<shelf.Response> packageAtomFeedhandler(
5053
/// Builds the content of the /feed.atom endpoint.
5154
Future<String> buildAllPackagesAtomFeedContent() async {
5255
final versions = await packageBackend.latestPackageVersions(limit: 100);
56+
versions.removeWhere((pv) => pv.isModerated || pv.isRetracted);
5357
final feed = _allPackagesFeed(versions);
5458
return feed.toXmlDocument();
5559
}
5660

5761
/// Builds the content of the `/packages/<package>/feed.atom` endpoint.
5862
Future<String> buildPackageAtomFeedContent(String package) async {
63+
if (isSoftRemoved(package) ||
64+
!await packageBackend.isPackageVisible(package)) {
65+
throw NotFoundException.resource(package);
66+
}
5967
final versions = await packageBackend
6068
.streamVersionsOfPackage(
6169
package,
6270
order: '-created',
6371
limit: 10,
6472
)
6573
.toList();
74+
versions.removeWhere((pv) => pv.isModerated || pv.isRetracted);
6675
final feed = _packageFeed(package, versions);
6776
return feed.toXmlDocument();
6877
}

app/test/frontend/handlers/invalid_package_url_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void main() {
3131
expect(urls, contains('/packages/<package>/versions/<version>'));
3232
expect(urls, contains('/api/packages/<package>'));
3333
// this a naive assertion that fails, if new end-points are introduced!
34-
expect(urls, hasLength(43), reason: 'check if new end-points was added');
34+
expect(urls, hasLength(44), reason: 'check if new end-points was added');
3535
});
3636

3737
testWithProfile(

0 commit comments

Comments
 (0)