blob: f31824c27d18bf047935624a1f612250a21be772 [file] [log] [blame]
// Copyright 2011 Software Freedom Conservancy
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "response.h"
#include "logging.h"
namespace webdriver {
Response::Response(void) : status_code_(0), session_id_(""), value_(Json::Value::null) {
}
Response::Response(const std::string& session_id) {
this->session_id_ = session_id;
this->status_code_ = 0;
this->value_ = Json::Value::null;
}
Response::~Response(void) {
}
void Response::Deserialize(const std::string& json) {
LOG(TRACE) << "Entering Response::Deserialize";
Json::Value response_object;
Json::Reader reader;
reader.parse(json, response_object);
this->status_code_ = response_object["status"].asInt();
this->session_id_ = response_object["sessionId"].asString();
this->value_ = response_object["value"];
}
std::string Response::Serialize(void) {
LOG(TRACE) << "Entering Response::Serialize";
Json::Value json_object;
json_object["status"] = this->status_code_;
json_object["sessionId"] = this->session_id_;
json_object["value"] = this->value_;
Json::FastWriter writer;
std::string output(writer.write(json_object));
return output;
}
void Response::SetSuccessResponse(const Json::Value& response_value) {
LOG(TRACE) << "Entering Response::SetSuccessResponse";
this->SetResponse(0, response_value);
}
void Response::SetResponse(const int status_code,
const Json::Value& response_value) {
LOG(TRACE) << "Entering Response::SetResponse";
this->status_code_ = status_code;
this->value_ = response_value;
}
void Response::SetErrorResponse(const int status_code,
const std::string& message) {
LOG(TRACE) << "Entering Response::SetErrorResponse";
LOG(WARN) << "Error response has status code " << status_code << " and message '" << message << "' message";
this->status_code_ = status_code;
this->value_["message"] = message;
}
} // namespace webdriver