// Copyright 2014 The Chromium OS 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 "feedback/feedback_uploader_http.h"

#include <chromeos/http/http_utils.h>
#include <chromeos/mime_utils.h>

namespace feedback {

FeedbackUploaderHttp::FeedbackUploaderHttp(
    const base::FilePath& path,
    base::SequencedWorkerPool* pool,
    const std::string& url) : FeedbackUploader(path, pool, url) {}

void FeedbackUploaderHttp::DispatchReport(const std::string& data) {
  chromeos::ErrorPtr error;
  auto response = chromeos::http::PostBinaryAndBlock(
      url_, data.data(), data.size(), chromeos::mime::application::kProtobuf,
      {}, chromeos::http::Transport::CreateDefault(), &error);
  if (response) {
    LOG(INFO) << "Sending feedback: successful";
    UpdateUploadTimer();
  } else {
    LOG(WARNING) << "Sending feedback: failed with error "
                 << error->GetMessage() << ", retrying";
    RetryReport(data);
  }
}

}  // namespace feedback
