blob: 7f1803da205ac2d7916c219a88215ccc2c60aad6 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/ledger/cloud_provider_firestore/bin/app/grpc_status.h"
#include "src/lib/fxl/logging.h"
namespace cloud_provider_firestore {
cloud_provider::Status ConvertGrpcStatus(grpc::StatusCode status) {
switch (status) {
case grpc::OK:
return cloud_provider::Status::OK;
case grpc::UNAUTHENTICATED:
return cloud_provider::Status::AUTH_ERROR;
case grpc::NOT_FOUND:
return cloud_provider::Status::NOT_FOUND;
case grpc::UNAVAILABLE:
return cloud_provider::Status::NETWORK_ERROR;
default:
return cloud_provider::Status::SERVER_ERROR;
}
}
bool LogGrpcRequestError(const grpc::Status& status) {
if (!status.ok()) {
FXL_LOG(ERROR) << "Server request failed, "
<< "error message: " << status.error_message()
<< ", error details: " << status.error_details()
<< ", error code: " << status.error_code();
return true;
}
return false;
}
bool LogGrpcConnectionError(const grpc::Status& status) {
if (!status.ok()) {
FXL_LOG(ERROR) << "Server unexpectedly closed the connection "
<< "with status: " << status.error_message()
<< ", error details: " << status.error_details()
<< ", error code: " << status.error_code();
return true;
return true;
}
return false;
}
} // namespace cloud_provider_firestore