diff options
Diffstat (limited to 'source/application/discord/application_manager.cpp')
-rw-r--r-- | source/application/discord/application_manager.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/application/discord/application_manager.cpp b/source/application/discord/application_manager.cpp index f5a06d3..0e05f3f 100644 --- a/source/application/discord/application_manager.cpp +++ b/source/application/discord/application_manager.cpp @@ -60,4 +60,19 @@ void ApplicationManager::GetOAuth2Token(std::function<void(Result, OAuth2Token c internal_->get_oauth2_token(internal_, cb.release(), wrapper); } +void ApplicationManager::GetTicket(std::function<void(Result, char const*)> callback) +{ + static auto wrapper = [](void* callbackData, EDiscordResult result, char const* data) -> void { + std::unique_ptr<std::function<void(Result, char const*)>> cb( + reinterpret_cast<std::function<void(Result, char const*)>*>(callbackData)); + if (!cb || !(*cb)) { + return; + } + (*cb)(static_cast<Result>(result), static_cast<const char*>(data)); + }; + std::unique_ptr<std::function<void(Result, char const*)>> cb{}; + cb.reset(new std::function<void(Result, char const*)>(std::move(callback))); + internal_->get_ticket(internal_, cb.release(), wrapper); +} + } // namespace discord |