documentOperationResponses method Null safety

  1. @override
Map<String, APIResponse> documentOperationResponses(
  1. APIDocumentContext context,
  2. Operation? operation
)
override

Returns a map of possible responses for operation.

To provide documentation for an operation, you must override this method and return a map of possible responses. The key is a String representation of a status code (e.g., "200") and the value is an APIResponse object.

Implementation

@override
Map<String, APIResponse> documentOperationResponses(
    APIDocumentContext context, Operation? operation) {
  if (operation!.method == "GET") {
    return {
      "200": APIResponse.schema(
          "Serves a login form.", APISchemaObject.string(),
          contentTypes: ["text/html"])
    };
  } else if (operation.method == "POST") {
    return {
      "${HttpStatus.movedTemporarily}": APIResponse(
          "If successful, in the case of a 'response type' of 'code', the query "
          "parameter of the redirect URI named 'code' contains authorization code. "
          "Otherwise, the query parameter 'error' is present and contains a error string. "
          "In the case of a 'response type' of 'token', the redirect URI's fragment "
          "contains an access token. Otherwise, the fragment contains an error code.",
          headers: {
            "Location": APIHeader()
              ..schema = APISchemaObject.string(format: "uri")
          }),
      "${HttpStatus.badRequest}": APIResponse.schema(
          "If 'client_id' is invalid, the redirect URI cannot be verified and this response is sent.",
          APISchemaObject.object({"error": APISchemaObject.string()}),
          contentTypes: ["application/json"])
    };
  }

  throw StateError("AuthRedirectController documentation failed.");
}