910e62b5创建于 1月15日历史提交
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef GOOGLE_APIS_COMMON_API_ERROR_CODES_H_
#define GOOGLE_APIS_COMMON_API_ERROR_CODES_H_

#include <string>

namespace google_apis {

// HTTP errors that can be returned by Google API service.
enum ApiErrorCode {
  // 200-599
  // HTTP error codes:
  HTTP_SUCCESS = 200,
  HTTP_CREATED = 201,
  HTTP_NO_CONTENT = 204,
  HTTP_FOUND = 302,
  HTTP_NOT_MODIFIED = 304,
  HTTP_RESUME_INCOMPLETE = 308,
  HTTP_BAD_REQUEST = 400,
  HTTP_UNAUTHORIZED = 401,
  HTTP_FORBIDDEN = 403,
  HTTP_NOT_FOUND = 404,
  HTTP_CONFLICT = 409,
  HTTP_GONE = 410,
  HTTP_LENGTH_REQUIRED = 411,
  HTTP_PRECONDITION = 412,
  HTTP_INTERNAL_SERVER_ERROR = 500,
  HTTP_NOT_IMPLEMENTED = 501,
  HTTP_BAD_GATEWAY = 502,
  HTTP_SERVICE_UNAVAILABLE = 503,

  // 900-999
  // Common API error codes:
  NO_CONNECTION = 900,
  NOT_READY = 901,
  OTHER_ERROR = 902,
  CANCELLED = 903,
  PARSE_ERROR = 904,

  // 1000-1999
  // Drive API error codes:
  DRIVE_FILE_ERROR = 1000,
  DRIVE_NO_SPACE = 1001,
  DRIVE_RESPONSE_TOO_LARGE = 1002,

  // 2000-2099
  // YouTube Music error codes:
  YOUTUBE_MUSIC_UPDATE_REQUIRED = 2000,

  // Needed in order to log this in UMA.
  kMaxValue = YOUTUBE_MUSIC_UPDATE_REQUIRED,
};

// Returns a string representation of ApiErrorCode.
std::string ApiErrorCodeToString(ApiErrorCode error);

// Checks if the error code represents success for drive api.
bool IsSuccessfulDriveApiErrorCode(ApiErrorCode error);

// Checks if the error code represents success for calendar api.
bool IsSuccessfulCalendarApiErrorCode(ApiErrorCode error);

}  // namespace google_apis

#endif  // GOOGLE_APIS_COMMON_API_ERROR_CODES_H_