| // 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 'dart:io'; |
| |
| /// An exception that may be thrown by a [RequestHandler] to trigger an error |
| /// HTTP response. |
| class HttpStatusException implements Exception { |
| /// Creates a new [HttpStatusException]. |
| const HttpStatusException(this.statusCode, this.message); |
| |
| /// The HTTP status code to return to the issuer. |
| final int statusCode; |
| |
| /// The message to show to the issuer to explain the error. |
| final String message; |
| |
| @override |
| String toString() => 'HTTP $statusCode: $message'; |
| } |
| |
| /// Exception that will trigger an HTTP 400 bad request. |
| class BadRequestException extends HttpStatusException { |
| const BadRequestException([String message = 'Bad request']) : super(HttpStatus.badRequest, message); |
| } |
| |
| /// Exception that will trigger an HTTP 404 not found |
| class NotFoundException extends HttpStatusException { |
| const NotFoundException(String missing) : super(HttpStatus.notFound, 'Not found: $missing'); |
| } |
| |
| /// Exception that will trigger an HTTP 405 method not allowed. |
| class MethodNotAllowed extends HttpStatusException { |
| const MethodNotAllowed(String method) : super(HttpStatus.methodNotAllowed, 'Unsupported method: $method'); |
| } |
| |
| /// Exception that will trigger an HTTP 409 conflict. |
| class ConflictException extends HttpStatusException { |
| const ConflictException([String message = 'Request conflict with server state']) |
| : super(HttpStatus.conflict, message); |
| } |
| |
| /// Exception that will trigger an HTTP 500 internal server error. |
| class InternalServerError extends HttpStatusException { |
| const InternalServerError([String message = 'Internal server error']) |
| : super(HttpStatus.internalServerError, message); |
| } |
| |
| /// Exception that will trigger an HTTP 401 not authorized. |
| class Unauthorized extends HttpStatusException { |
| const Unauthorized([String message = 'Unauthorized']) : super(HttpStatus.unauthorized, message); |
| } |
| |
| /// Exception that will trigger an HTTP 403 forbidden. |
| class Forbidden extends HttpStatusException { |
| const Forbidden([String message = 'Forbidden']) : super(HttpStatus.forbidden, message); |
| } |
| |
| /// Exception thrown when attempting to authenticate a request that cannot be |
| /// authenticated. |
| class Unauthenticated implements Exception { |
| const Unauthenticated(this.message); |
| |
| final String message; |
| |
| @override |
| String toString() => 'Unauthenticated: $message'; |
| } |