| // Copyright 2019 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:json_annotation/json_annotation.dart'; |
| |
| import '../../request_handling/body.dart'; |
| |
| part 'grpc.g.dart'; |
| |
| /// [Status] defines a logical error model that is suitable for |
| /// different programming environments, including REST APIs and RPC APIs. It is |
| /// used by [gRPC](https://github.com/grpc). Each [Status] message contains |
| /// three pieces of data: error code, error message, and error details. |
| /// |
| /// Resources: |
| /// * https://cloud.google.com/apis/design/errors |
| @JsonSerializable(includeIfNull: false) |
| class GrpcStatus extends JsonBody { |
| const GrpcStatus({required this.code, this.message, this.details}); |
| |
| /// Creates a [Status] from JSON. |
| static GrpcStatus fromJson(Map<String, dynamic> json) => _$GrpcStatusFromJson(json); |
| |
| /// The status code, which should be an enum value of [google.rpc.Code][]. |
| final int code; |
| |
| /// A developer-facing error message, which should be in English. Any |
| /// user-facing error message should be localized and sent in the |
| /// [google.rpc.Status.details][] field, or localized by the client. |
| final String? message; |
| |
| /// A list of messages that carry the error details. There is a common set of |
| /// message types for APIs to use. |
| final dynamic details; |
| |
| @override |
| String toString() => 'Response #$code: $message, $details'; |
| |
| @override |
| Map<String, dynamic> toJson() => _$GrpcStatusToJson(this); |
| } |