blob: be8721b4cd34ab5a2320d68ef4f9f10dcf00a87c [file] [log] [blame]
// Copyright 2020 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/lib/analytics/cpp/google_analytics/client.h"
#include <lib/syslog/cpp/macros.h>
namespace analytics::google_analytics {
namespace {
constexpr char kProtocolVersionKey[] = "v";
constexpr char kProtocolVersion[] = "1";
constexpr char kTrackingIdKey[] = "tid";
constexpr char kClientIdKey[] = "cid";
} // namespace
fit::promise<void, NetError> Client::AddEvent(const Event& event) const {
FX_DCHECK(IsReady());
auto parameters = PrepareParameters();
auto event_parameters = event.parameters();
parameters.insert(event_parameters.begin(), event_parameters.end());
return SendData(user_agent_, parameters);
}
std::map<std::string, std::string> Client::PrepareParameters() const {
FX_DCHECK(IsReady());
return {{kProtocolVersionKey, kProtocolVersion},
{kTrackingIdKey, tracking_id_},
{kClientIdKey, client_id_}};
}
bool Client::IsReady() const {
return !(user_agent_.empty() || tracking_id_.empty() || client_id_.empty());
}
} // namespace analytics::google_analytics