Rename a server api method and cleanup a TODO (#7280)

diff --git a/packages/devtools_app/lib/src/shared/server/server.dart b/packages/devtools_app/lib/src/shared/server/server.dart
index daea9b9..96010ba 100644
--- a/packages/devtools_app/lib/src/shared/server/server.dart
+++ b/packages/devtools_app/lib/src/shared/server/server.dart
@@ -37,6 +37,7 @@
   Response? response;
 
   try {
+    _log.fine('requesting $url');
     response = await post(Uri.parse(url));
   } catch (_) {}
 
diff --git a/packages/devtools_shared/CHANGELOG.md b/packages/devtools_shared/CHANGELOG.md
index ec1efbf..d937383 100644
--- a/packages/devtools_shared/CHANGELOG.md
+++ b/packages/devtools_shared/CHANGELOG.md
@@ -1,5 +1,7 @@
-# 7.0.1-wip
+# 8.0.0
 * Refactor yaml extension methods.
+* **Breaking change:** rename `ServerApi.getCompleted` to `ServerApi.success` and make the
+`value` parameter optional.
 
 # 7.0.0
 * **Breaking change:** remove the `ServerApi.setCompleted` method that was a
diff --git a/packages/devtools_shared/lib/src/server/server_api.dart b/packages/devtools_shared/lib/src/server/server_api.dart
index 0b4c1fb..d432bdb 100644
--- a/packages/devtools_shared/lib/src/server/server_api.dart
+++ b/packages/devtools_shared/lib/src/server/server_api.dart
@@ -45,31 +45,30 @@
     api ??= ServerApi();
     final queryParams = request.requestedUri.queryParameters;
     // TODO(kenz): break this switch statement up so that it uses helper methods
-    // for each case. Also use [_checkRequiredParameters] and [_encodeResponse]
-    // helpers.
+    // for each case. Also use [_checkRequiredParameters] helper.
     switch (request.url.path) {
       // ----- Flutter Tool GA store. -----
       case apiGetFlutterGAEnabled:
         // Is Analytics collection enabled?
-        return api.getCompleted(
-          json.encode(FlutterUsage.doesStoreExist ? _usage!.enabled : ''),
+        return _encodeResponse(
+          FlutterUsage.doesStoreExist ? _usage!.enabled : '',
+          api: api,
         );
       case apiGetFlutterGAClientId:
         // Flutter Tool GA clientId - ONLY get Flutter's clientId if enabled is
         // true.
         return (FlutterUsage.doesStoreExist)
-            ? api.getCompleted(
-                json.encode(_usage!.enabled ? _usage!.clientId : ''),
+            ? _encodeResponse(
+                _usage!.enabled ? _usage!.clientId : '',
+                api: api,
               )
-            : api.getCompleted(
-                json.encode(''),
-              );
+            : _encodeResponse('', api: api);
 
       // ----- DevTools GA store. -----
 
       case apiResetDevTools:
         _devToolsUsage.reset();
-        return api.getCompleted(json.encode(true));
+        return _encodeResponse(true, api: api);
       case apiGetDevToolsFirstRun:
         // Has DevTools been run first time? To bring up analytics dialog.
         //
@@ -78,16 +77,12 @@
         // been updated
         final isFirstRun =
             _devToolsUsage.isFirstRun || analytics.shouldShowMessage;
-        return api.getCompleted(
-          json.encode(isFirstRun),
-        );
+        return _encodeResponse(isFirstRun, api: api);
       case apiGetDevToolsEnabled:
         // Is DevTools Analytics collection enabled?
         final isEnabled =
             _devToolsUsage.analyticsEnabled && analytics.telemetryEnabled;
-        return api.getCompleted(
-          json.encode(isEnabled),
-        );
+        return _encodeResponse(isEnabled, api: api);
       case apiSetDevToolsEnabled:
         // Enable or disable DevTools analytics collection.
         if (queryParams.containsKey(devToolsEnabledPropertyName)) {
@@ -97,14 +92,12 @@
           _devToolsUsage.analyticsEnabled = analyticsEnabled;
           analytics.setTelemetry(analyticsEnabled);
         }
-        return api.getCompleted(
-          json.encode(_devToolsUsage.analyticsEnabled),
-        );
+        return _encodeResponse(_devToolsUsage.analyticsEnabled, api: api);
       case apiGetConsentMessage:
-        return api.getCompleted(analytics.getConsentMessage);
+        return api.success(analytics.getConsentMessage);
       case apiMarkConsentMessageAsShown:
         analytics.clientShowedMessage();
-        return api.getCompleted(json.encode(true));
+        return _encodeResponse(true, api: api);
 
       // ----- DevTools survey store. -----
 
@@ -123,8 +116,7 @@
           _devToolsUsage.activeSurvey = theSurveyName;
           result = true;
         }
-
-        return api.getCompleted(json.encode(result));
+        return _encodeResponse(result, api: api);
       case apiGetSurveyActionTaken:
         // Request setActiveSurvey has not been requested.
         if (_devToolsUsage.activeSurvey == null) {
@@ -134,9 +126,7 @@
           );
         }
         // SurveyActionTaken has the survey been acted upon (taken or dismissed)
-        return api.getCompleted(
-          json.encode(_devToolsUsage.surveyActionTaken),
-        );
+        return _encodeResponse(_devToolsUsage.surveyActionTaken, api: api);
       // TODO(terry): remove the query param logic for this request.
       // setSurveyActionTaken should only be called with the value of true, so
       // we can remove the extra complexity.
@@ -154,9 +144,7 @@
           _devToolsUsage.surveyActionTaken =
               json.decode(queryParams[surveyActionTakenPropertyName]!);
         }
-        return api.getCompleted(
-          json.encode(_devToolsUsage.surveyActionTaken),
-        );
+        return _encodeResponse(_devToolsUsage.surveyActionTaken, api: api);
       case apiGetSurveyShownCount:
         // Request setActiveSurvey has not been requested.
         if (_devToolsUsage.activeSurvey == null) {
@@ -166,9 +154,7 @@
           );
         }
         // SurveyShownCount how many times have we asked to take survey.
-        return api.getCompleted(
-          json.encode(_devToolsUsage.surveyShownCount),
-        );
+        return _encodeResponse(_devToolsUsage.surveyShownCount, api: api);
       case apiIncrementSurveyShownCount:
         // Request setActiveSurvey has not been requested.
         if (_devToolsUsage.activeSurvey == null) {
@@ -179,23 +165,23 @@
         }
         // Increment the SurveyShownCount, we've asked about the survey.
         _devToolsUsage.incrementSurveyShownCount();
-        return api.getCompleted(
-          json.encode(_devToolsUsage.surveyShownCount),
-        );
+        return _encodeResponse(_devToolsUsage.surveyShownCount, api: api);
 
       // ----- Release notes api. -----
 
       case apiGetLastReleaseNotesVersion:
-        return api.getCompleted(
-          json.encode(_devToolsUsage.lastReleaseNotesVersion),
+        return _encodeResponse(
+          _devToolsUsage.lastReleaseNotesVersion,
+          api: api,
         );
       case apiSetLastReleaseNotesVersion:
         if (queryParams.containsKey(lastReleaseNotesVersionPropertyName)) {
           _devToolsUsage.lastReleaseNotesVersion =
               queryParams[lastReleaseNotesVersionPropertyName]!;
         }
-        return api.getCompleted(
-          json.encode(_devToolsUsage.lastReleaseNotesVersion),
+        return _encodeResponse(
+          _devToolsUsage.lastReleaseNotesVersion,
+          api: api,
         );
 
       // ----- App size api. -----
@@ -207,7 +193,7 @@
           if (fileJson == null) {
             return api.badRequest('No JSON file available at $filePath.');
           }
-          return api.getCompleted(fileJson);
+          return api.success(fileJson);
         }
         return api.badRequest(
           'Request for base app size file does not '
@@ -221,7 +207,7 @@
           if (fileJson == null) {
             return api.badRequest('No JSON file available at $filePath.');
           }
-          return api.getCompleted(fileJson);
+          return api.success(fileJson);
         }
         return api.badRequest(
           'Request for test app size file does not '
@@ -274,8 +260,9 @@
           deeplinkManager,
         );
       case DtdApi.apiGetDtdUri:
-        return api.getCompleted(
-          json.encode({DtdApi.uriPropertyName: dtdUri}),
+        return _encodeResponse(
+          {DtdApi.uriPropertyName: dtdUri},
+          api: api,
         );
       default:
         return api.notImplemented();
@@ -286,7 +273,7 @@
     Object? object, {
     required ServerApi api,
   }) {
-    return api.getCompleted(json.encode(object));
+    return api.success(json.encode(object));
   }
 
   static Map<String, Object?> _wrapWithLogs(
@@ -335,8 +322,10 @@
   /// without any need to involve the server.
   shelf.Response logScreenView() => notImplemented();
 
-  /// Return the value of the property.
-  shelf.Response getCompleted(String value) => shelf.Response.ok(value);
+  /// A [shelf.Response] for API calls that succeeded.
+  ///
+  /// The response optionally contains a single String [value].
+  shelf.Response success([String? value]) => shelf.Response.ok(value);
 
   /// A [shelf.Response] for API calls that encountered a request problem e.g.,
   /// setActiveSurvey not called.
@@ -543,7 +532,7 @@
     if (error != null) {
       return api.serverError(error);
     }
-    return api.getCompleted(
+    return api.success(
       result[DeeplinkManager.kOutputJsonField]! as String,
     );
   }
diff --git a/packages/devtools_shared/pubspec.yaml b/packages/devtools_shared/pubspec.yaml
index 1a7de1b..bd1631a 100644
--- a/packages/devtools_shared/pubspec.yaml
+++ b/packages/devtools_shared/pubspec.yaml
@@ -1,7 +1,7 @@
 name: devtools_shared
 description: Package of shared Dart structures between devtools_app, dds, and other tools.
 
-version: 7.0.1-wip
+version: 8.0.0
 
 repository: https://github.com/flutter/devtools/tree/master/packages/devtools_shared