2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-08-31 06:35:14 +00:00

Fixed refreshing of file reference in api toggling media module.

This commit is contained in:
23rd
2022-04-07 19:12:58 +03:00
parent cf6b995c50
commit 4ad31ce4e0
3 changed files with 24 additions and 16 deletions

View File

@@ -169,7 +169,7 @@ void SendExistingMedia(
} else {
api->sendMessageFail(error, peer, randomId, newId);
}
});
});
} else {
api->sendMessageFail(error, peer, randomId, newId);
}

View File

@@ -17,19 +17,19 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Api {
namespace {
template <typename ToggleRequest, typename DoneCallback>
template <typename ToggleRequestCallback, typename DoneCallback>
void ToggleExistingMedia(
not_null<DocumentData*> document,
Data::FileOrigin origin,
ToggleRequest toggleRequest,
ToggleRequestCallback toggleRequest,
DoneCallback &&done) {
const auto api = &document->owner().session().api();
auto performRequest = [=](const auto &repeatRequest) -> void {
const auto usedFileReference = document->fileReference();
api->request(std::move(
toggleRequest
)).done(done).fail([=](const MTP::Error &error) {
api->request(
toggleRequest()
).done(done).fail([=](const MTP::Error &error) {
if (error.code() == 400
&& error.type().startsWith(u"FILE_REFERENCE_"_q)) {
auto refreshed = [=](const Data::UpdatedFileReferences &d) {
@@ -65,7 +65,9 @@ void ToggleFavedSticker(
ToggleExistingMedia(
document,
std::move(origin),
MTPmessages_FaveSticker(document->mtpInput(), MTP_bool(!faved)),
[=, d = document] {
return MTPmessages_FaveSticker(d->mtpInput(), MTP_bool(!faved));
},
[=] { document->owner().stickers().setFaved(document, faved); });
}
@@ -84,10 +86,12 @@ void ToggleRecentSticker(
ToggleExistingMedia(
document,
std::move(origin),
MTPmessages_SaveRecentSticker(
MTP_flags(MTPmessages_SaveRecentSticker::Flag(0)),
document->mtpInput(),
MTP_bool(!saved)),
[=] {
return MTPmessages_SaveRecentSticker(
MTP_flags(MTPmessages_SaveRecentSticker::Flag(0)),
document->mtpInput(),
MTP_bool(!saved));
},
std::move(done));
}
@@ -106,7 +110,9 @@ void ToggleSavedGif(
ToggleExistingMedia(
document,
std::move(origin),
MTPmessages_SaveGif(document->mtpInput(), MTP_bool(!saved)),
[=, d = document] {
return MTPmessages_SaveGif(d->mtpInput(), MTP_bool(!saved));
},
std::move(done));
}
@@ -118,7 +124,9 @@ void ToggleSavedRingtone(
ToggleExistingMedia(
document,
std::move(origin),
MTPaccount_SaveRingtone(document->mtpInput(), MTP_bool(!saved)),
[=, d = document] {
return MTPaccount_SaveRingtone(d->mtpInput(), MTP_bool(!saved));
},
std::move(done));
}