MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / performCreate

Method performCreate

Telegram/SourceFiles/api/api_invite_links.cpp:76–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74}
75
76void InviteLinks::performCreate(
77 const CreateInviteLinkArgs &args,
78 bool revokeLegacyPermanent) {
79 if (const auto i = _createCallbacks.find(args.peer)
80 ; i != end(_createCallbacks)) {
81 if (args.done) {
82 i->second.push_back(std::move(args.done));
83 }
84 return;
85 }
86 auto &callbacks = _createCallbacks[args.peer];
87 if (args.done) {
88 callbacks.push_back(std::move(args.done));
89 }
90
91 const auto requestApproval = !args.subscription && args.requestApproval;
92 using Flag = MTPmessages_ExportChatInvite::Flag;
93 _api->request(MTPmessages_ExportChatInvite(
94 MTP_flags((revokeLegacyPermanent
95 ? Flag::f_legacy_revoke_permanent
96 : Flag(0))
97 | (!args.label.isEmpty() ? Flag::f_title : Flag(0))
98 | (args.expireDate ? Flag::f_expire_date : Flag(0))
99 | ((!requestApproval && args.usageLimit)
100 ? Flag::f_usage_limit
101 : Flag(0))
102 | (requestApproval ? Flag::f_request_needed : Flag(0))
103 | (args.subscription ? Flag::f_subscription_pricing : Flag(0))),
104 args.peer->input(),
105 MTP_int(args.expireDate),
106 MTP_int(args.usageLimit),
107 MTP_string(args.label),
108 MTP_starsSubscriptionPricing(
109 MTP_int(args.subscription.period),
110 MTP_long(args.subscription.credits))
111 )).done([=, peer = args.peer](const MTPExportedChatInvite &result) {
112 const auto callbacks = _createCallbacks.take(peer);
113 const auto link = prepend(peer, peer->session().user(), result);
114 if (link && callbacks) {
115 for (const auto &callback : *callbacks) {
116 callback(*link);
117 }
118 }
119 }).fail([=, peer = args.peer] {
120 _createCallbacks.erase(peer);
121 }).send();
122}
123
124auto InviteLinks::lookupMyPermanent(not_null<PeerData*> peer) -> Link* {
125 auto i = _firstSlices.find(peer);

Callers

nothing calls this directly

Calls 15

MTP_flagsFunction · 0.85
MTP_stringFunction · 0.85
MTP_longFunction · 0.85
FlagEnum · 0.50
MTP_intFunction · 0.50
findMethod · 0.45
sendMethod · 0.45
failMethod · 0.45
doneMethod · 0.45
requestMethod · 0.45
isEmptyMethod · 0.45
inputMethod · 0.45

Tested by

no test coverage detected