From cb65c50c19657de61452f7acb315349d7ea809df Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 19 Jun 2024 06:00:54 +0300 Subject: [PATCH] Moved out deserialization of MTP statistical graph to separated file. --- Telegram/CMakeLists.txt | 2 ++ Telegram/SourceFiles/api/api_statistics.cpp | 22 +----------- .../api/api_statistics_data_deserialize.cpp | 35 +++++++++++++++++++ .../api/api_statistics_data_deserialize.h | 19 ++++++++++ 4 files changed, 57 insertions(+), 21 deletions(-) create mode 100644 Telegram/SourceFiles/api/api_statistics_data_deserialize.cpp create mode 100644 Telegram/SourceFiles/api/api_statistics_data_deserialize.h diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index b8fbab91a..686bb93be 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -164,6 +164,8 @@ PRIVATE api/api_single_message_search.h api/api_statistics.cpp api/api_statistics.h + api/api_statistics_data_deserialize.cpp + api/api_statistics_data_deserialize.h api/api_statistics_sender.cpp api/api_statistics_sender.h api/api_text_entities.cpp diff --git a/Telegram/SourceFiles/api/api_statistics.cpp b/Telegram/SourceFiles/api/api_statistics.cpp index a017571a9..869d0bf8a 100644 --- a/Telegram/SourceFiles/api/api_statistics.cpp +++ b/Telegram/SourceFiles/api/api_statistics.cpp @@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "api/api_statistics.h" +#include "api/api_statistics_data_deserialize.h" #include "apiwrap.h" #include "base/unixtime.h" #include "data/data_channel.h" @@ -15,31 +16,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_story.h" #include "history/history.h" #include "main/main_session.h" -#include "statistics/statistics_data_deserialize.h" namespace Api { namespace { -[[nodiscard]] Data::StatisticalGraph StatisticalGraphFromTL( - const MTPStatsGraph &tl) { - return tl.match([&](const MTPDstatsGraph &d) { - using namespace Statistic; - const auto zoomToken = d.vzoom_token().has_value() - ? qs(*d.vzoom_token()).toUtf8() - : QByteArray(); - return Data::StatisticalGraph{ - StatisticalChartFromJSON(qs(d.vjson().data().vdata()).toUtf8()), - zoomToken, - }; - }, [&](const MTPDstatsGraphAsync &data) { - return Data::StatisticalGraph{ - .zoomToken = qs(data.vtoken()).toUtf8(), - }; - }, [&](const MTPDstatsGraphError &data) { - return Data::StatisticalGraph{ .error = qs(data.verror()) }; - }); -} - [[nodiscard]] Data::StatisticalValue StatisticalValueFromTL( const MTPStatsAbsValueAndPrev &tl) { const auto current = tl.data().vcurrent().v; diff --git a/Telegram/SourceFiles/api/api_statistics_data_deserialize.cpp b/Telegram/SourceFiles/api/api_statistics_data_deserialize.cpp new file mode 100644 index 000000000..9ce75af78 --- /dev/null +++ b/Telegram/SourceFiles/api/api_statistics_data_deserialize.cpp @@ -0,0 +1,35 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#include "api/api_statistics_data_deserialize.h" + +#include "data/data_statistics_chart.h" +#include "statistics/statistics_data_deserialize.h" + +namespace Api { + +Data::StatisticalGraph StatisticalGraphFromTL(const MTPStatsGraph &tl) { + return tl.match([&](const MTPDstatsGraph &d) { + using namespace Statistic; + const auto zoomToken = d.vzoom_token().has_value() + ? qs(*d.vzoom_token()).toUtf8() + : QByteArray(); + return Data::StatisticalGraph{ + StatisticalChartFromJSON(qs(d.vjson().data().vdata()).toUtf8()), + zoomToken, + }; + }, [&](const MTPDstatsGraphAsync &data) { + return Data::StatisticalGraph{ + .zoomToken = qs(data.vtoken()).toUtf8(), + }; + }, [&](const MTPDstatsGraphError &data) { + return Data::StatisticalGraph{ .error = qs(data.verror()) }; + }); +} + + +} // namespace Api diff --git a/Telegram/SourceFiles/api/api_statistics_data_deserialize.h b/Telegram/SourceFiles/api/api_statistics_data_deserialize.h new file mode 100644 index 000000000..385b99d17 --- /dev/null +++ b/Telegram/SourceFiles/api/api_statistics_data_deserialize.h @@ -0,0 +1,19 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#pragma once + +namespace Data { +struct StatisticalGraph; +} // namespace Data + +namespace Api { + +[[nodiscard]] Data::StatisticalGraph StatisticalGraphFromTL( + const MTPStatsGraph &tl); + +} // namespace Api