chromium/chrome/browser/ash/policy/reporting/event_based_logs/event_based_log_uploader.cc

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ash/policy/reporting/event_based_logs/event_based_log_uploader.h"

#include <algorithm>
#include <optional>
#include <set>
#include <string>

#include "base/functional/callback.h"
#include "base/uuid.h"
#include "chrome/browser/policy/messaging_layer/proto/synced/log_upload_event.pb.h"
#include "chrome/browser/support_tool/data_collection_module.pb.h"
#include "components/reporting/util/status.h"

namespace policy {

EventBasedLogUploader::EventBasedLogUploader() = default;
EventBasedLogUploader::~EventBasedLogUploader() = default;

// static
std::string EventBasedLogUploader::GenerateUploadId() {
  return base::Uuid::GenerateRandomV4().AsLowercaseString();
}

EventBasedLogUploaderImpl::EventBasedLogUploaderImpl() = default;
EventBasedLogUploaderImpl::~EventBasedLogUploaderImpl() = default;

void EventBasedLogUploaderImpl::UploadEventBasedLogs(
    std::set<support_tool::DataCollectorType> data_collectors,
    ash::reporting::TriggerEventType event_type,
    std::optional<std::string> upload_id,
    UploadCallback on_upload_completed) {
  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  // TODO: b/330675989 - Add real log upload logic when the blocker is resolved
  // and File Storage Server accepts event based log uploads.
  // For now, we don't do anything here.
  std::move(on_upload_completed).Run(reporting::Status::StatusOK());
}

}  // namespace policy