2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-08-31 14:38:15 +00:00

Added ability to report profile photos.

Fixed #24325.
This commit is contained in:
23rd
2022-04-17 14:48:53 +03:00
committed by John Preston
parent 2e9e3b3751
commit d289bbdc5e
9 changed files with 86 additions and 18 deletions

View File

@@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h"
#include "data/data_peer.h"
#include "data/data_photo.h"
#include "lang/lang_keys.h"
#include "main/main_session.h"
#include "ui/boxes/report_box.h"
@@ -42,16 +43,17 @@ void SendReport(
not_null<PeerData*> peer,
Ui::ReportReason reason,
const QString &comment,
MessageIdsList ids) {
if (ids.empty()) {
std::variant<v::null_t, MessageIdsList, not_null<PhotoData*>> data) {
auto done = [=] {
Ui::Toast::Show(toastParent, tr::lng_report_thanks(tr::now));
};
v::match(data, [&](v::null_t) {
peer->session().api().request(MTPaccount_ReportPeer(
peer->input,
ReasonToTL(reason),
MTP_string(comment)
)).done([=] {
Ui::Toast::Show(toastParent, tr::lng_report_thanks(tr::now));
}).send();
} else {
)).done(std::move(done)).send();
}, [&](const MessageIdsList &ids) {
auto apiIds = QVector<MTPint>();
apiIds.reserve(ids.size());
for (const auto &fullId : ids) {
@@ -62,10 +64,15 @@ void SendReport(
MTP_vector<MTPint>(apiIds),
ReasonToTL(reason),
MTP_string(comment)
)).done([=] {
Ui::Toast::Show(toastParent, tr::lng_report_thanks(tr::now));
}).send();
}
)).done(std::move(done)).send();
}, [&](not_null<PhotoData*> photo) {
peer->session().api().request(MTPaccount_ReportProfilePhoto(
peer->input,
photo->mtpInput(),
ReasonToTL(reason),
MTP_string(comment)
)).done(std::move(done)).send();
});
}
} // namespace Api

View File

@@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#pragma once
class PeerData;
class PhotoData;
namespace Ui {
enum class ReportReason;
@@ -20,6 +21,6 @@ void SendReport(
not_null<PeerData*> peer,
Ui::ReportReason reason,
const QString &comment,
MessageIdsList ids = {});
std::variant<v::null_t, MessageIdsList, not_null<PhotoData*>> data);
} // namespace Api