Skip to content

Commit f88c332

Browse files
authored
Merge pull request #330 from Gorillza/master
I noticed that the onSuccessfulPayment method is not available in the…
2 parents 0aba021 + 61a691e commit f88c332

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Diff for: include/tgbot/EventBroadcaster.h

+18
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "tgbot/types/PollAnswer.h"
1313
#include "tgbot/types/ChatMemberUpdated.h"
1414
#include "tgbot/types/ChatJoinRequest.h"
15+
#include "tgbot/types/SuccessfulPayment.h"
1516

1617
#include <functional>
1718
#include <initializer_list>
@@ -43,6 +44,7 @@ friend EventHandler;
4344
typedef std::function<void (const PollAnswer::Ptr)> PollAnswerListener;
4445
typedef std::function<void (const ChatMemberUpdated::Ptr)> ChatMemberUpdatedListener;
4546
typedef std::function<void (const ChatJoinRequest::Ptr)> ChatJoinRequestListener;
47+
typedef std::function<void (const SuccessfulPayment::Ptr)> SuccessfulPaymentListener;
4648

4749
/**
4850
* @brief Registers listener which receives new incoming message of any kind - text, photo, sticker, etc.
@@ -202,6 +204,16 @@ friend EventHandler;
202204
_onChatJoinRequestListeners.push_back(listener);
203205
}
204206

207+
/**
208+
* @brief Registers listener which receives information about successful payments.
209+
* This listener is triggered when a successful payment is received by the bot.
210+
*
211+
* @param listener Listener.
212+
*/
213+
inline void onSuccessfulPayment(const SuccessfulPaymentListener& listener) {
214+
_onSuccessfulPaymentListeners.push_back(listener);
215+
}
216+
205217
private:
206218
template<typename ListenerType, typename ObjectType>
207219
inline void broadcast(const std::vector<ListenerType>& listeners, const ObjectType object) const {
@@ -278,6 +290,10 @@ friend EventHandler;
278290
broadcast<ChatJoinRequestListener, ChatJoinRequest::Ptr>(_onChatJoinRequestListeners, result);
279291
}
280292

293+
inline void broadcastSuccessfulPayment(const SuccessfulPayment::Ptr& payment) const {
294+
broadcast<SuccessfulPaymentListener, SuccessfulPayment::Ptr>(_onSuccessfulPaymentListeners, payment);
295+
}
296+
281297
std::vector<MessageListener> _onAnyMessageListeners;
282298
std::unordered_map<std::string, MessageListener> _onCommandListeners;
283299
std::vector<MessageListener> _onUnknownCommandListeners;
@@ -293,6 +309,8 @@ friend EventHandler;
293309
std::vector<ChatMemberUpdatedListener> _onMyChatMemberListeners;
294310
std::vector<ChatMemberUpdatedListener> _onChatMemberListeners;
295311
std::vector<ChatJoinRequestListener> _onChatJoinRequestListeners;
312+
std::vector<SuccessfulPaymentListener> _onSuccessfulPaymentListeners;
313+
296314
};
297315

298316
}

Diff for: src/EventHandler.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ void EventHandler::handleMessage(const Message::Ptr& message) const {
7272
} else {
7373
_broadcaster.broadcastNonCommandMessage(message);
7474
}
75+
76+
if (message->successfulPayment != nullptr) {
77+
_broadcaster.broadcastSuccessfulPayment(message->successfulPayment);
78+
}
7579
}
7680

7781
}

0 commit comments

Comments
 (0)