Skip to content

Commit

Permalink
Remove experimental condition (dead code) from documentation API endp…
Browse files Browse the repository at this point in the history
…oint. (#6923)
  • Loading branch information
isoos authored Aug 16, 2023
1 parent d50a9dc commit 39b94e8
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 76 deletions.
1 change: 0 additions & 1 deletion app/lib/dartdoc/backend.dart
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@ class DartdocBackend {
await Future.wait([
cache.dartdocEntry(entry.packageName, entry.packageVersion).purge(),
cache.dartdocEntry(entry.packageName, 'latest').purge(),
cache.dartdocApiSummary(entry.packageName).purge(),
]);

// Mark old content as expired.
Expand Down
79 changes: 15 additions & 64 deletions app/lib/frontend/handlers/custom_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@ import 'dart:io';
import 'package:_pub_shared/data/package_api.dart';
import 'package:_pub_shared/search/search_form.dart';
import 'package:gcloud/storage.dart';
import 'package:pub_dev/dartdoc/models.dart';
import 'package:pub_dev/shared/count_topics.dart';
import 'package:pub_dev/shared/storage.dart';
import 'package:pub_dev/task/backend.dart';
import 'package:pub_dev/task/models.dart';
import 'package:shelf/shelf.dart' as shelf;

import '../../dartdoc/backend.dart';
import '../../frontend/request_context.dart';
import '../../package/backend.dart';
import '../../package/models.dart';
Expand Down Expand Up @@ -45,69 +43,22 @@ Future<shelf.Response> apiDocumentationHandler(
return jsonResponse({}, status: 404);
}

if (requestContext.experimentalFlags.showSandboxedDartdoc) {
final status = await taskBackend.packageStatus(package);
return jsonResponse({
'name': package,
'versions': status.versions.entries
.map((e) => {
'version': e.key,
'status': e.value.status == PackageVersionStatus.pending ||
e.value.status == PackageVersionStatus.running
? 'pending'
: (e.value.status == PackageVersionStatus.failed
? 'failed'
: 'completed'),
'hasDocumentation': e.value.docs,
})
.toList(),
});
}

final cachedData = await cache.dartdocApiSummary(package).get();
if (cachedData != null) {
return jsonResponse(cachedData);
}

final versions = await packageBackend.listVersionsCached(package);
if (versions.versions.isEmpty) {
return jsonResponse({}, status: 404);
}

// Limit versions to the latest few (sorted semantically).
final versionsToQuery = <String>{
versions.latest.version,
...versions.versions.map((e) => e.version).toList().reversed.take(30),
};

final dartdocEntries = await dartdocBackend.getEntriesForVersions(
package, versionsToQuery.toList());
final dartdocEntriesMap = <String, DartdocEntry>{};
for (final entry in dartdocEntries) {
if (entry == null) continue;
dartdocEntriesMap[entry.packageVersion] = entry;
}

final versionsData = [];
for (int i = 0; i < versions.versions.length; i++) {
final version = versions.versions[i].version;
final entry = dartdocEntriesMap[version];
final hasDocumentation = entry != null && entry.hasContent;
final status =
entry == null ? 'pending' : (entry.hasContent ? 'success' : 'failed');
versionsData.add({
'version': version,
'status': status,
'hasDocumentation': hasDocumentation,
});
}
final data = {
final status = await taskBackend.packageStatus(package);
return jsonResponse({
'name': package,
'latestStableVersion': versions.latest.version,
'versions': versionsData,
};
await cache.dartdocApiSummary(package).set(data);
return jsonResponse(data);
'versions': status.versions.entries
.map((e) => {
'version': e.key,
'status': e.value.status == PackageVersionStatus.pending ||
e.value.status == PackageVersionStatus.running
? 'pending'
: (e.value.status == PackageVersionStatus.failed
? 'failed'
: 'completed'),
'hasDocumentation': e.value.docs,
})
.toList(),
});
}

/// Handles requests for
Expand Down
11 changes: 0 additions & 11 deletions app/lib/shared/redis_cache.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,17 +77,6 @@ class CachePatterns {
.withPrefix('dartdoc-blob-index-v1/')
.withTTL(Duration(minutes: 60))[objectName];

/// Cache for API summaries used by dartdoc.
Entry<Map<String, dynamic>> dartdocApiSummary(String package) => _cache
.withPrefix('dartdoc-apisummary/')
.withTTL(Duration(minutes: 60))
.withCodec(utf8)
.withCodec(json)
.withCodec(wrapAsCodec(
encode: (Map<String, dynamic> map) => map,
decode: (obj) => obj as Map<String, dynamic>,
))[package];

Entry<String> uiPackagePage(String package, String? version) => _cache
.withPrefix('ui-packagepage/')
.withTTL(Duration(minutes: 10))
Expand Down

0 comments on commit 39b94e8

Please sign in to comment.