From 093f0b567f24962bd639872d9d1c631710e96b95 Mon Sep 17 00:00:00 2001 From: Szilard Szaloki Date: Wed, 27 Jul 2022 07:42:36 -0500 Subject: [PATCH] Removes `std::function<>` from the `Ledger::AttestPromotion()` flow. --- .../services/bat_ledger/bat_ledger_impl.cc | 18 +- .../services/bat_ledger/bat_ledger_impl.h | 5 - ios/browser/api/ledger/brave_ledger.mm | 6 +- .../include/bat/ledger/ledger.h | 2 +- .../ledger/internal/attestation/attestation.h | 3 +- .../attestation/attestation_androidx.cc | 23 +- .../attestation/attestation_androidx.h | 4 +- .../attestation/attestation_desktop.cc | 29 +- .../attestation/attestation_desktop.h | 4 +- .../internal/attestation/attestation_impl.cc | 2 +- .../internal/attestation/attestation_iosx.cc | 27 +- .../internal/attestation/attestation_iosx.h | 4 +- .../internal/contribution/contribution_sku.cc | 5 +- .../ledger/internal/credentials/credentials.h | 18 +- .../credentials/credentials_common.cc | 65 ++- .../internal/credentials/credentials_common.h | 11 +- .../credentials/credentials_promotion.cc | 384 +++++++++--------- .../credentials/credentials_promotion.h | 62 +-- .../internal/credentials/credentials_sku.cc | 277 ++++++------- .../internal/credentials/credentials_sku.h | 52 +-- .../get_credentials/get_credentials.cc | 19 +- .../payment/get_credentials/get_credentials.h | 16 +- .../get_credentials_unittest.cc | 24 +- .../post_credentials/post_credentials.cc | 17 +- .../post_credentials/post_credentials.h | 8 +- .../post_credentials_unittest.cc | 65 ++- .../get_signed_creds/get_signed_creds.cc | 19 +- .../get_signed_creds/get_signed_creds.h | 16 +- .../get_signed_creds_unittest.cc | 42 +- .../promotion/post_creds/post_creds.cc | 21 +- .../promotion/post_creds/post_creds.h | 9 +- .../post_creds/post_creds_unittest.cc | 49 +-- .../promotion/put_captcha/put_captcha.cc | 17 +- .../promotion/put_captcha/put_captcha.h | 13 +- .../put_captcha/put_captcha_unittest.cc | 55 +-- .../put_devicecheck/put_devicecheck.cc | 17 +- .../put_devicecheck/put_devicecheck.h | 13 +- .../put_devicecheck_unittest.cc | 44 +- .../promotion/put_safetynet/put_safetynet.cc | 17 +- .../promotion/put_safetynet/put_safetynet.h | 13 +- .../put_safetynet/put_safetynet_unittest.cc | 40 +- .../src/bat/ledger/internal/ledger_impl.cc | 7 +- .../ledger/internal/promotion/promotion.cc | 190 ++++----- .../bat/ledger/internal/promotion/promotion.h | 48 +-- 44 files changed, 789 insertions(+), 991 deletions(-) diff --git a/components/services/bat_ledger/bat_ledger_impl.cc b/components/services/bat_ledger/bat_ledger_impl.cc index 144005eddd3e..3f76fef04704 100644 --- a/components/services/bat_ledger/bat_ledger_impl.cc +++ b/components/services/bat_ledger/bat_ledger_impl.cc @@ -159,27 +159,11 @@ void BatLedgerImpl::ClaimPromotion( ledger_->ClaimPromotion(promotion_id, payload, std::move(callback)); } -// static -void BatLedgerImpl::OnAttestPromotion( - CallbackHolder* holder, - const ledger::type::Result result, - ledger::type::PromotionPtr promotion) { - DCHECK(holder); - if (holder->is_valid()) - std::move(holder->get()).Run(result, std::move(promotion)); - delete holder; -} void BatLedgerImpl::AttestPromotion( const std::string& promotion_id, const std::string& solution, AttestPromotionCallback callback) { - // deleted in OnAttestPromotion - auto* holder = new CallbackHolder( - AsWeakPtr(), std::move(callback)); - ledger_->AttestPromotion( - promotion_id, - solution, - std::bind(BatLedgerImpl::OnAttestPromotion, holder, _1, _2)); + ledger_->AttestPromotion(promotion_id, solution, std::move(callback)); } // static diff --git a/components/services/bat_ledger/bat_ledger_impl.h b/components/services/bat_ledger/bat_ledger_impl.h index 57950a82c2eb..503e2d9ad8f9 100644 --- a/components/services/bat_ledger/bat_ledger_impl.h +++ b/components/services/bat_ledger/bat_ledger_impl.h @@ -285,11 +285,6 @@ class BatLedgerImpl : const ledger::type::Result result, ledger::type::BalanceReportInfoPtr report_info); - static void OnAttestPromotion( - CallbackHolder* holder, - const ledger::type::Result result, - ledger::type::PromotionPtr promotion); - static void OnInitialize( CallbackHolder* holder, ledger::type::Result result); diff --git a/ios/browser/api/ledger/brave_ledger.mm b/ios/browser/api/ledger/brave_ledger.mm index d71e8987e985..481ead398fcf 100644 --- a/ios/browser/api/ledger/brave_ledger.mm +++ b/ios/browser/api/ledger/brave_ledger.mm @@ -1055,8 +1055,8 @@ - (void)attestPromotion:(NSString*)promotionId ledger->AttestPromotion( base::SysNSStringToUTF8(promotionId), base::SysNSStringToUTF8(solution.JSONPayload), - ^(const ledger::type::Result result, - ledger::type::PromotionPtr promotion) { + base::BindOnce(^(ledger::type::Result result, + ledger::type::PromotionPtr promotion) { if (promotion.get() == nullptr) { if (completion) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -1086,7 +1086,7 @@ - (void)attestPromotion:(NSString*)promotionId } } }); - }); + })); } #pragma mark - History diff --git a/vendor/bat-native-ledger/include/bat/ledger/ledger.h b/vendor/bat-native-ledger/include/bat/ledger/ledger.h index 8cba2488ca2d..f86e23f5d417 100644 --- a/vendor/bat-native-ledger/include/bat/ledger/ledger.h +++ b/vendor/bat-native-ledger/include/bat/ledger/ledger.h @@ -55,7 +55,7 @@ using RewardsInternalsInfoCallback = std::function; using AttestPromotionCallback = - std::function; + base::OnceCallback; using GetBalanceReportCallback = std::function; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation.h b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation.h index dd935b4d744c..b7fe1573342b 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation.h @@ -19,8 +19,7 @@ namespace attestation { using StartCallback = base::OnceCallback; -using ConfirmCallback = - std::function; +using ConfirmCallback = base::OnceCallback; class Attestation { public: diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.cc index ec5ca23b9209..3c34bbb48203 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.cc @@ -11,10 +11,6 @@ #include "bat/ledger/internal/attestation/attestation_androidx.h" #include "bat/ledger/internal/ledger_impl.h" -using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; - namespace ledger { namespace attestation { @@ -87,24 +83,23 @@ void AttestationAndroid::Confirm( std::string nonce; ParseClaimSolution(solution, &token, &nonce); - auto url_callback = std::bind(&AttestationAndroid::OnConfirm, - this, - _1, - callback); + auto url_callback = + base::BindOnce(&AttestationAndroid::OnConfirm, base::Unretained(this), + std::move(callback)); - promotion_server_->put_safetynet()->Request(token, nonce, url_callback); + promotion_server_->put_safetynet()->Request(token, nonce, + std::move(url_callback)); } -void AttestationAndroid::OnConfirm( - const type::Result result, - ConfirmCallback callback) { +void AttestationAndroid::OnConfirm(ConfirmCallback callback, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Failed to confirm attestation"); - callback(result); + std::move(callback).Run(result); return; } - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); } } // namespace attestation diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.h b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.h index 3f00c9466c6e..d7c0abcd45a5 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_androidx.h @@ -39,9 +39,7 @@ class AttestationAndroid : public Attestation { type::Result result, const std::string& confirmation); - void OnConfirm( - const type::Result result, - ConfirmCallback callback); + void OnConfirm(ConfirmCallback callback, type::Result result); std::unique_ptr promotion_server_; }; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.cc index e32752f2196e..7bf8225ef505 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.cc @@ -10,10 +10,6 @@ #include "bat/ledger/internal/attestation/attestation_desktop.h" #include "bat/ledger/internal/ledger_impl.h" -using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; - namespace ledger { namespace attestation { @@ -123,32 +119,27 @@ void AttestationDesktop::Confirm( if (result != type::Result::LEDGER_OK) { BLOG(0, "Failed to parse solution"); - callback(result); + std::move(callback).Run(result); return; } - auto url_callback = std::bind(&AttestationDesktop::OnConfirm, - this, - _1, - callback); + auto url_callback = + base::BindOnce(&AttestationDesktop::OnConfirm, base::Unretained(this), + std::move(callback)); - promotion_server_->put_captcha()->Request( - x, - y, - captcha_id, - url_callback); + promotion_server_->put_captcha()->Request(x, y, captcha_id, + std::move(url_callback)); } -void AttestationDesktop::OnConfirm( - const type::Result result, - ConfirmCallback callback) { +void AttestationDesktop::OnConfirm(ConfirmCallback callback, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Failed to confirm attestation"); - callback(result); + std::move(callback).Run(result); return; } - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); } } // namespace attestation diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.h b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.h index 6a5c521ca0fe..59e6c1e2ad18 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_desktop.h @@ -47,9 +47,7 @@ class AttestationDesktop : public Attestation { type::Result result, const std::string& image); - void OnConfirm( - const type::Result result, - ConfirmCallback callback); + void OnConfirm(ConfirmCallback callback, type::Result result); std::unique_ptr promotion_server_; }; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_impl.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_impl.cc index 64bef5637521..ab42f3224cd0 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_impl.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_impl.cc @@ -39,7 +39,7 @@ void AttestationImpl::Start( void AttestationImpl::Confirm( const std::string& solution, ConfirmCallback callback) { - platform_instance_->Confirm(solution, callback); + platform_instance_->Confirm(solution, std::move(callback)); } } // namespace attestation diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.cc index 861f00c76851..dd9953dcb6d6 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.cc @@ -11,10 +11,6 @@ #include "bat/ledger/internal/attestation/attestation_iosx.h" #include "bat/ledger/internal/ledger_impl.h" -using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; - namespace ledger { namespace attestation { @@ -124,32 +120,25 @@ void AttestationIOS::Confirm( if (result != type::Result::LEDGER_OK) { BLOG(0, "Failed to parse solution"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto url_callback = std::bind(&AttestationIOS::OnConfirm, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &AttestationIOS::OnConfirm, base::Unretained(this), std::move(callback)); - promotion_server_->put_devicecheck()->Request( - blob, - signature, - nonce, - url_callback); + promotion_server_->put_devicecheck()->Request(blob, signature, nonce, + std::move(url_callback)); } -void AttestationIOS::OnConfirm( - const type::Result result, - ConfirmCallback callback) { +void AttestationIOS::OnConfirm(ConfirmCallback callback, type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Failed to confirm attestation"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); } } // namespace attestation diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.h b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.h index f01aa398195d..f7d52b4f0f3e 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/attestation/attestation_iosx.h @@ -43,9 +43,7 @@ class AttestationIOS : public Attestation { type::Result result, const std::string& nonce); - void OnConfirm( - const type::Result result, - ConfirmCallback callback); + void OnConfirm(ConfirmCallback callback, type::Result result); std::unique_ptr promotion_server_; }; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_sku.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_sku.cc index 3ae9f3c8b936..51c04edf013d 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_sku.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_sku.cc @@ -199,7 +199,10 @@ void ContributionSKU::OnGetOrder(type::SKUOrderPtr order, credential::CredentialsTrigger trigger; GetCredentialTrigger(order->Clone(), &trigger); - credentials_->Start(trigger, callback); + credentials_->Start( + trigger, base::BindOnce([](ledger::LegacyResultCallback callback, + type::Result result) { callback(result); }, + std::move(callback))); } void ContributionSKU::Completed(type::Result result, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials.h b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials.h index 895df6b4520d..314f5148ec5e 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials.h @@ -21,26 +21,26 @@ class Credentials { virtual ~Credentials() = default; virtual void Start(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) = 0; + ledger::ResultCallback callback) = 0; virtual void RedeemTokens(const CredentialsRedeem& redeem, ledger::LegacyResultCallback callback) = 0; protected: - virtual void Blind(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) = 0; + virtual void Blind(ledger::ResultCallback callback, + const CredentialsTrigger& trigger) = 0; - virtual void Claim(type::CredsBatchPtr creds, + virtual void Claim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) = 0; + type::CredsBatchPtr creds) = 0; - virtual void Unblind(type::CredsBatchPtr creds, + virtual void Unblind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) = 0; + type::CredsBatchPtr creds) = 0; - virtual void Completed(type::Result result, + virtual void Completed(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) = 0; + type::Result result) = 0; }; } // namespace credential diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.cc index 63bdac5dd019..8e900b4035ce 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.cc @@ -3,6 +3,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include #include #include "base/guid.h" @@ -12,10 +13,6 @@ #include "bat/ledger/internal/credentials/credentials_util.h" #include "bat/ledger/internal/ledger_impl.h" -using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; - namespace ledger { namespace credential { @@ -27,12 +24,12 @@ CredentialsCommon::CredentialsCommon(LedgerImpl *ledger) : CredentialsCommon::~CredentialsCommon() = default; void CredentialsCommon::GetBlindedCreds(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + ledger::ResultCallback callback) { const auto creds = GenerateCreds(trigger.size); if (creds.empty()) { BLOG(0, "Creds are empty"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -41,7 +38,7 @@ void CredentialsCommon::GetBlindedCreds(const CredentialsTrigger& trigger, if (blinded_creds.empty()) { BLOG(0, "Blinded creds are empty"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -56,24 +53,26 @@ void CredentialsCommon::GetBlindedCreds(const CredentialsTrigger& trigger, creds_batch->trigger_type = trigger.type; creds_batch->status = type::CredsBatchStatus::BLINDED; - auto save_callback = std::bind(&CredentialsCommon::BlindedCredsSaved, - this, - _1, - callback); + auto save_callback = + base::BindOnce(&CredentialsCommon::BlindedCredsSaved, + base::Unretained(this), std::move(callback)); - ledger_->database()->SaveCredsBatch(std::move(creds_batch), save_callback); + ledger_->database()->SaveCredsBatch( + std::move(creds_batch), + [callback = + std::make_shared(std::move(save_callback))]( + type::Result result) { std::move(*callback).Run(result); }); } -void CredentialsCommon::BlindedCredsSaved( - type::Result result, - ledger::LegacyResultCallback callback) { +void CredentialsCommon::BlindedCredsSaved(ledger::ResultCallback callback, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Creds batch save failed"); - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); return; } - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); } void CredentialsCommon::SaveUnblindedCreds( @@ -82,7 +81,7 @@ void CredentialsCommon::SaveUnblindedCreds( const type::CredsBatch& creds, const std::vector& unblinded_encoded_creds, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + ledger::ResultCallback callback) { type::UnblindedTokenList list; type::UnblindedTokenPtr unblinded; for (auto & cred : unblinded_encoded_creds) { @@ -95,30 +94,30 @@ void CredentialsCommon::SaveUnblindedCreds( list.push_back(std::move(unblinded)); } - auto save_callback = std::bind(&CredentialsCommon::OnSaveUnblindedCreds, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsCommon::OnSaveUnblindedCreds, + base::Unretained(this), std::move(callback), trigger); - ledger_->database()->SaveUnblindedTokenList(std::move(list), save_callback); + ledger_->database()->SaveUnblindedTokenList( + std::move(list), [callback = std::make_shared( + std::move(save_callback))](type::Result result) { + std::move(*callback).Run(result); + }); } -void CredentialsCommon::OnSaveUnblindedCreds( - type::Result result, - const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { +void CredentialsCommon::OnSaveUnblindedCreds(ledger::ResultCallback callback, + const CredentialsTrigger& trigger, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Token list not saved"); - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); return; } ledger_->database()->UpdateCredsBatchStatus( - trigger.id, - trigger.type, - type::CredsBatchStatus::FINISHED, - callback); + trigger.id, trigger.type, type::CredsBatchStatus::FINISHED, + [callback = std::make_shared(std::move(callback))]( + type::Result result) { std::move(*callback).Run(result); }); } } // namespace credential diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.h b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.h index 05902bf855c8..71f5491eeb01 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_common.h @@ -26,7 +26,7 @@ class CredentialsCommon { ~CredentialsCommon(); void GetBlindedCreds(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + ledger::ResultCallback callback); void SaveUnblindedCreds( uint64_t expires_at, @@ -34,15 +34,14 @@ class CredentialsCommon { const type::CredsBatch& creds, const std::vector& unblinded_encoded_creds, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + ledger::ResultCallback callback); private: - void BlindedCredsSaved(type::Result result, - ledger::LegacyResultCallback callback); + void BlindedCredsSaved(ledger::ResultCallback callback, type::Result result); - void OnSaveUnblindedCreds(type::Result result, + void OnSaveUnblindedCreds(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); LedgerImpl* ledger_; // NOT OWNED }; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.cc index f57f840da86e..2f1f9f6ede9e 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.cc @@ -14,8 +14,6 @@ #include "bat/ledger/internal/ledger_impl.h" using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; namespace ledger { namespace credential { @@ -31,22 +29,22 @@ CredentialsPromotion::CredentialsPromotion(LedgerImpl* ledger) : CredentialsPromotion::~CredentialsPromotion() = default; void CredentialsPromotion::Start(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { - auto get_callback = std::bind(&CredentialsPromotion::OnStart, - this, - _1, - trigger, - callback); + ledger::ResultCallback callback) { + auto get_callback = + base::BindOnce(&CredentialsPromotion::OnStart, base::Unretained(this), + std::move(callback), trigger); ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); } -void CredentialsPromotion::OnStart(type::CredsBatchPtr creds, +void CredentialsPromotion::OnStart(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::CredsBatchPtr creds) { type::CredsBatchStatus status = type::CredsBatchStatus::NONE; if (creds) { status = creds->status; @@ -54,89 +52,94 @@ void CredentialsPromotion::OnStart(type::CredsBatchPtr creds, switch (status) { case type::CredsBatchStatus::NONE: { - Blind(trigger, callback); + Blind(std::move(callback), trigger); break; } case type::CredsBatchStatus::BLINDED: { - auto get_callback = std::bind(&CredentialsPromotion::Claim, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsPromotion::Claim, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); break; } case type::CredsBatchStatus::CLAIMED: { - auto get_callback = std::bind(&CredentialsPromotion::FetchSignedCreds, - this, - _1, - trigger, - callback); - ledger_->database()->GetPromotion(trigger.id, get_callback); + auto get_callback = + base::BindOnce(&CredentialsPromotion::FetchSignedCreds, + base::Unretained(this), std::move(callback), trigger); + + ledger_->database()->GetPromotion( + trigger.id, + [callback = std::make_shared( + std::move(get_callback))](type::PromotionPtr promotion) { + std::move(*callback).Run(std::move(promotion)); + }); break; } case type::CredsBatchStatus::SIGNED: { - auto get_callback = std::bind(&CredentialsPromotion::Unblind, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsPromotion::Unblind, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); break; } case type::CredsBatchStatus::FINISHED: { - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); break; } case type::CredsBatchStatus::CORRUPTED: { - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); break; } } } -void CredentialsPromotion::Blind(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { - auto blinded_callback = std::bind(&CredentialsPromotion::OnBlind, - this, - _1, - trigger, - callback); - common_->GetBlindedCreds(trigger, blinded_callback); +void CredentialsPromotion::Blind(ledger::ResultCallback callback, + const CredentialsTrigger& trigger) { + auto blinded_callback = + base::BindOnce(&CredentialsPromotion::OnBlind, base::Unretained(this), + std::move(callback), trigger); + common_->GetBlindedCreds(trigger, std::move(blinded_callback)); } -void CredentialsPromotion::OnBlind(type::Result result, +void CredentialsPromotion::OnBlind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Blinding failed"); - callback(result); + std::move(callback).Run(result); return; } - auto get_callback = std::bind(&CredentialsPromotion::Claim, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsPromotion::Claim, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); } -void CredentialsPromotion::Claim(type::CredsBatchPtr creds, +void CredentialsPromotion::Claim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::CredsBatchPtr creds) { if (!creds) { BLOG(0, "Creds not found"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -145,111 +148,105 @@ void CredentialsPromotion::Claim(type::CredsBatchPtr creds, if (!blinded_creds || blinded_creds->empty()) { BLOG(0, "Blinded creds are corrupted, we will try to blind again"); auto save_callback = - std::bind(&CredentialsPromotion::RetryPreviousStepSaved, - this, - _1, - callback); + base::BindOnce(&CredentialsPromotion::RetryPreviousStepSaved, + base::Unretained(this), std::move(callback)); ledger_->database()->UpdateCredsBatchStatus( - trigger.id, - trigger.type, - type::CredsBatchStatus::NONE, - save_callback); + trigger.id, trigger.type, type::CredsBatchStatus::NONE, + [callback = std::make_shared( + std::move(save_callback))](type::Result result) { + std::move(*callback).Run(result); + }); return; } - auto url_callback = std::bind(&CredentialsPromotion::OnClaim, - this, - _1, - _2, - trigger, - callback); + auto url_callback = + base::BindOnce(&CredentialsPromotion::OnClaim, base::Unretained(this), + std::move(callback), trigger); DCHECK(blinded_creds.has_value()); promotion_server_->post_creds()->Request( - trigger.id, std::move(blinded_creds.value()), url_callback); + trigger.id, std::move(blinded_creds.value()), std::move(url_callback)); } -void CredentialsPromotion::OnClaim(type::Result result, - const std::string& claim_id, +void CredentialsPromotion::OnClaim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result, + const std::string& claim_id) { if (result != type::Result::LEDGER_OK) { - callback(result); + std::move(callback).Run(result); return; } - auto save_callback = std::bind(&CredentialsPromotion::ClaimedSaved, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsPromotion::ClaimedSaved, + base::Unretained(this), std::move(callback), trigger); ledger_->database()->SavePromotionClaimId( - trigger.id, - claim_id, - save_callback); + trigger.id, claim_id, + [callback = + std::make_shared(std::move(save_callback))]( + type::Result result) { std::move(*callback).Run(result); }); } -void CredentialsPromotion::ClaimedSaved(type::Result result, +void CredentialsPromotion::ClaimedSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Claim id was not saved"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto save_callback = std::bind(&CredentialsPromotion::ClaimStatusSaved, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsPromotion::ClaimStatusSaved, + base::Unretained(this), std::move(callback), trigger); ledger_->database()->UpdateCredsBatchStatus( - trigger.id, - trigger.type, - type::CredsBatchStatus::CLAIMED, - save_callback); + trigger.id, trigger.type, type::CredsBatchStatus::CLAIMED, + [callback = + std::make_shared(std::move(save_callback))]( + type::Result result) { std::move(*callback).Run(result); }); } -void CredentialsPromotion::ClaimStatusSaved( - type::Result result, - const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { +void CredentialsPromotion::ClaimStatusSaved(ledger::ResultCallback callback, + const CredentialsTrigger& trigger, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Claim status not saved"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto get_callback = std::bind(&CredentialsPromotion::FetchSignedCreds, - this, - _1, - trigger, - callback); - ledger_->database()->GetPromotion(trigger.id, get_callback); + auto get_callback = + base::BindOnce(&CredentialsPromotion::FetchSignedCreds, + base::Unretained(this), std::move(callback), trigger); + + ledger_->database()->GetPromotion( + trigger.id, [callback = std::make_shared( + std::move(get_callback))](type::PromotionPtr promotion) { + std::move(*callback).Run(std::move(promotion)); + }); } void CredentialsPromotion::RetryPreviousStepSaved( - type::Result result, - ledger::LegacyResultCallback callback) { + ledger::ResultCallback callback, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Previous step not saved"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); } -void CredentialsPromotion::FetchSignedCreds( - type::PromotionPtr promotion, - const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { +void CredentialsPromotion::FetchSignedCreds(ledger::ResultCallback callback, + const CredentialsTrigger& trigger, + type::PromotionPtr promotion) { if (!promotion) { BLOG(0, "Corrupted data"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -257,110 +254,106 @@ void CredentialsPromotion::FetchSignedCreds( BLOG(0, "Claim id is empty, we will try claim step again"); auto save_callback = - std::bind(&CredentialsPromotion::RetryPreviousStepSaved, - this, - _1, - callback); + base::BindOnce(&CredentialsPromotion::RetryPreviousStepSaved, + base::Unretained(this), std::move(callback)); ledger_->database()->UpdateCredsBatchStatus( - trigger.id, - trigger.type, - type::CredsBatchStatus::BLINDED, - save_callback); + trigger.id, trigger.type, type::CredsBatchStatus::BLINDED, + [callback = std::make_shared( + std::move(save_callback))](type::Result result) { + std::move(*callback).Run(result); + }); return; } - auto url_callback = std::bind(&CredentialsPromotion::OnFetchSignedCreds, - this, - _1, - _2, - trigger, - callback); + auto url_callback = + base::BindOnce(&CredentialsPromotion::OnFetchSignedCreds, + base::Unretained(this), std::move(callback), trigger); promotion_server_->get_signed_creds()->Request( - trigger.id, - promotion->claim_id, - url_callback); + trigger.id, promotion->claim_id, std::move(url_callback)); } -void CredentialsPromotion::OnFetchSignedCreds( - type::Result result, - type::CredsBatchPtr batch, - const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { +void CredentialsPromotion::OnFetchSignedCreds(ledger::ResultCallback callback, + const CredentialsTrigger& trigger, + type::Result result, + type::CredsBatchPtr batch) { // Note: Translate type::Result::RETRY_SHORT into // type::Result::RETRY, as promotion only supports the standard // retry if (result == type::Result::RETRY_SHORT) { - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); return; } if (result != type::Result::LEDGER_OK || !batch) { BLOG(0, "Problem parsing response"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } batch->trigger_id = trigger.id; batch->trigger_type = trigger.type; - auto save_callback = std::bind(&CredentialsPromotion::SignedCredsSaved, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsPromotion::SignedCredsSaved, + base::Unretained(this), std::move(callback), trigger); - ledger_->database()->SaveSignedCreds(std::move(batch), save_callback); + ledger_->database()->SaveSignedCreds( + std::move(batch), [callback = std::make_shared( + std::move(save_callback))](type::Result result) { + std::move(*callback).Run(result); + }); } -void CredentialsPromotion::SignedCredsSaved( - type::Result result, - const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { +void CredentialsPromotion::SignedCredsSaved(ledger::ResultCallback callback, + const CredentialsTrigger& trigger, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Signed creds were not saved"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto get_callback = std::bind(&CredentialsPromotion::Unblind, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsPromotion::Unblind, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); } -void CredentialsPromotion::Unblind(type::CredsBatchPtr creds, +void CredentialsPromotion::Unblind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::CredsBatchPtr creds) { if (!creds) { BLOG(0, "Corrupted data"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto get_callback = std::bind(&CredentialsPromotion::VerifyPublicKey, - this, - _1, - trigger, - *creds, - callback); - ledger_->database()->GetPromotion(trigger.id, get_callback); + auto get_callback = base::BindOnce(&CredentialsPromotion::VerifyPublicKey, + base::Unretained(this), + std::move(callback), trigger, *creds); + + ledger_->database()->GetPromotion( + trigger.id, [callback = std::make_shared( + std::move(get_callback))](type::PromotionPtr promotion) { + std::move(*callback).Run(std::move(promotion)); + }); } -void CredentialsPromotion::VerifyPublicKey( - type::PromotionPtr promotion, - const CredentialsTrigger& trigger, - const type::CredsBatch& creds, - ledger::LegacyResultCallback callback) { +void CredentialsPromotion::VerifyPublicKey(ledger::ResultCallback callback, + const CredentialsTrigger& trigger, + const type::CredsBatch& creds, + type::PromotionPtr promotion) { if (!promotion) { BLOG(0, "Corrupted data"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -368,7 +361,7 @@ void CredentialsPromotion::VerifyPublicKey( if (!promotion_keys || promotion_keys->empty()) { BLOG(0, "Public key is missing"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -381,7 +374,7 @@ void CredentialsPromotion::VerifyPublicKey( if (!valid) { BLOG(0, "Public key is not valid"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -396,43 +389,40 @@ void CredentialsPromotion::VerifyPublicKey( if (!result) { BLOG(0, "UnBlindTokens: " << error); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } const double cred_value = promotion->approximate_value / promotion->suggestions; - auto save_callback = std::bind(&CredentialsPromotion::Completed, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsPromotion::Completed, base::Unretained(this), + std::move(callback), trigger); uint64_t expires_at = 0ul; if (promotion->type != type::PromotionType::ADS) { expires_at = promotion->expires_at; } - common_->SaveUnblindedCreds( - expires_at, - cred_value, - creds, - unblinded_encoded_creds, - trigger, - save_callback); + common_->SaveUnblindedCreds(expires_at, cred_value, creds, + unblinded_encoded_creds, trigger, + std::move(save_callback)); } -void CredentialsPromotion::Completed(type::Result result, +void CredentialsPromotion::Completed(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Unblinded token save failed"); - callback(result); + std::move(callback).Run(result); return; } - ledger_->database()->PromotionCredentialCompleted(trigger.id, callback); + ledger_->database()->PromotionCredentialCompleted( + trigger.id, + [callback = std::make_shared(std::move(callback))]( + type::Result result) { std::move(*callback).Run(result); }); ledger_->ledger_client()->UnblindedTokensReady(); } diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.h b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.h index 700d5793c517..b3184de9c33a 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_promotion.h @@ -23,7 +23,7 @@ class CredentialsPromotion : public Credentials { ~CredentialsPromotion() override; void Start(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + ledger::ResultCallback callback) override; void RedeemTokens(const CredentialsRedeem& redeem, ledger::LegacyResultCallback callback) override; @@ -32,62 +32,62 @@ class CredentialsPromotion : public Credentials { ledger::PostSuggestionsClaimCallback callback); private: - void OnStart(type::CredsBatchPtr creds, + void OnStart(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::CredsBatchPtr creds); - void Blind(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + void Blind(ledger::ResultCallback callback, + const CredentialsTrigger& trigger) override; - void OnBlind(type::Result result, + void OnBlind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void Claim(type::CredsBatchPtr creds, + void Claim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + type::CredsBatchPtr creds) override; - void OnClaim(type::Result result, - const std::string& claim_id, + void OnClaim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result, + const std::string& claim_id); - void ClaimedSaved(type::Result result, + void ClaimedSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void ClaimStatusSaved(type::Result result, + void ClaimStatusSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void RetryPreviousStepSaved(type::Result result, - ledger::LegacyResultCallback callback); + void RetryPreviousStepSaved(ledger::ResultCallback callback, + type::Result result); - void FetchSignedCreds(type::PromotionPtr promotion, + void FetchSignedCreds(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::PromotionPtr promotion); - void OnFetchSignedCreds(type::Result result, - type::CredsBatchPtr batch, + void OnFetchSignedCreds(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result, + type::CredsBatchPtr batch); - void SignedCredsSaved(type::Result result, + void SignedCredsSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void Unblind(type::CredsBatchPtr creds, + void Unblind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + type::CredsBatchPtr creds) override; - void VerifyPublicKey(type::PromotionPtr promotion, + void VerifyPublicKey(ledger::ResultCallback callback, const CredentialsTrigger& trigger, const type::CredsBatch& creds, - ledger::LegacyResultCallback callback); + type::PromotionPtr promotion); - void Completed(type::Result result, + void Completed(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + type::Result result) override; void OnRedeemTokens(type::Result result, const std::vector& token_id_list, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.cc index db619239ae43..8b054619744b 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.cc @@ -17,8 +17,6 @@ #include "bat/ledger/internal/constants.h" using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; namespace { @@ -82,29 +80,29 @@ CredentialsSKU::CredentialsSKU(LedgerImpl* ledger) : CredentialsSKU::~CredentialsSKU() = default; void CredentialsSKU::Start(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + ledger::ResultCallback callback) { DCHECK_EQ(trigger.data.size(), 2ul); if (trigger.data.empty()) { BLOG(0, "Trigger data is missing"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto get_callback = std::bind(&CredentialsSKU::OnStart, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsSKU::OnStart, base::Unretained(this), + std::move(callback), trigger); ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); } -void CredentialsSKU::OnStart(type::CredsBatchPtr creds, +void CredentialsSKU::OnStart(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::CredsBatchPtr creds) { type::CredsBatchStatus status = type::CredsBatchStatus::NONE; if (creds) { status = creds->status; @@ -112,96 +110,96 @@ void CredentialsSKU::OnStart(type::CredsBatchPtr creds, switch (status) { case type::CredsBatchStatus::NONE: { - Blind(trigger, callback); + Blind(std::move(callback), trigger); break; } case type::CredsBatchStatus::BLINDED: { - auto get_callback = std::bind(&CredentialsSKU::Claim, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsSKU::Claim, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); break; } case type::CredsBatchStatus::CLAIMED: { - FetchSignedCreds(trigger, callback); + FetchSignedCreds(std::move(callback), trigger); break; } case type::CredsBatchStatus::SIGNED: { - auto get_callback = std::bind(&CredentialsSKU::Unblind, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsSKU::Unblind, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); break; } case type::CredsBatchStatus::FINISHED: { - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); break; } case type::CredsBatchStatus::CORRUPTED: { - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); break; } } } -void CredentialsSKU::Blind(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { - auto blinded_callback = std::bind(&CredentialsSKU::OnBlind, - this, - _1, - trigger, - callback); - common_->GetBlindedCreds(trigger, blinded_callback); +void CredentialsSKU::Blind(ledger::ResultCallback callback, + const CredentialsTrigger& trigger) { + auto blinded_callback = + base::BindOnce(&CredentialsSKU::OnBlind, base::Unretained(this), + std::move(callback), trigger); + common_->GetBlindedCreds(trigger, std::move(blinded_callback)); } -void CredentialsSKU::OnBlind(type::Result result, +void CredentialsSKU::OnBlind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Claim failed"); - callback(result); + std::move(callback).Run(result); return; } - auto get_callback = std::bind(&CredentialsSKU::Claim, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsSKU::Claim, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); } -void CredentialsSKU::RetryPreviousStepSaved( - type::Result result, - ledger::LegacyResultCallback callback) { +void CredentialsSKU::RetryPreviousStepSaved(ledger::ResultCallback callback, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Previous step not saved"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); } -void CredentialsSKU::Claim(type::CredsBatchPtr creds, +void CredentialsSKU::Claim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::CredsBatchPtr creds) { if (!creds) { BLOG(0, "Creds not found"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -210,135 +208,128 @@ void CredentialsSKU::Claim(type::CredsBatchPtr creds, if (!blinded_creds || blinded_creds->empty()) { BLOG(0, "Blinded creds are corrupted, we will try to blind again"); auto save_callback = - std::bind(&CredentialsSKU::RetryPreviousStepSaved, - this, - _1, - callback); + base::BindOnce(&CredentialsSKU::RetryPreviousStepSaved, + base::Unretained(this), std::move(callback)); ledger_->database()->UpdateCredsBatchStatus( - trigger.id, - trigger.type, - type::CredsBatchStatus::NONE, - save_callback); + trigger.id, trigger.type, type::CredsBatchStatus::NONE, + [callback = std::make_shared( + std::move(save_callback))](type::Result result) { + std::move(*callback).Run(result); + }); return; } - auto url_callback = std::bind(&CredentialsSKU::OnClaim, - this, - _1, - trigger, - callback); - + auto url_callback = + base::BindOnce(&CredentialsSKU::OnClaim, base::Unretained(this), + std::move(callback), trigger); DCHECK_EQ(trigger.data.size(), 2ul); DCHECK(blinded_creds.has_value()); payment_server_->post_credentials()->Request( trigger.id, trigger.data[0], ConvertItemTypeToString(trigger.data[1]), - std::move(blinded_creds.value()), url_callback); + std::move(blinded_creds.value()), std::move(url_callback)); } -void CredentialsSKU::OnClaim(type::Result result, +void CredentialsSKU::OnClaim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Failed to claim SKU creds"); - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); return; } - auto save_callback = std::bind(&CredentialsSKU::ClaimStatusSaved, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsSKU::ClaimStatusSaved, base::Unretained(this), + std::move(callback), trigger); ledger_->database()->UpdateCredsBatchStatus( - trigger.id, - trigger.type, - type::CredsBatchStatus::CLAIMED, - save_callback); + trigger.id, trigger.type, type::CredsBatchStatus::CLAIMED, + [callback = + std::make_shared(std::move(save_callback))]( + type::Result result) { std::move(*callback).Run(result); }); } -void CredentialsSKU::ClaimStatusSaved(type::Result result, +void CredentialsSKU::ClaimStatusSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Claim status not saved: " << result); - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); return; } - FetchSignedCreds(trigger, callback); + FetchSignedCreds(std::move(callback), trigger); } -void CredentialsSKU::FetchSignedCreds(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { - auto url_callback = std::bind(&CredentialsSKU::OnFetchSignedCreds, - this, - _1, - _2, - trigger, - callback); +void CredentialsSKU::FetchSignedCreds(ledger::ResultCallback callback, + const CredentialsTrigger& trigger) { + auto url_callback = + base::BindOnce(&CredentialsSKU::OnFetchSignedCreds, + base::Unretained(this), std::move(callback), trigger); - payment_server_->get_credentials()->Request( - trigger.id, - trigger.data[0], - url_callback); + payment_server_->get_credentials()->Request(trigger.id, trigger.data[0], + std::move(url_callback)); } -void CredentialsSKU::OnFetchSignedCreds(type::Result result, - type::CredsBatchPtr batch, +void CredentialsSKU::OnFetchSignedCreds(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result, + type::CredsBatchPtr batch) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Couldn't fetch credentials: " << result); - callback(result); + std::move(callback).Run(result); return; } batch->trigger_id = trigger.id; batch->trigger_type = trigger.type; - auto get_callback = std::bind(&CredentialsSKU::SignedCredsSaved, - this, - _1, - trigger, - callback); - ledger_->database()->SaveSignedCreds(std::move(batch), get_callback); + auto get_callback = + base::BindOnce(&CredentialsSKU::SignedCredsSaved, base::Unretained(this), + std::move(callback), trigger); + + ledger_->database()->SaveSignedCreds( + std::move(batch), [callback = std::make_shared( + std::move(get_callback))](type::Result result) { + std::move(*callback).Run(result); + }); } -void CredentialsSKU::SignedCredsSaved(type::Result result, +void CredentialsSKU::SignedCredsSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Signed creds were not saved"); - callback(type::Result::RETRY); + std::move(callback).Run(type::Result::RETRY); return; } - auto get_callback = std::bind(&CredentialsSKU::Unblind, - this, - _1, - trigger, - callback); + auto get_callback = + base::BindOnce(&CredentialsSKU::Unblind, base::Unretained(this), + std::move(callback), trigger); + ledger_->database()->GetCredsBatchByTrigger( - trigger.id, - trigger.type, - get_callback); + trigger.id, trigger.type, + [callback = std::make_shared( + std::move(get_callback))](type::CredsBatchPtr creds_batch) { + std::move(*callback).Run(std::move(creds_batch)); + }); } -void CredentialsSKU::Unblind(type::CredsBatchPtr creds, +void CredentialsSKU::Unblind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::CredsBatchPtr creds) { if (!creds) { BLOG(0, "Corrupted data"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } if (!IsPublicKeyValid(creds->public_key)) { BLOG(0, "Public key is not valid"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -353,38 +344,32 @@ void CredentialsSKU::Unblind(type::CredsBatchPtr creds, if (!result) { BLOG(0, "UnBlindTokens: " << error); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } - auto save_callback = std::bind(&CredentialsSKU::Completed, - this, - _1, - trigger, - callback); + auto save_callback = + base::BindOnce(&CredentialsSKU::Completed, base::Unretained(this), + std::move(callback), trigger); const uint64_t expires_at = 0ul; - common_->SaveUnblindedCreds( - expires_at, - constant::kVotePrice, - *creds, - unblinded_encoded_creds, - trigger, - save_callback); + common_->SaveUnblindedCreds(expires_at, constant::kVotePrice, *creds, + unblinded_encoded_creds, trigger, + std::move(save_callback)); } -void CredentialsSKU::Completed(type::Result result, +void CredentialsSKU::Completed(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Unblinded token save failed"); - callback(result); + std::move(callback).Run(result); return; } ledger_->ledger_client()->UnblindedTokensReady(); - callback(result); + std::move(callback).Run(result); } void CredentialsSKU::RedeemTokens(const CredentialsRedeem& redeem, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.h b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.h index e3191ef97d65..bf9008567adc 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_sku.h @@ -23,57 +23,57 @@ class CredentialsSKU : public Credentials { ~CredentialsSKU() override; void Start(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + ledger::ResultCallback callback) override; void RedeemTokens(const CredentialsRedeem& redeem, ledger::LegacyResultCallback callback) override; private: - void OnStart(type::CredsBatchPtr creds, + void OnStart(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::CredsBatchPtr creds); - void Blind(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + void Blind(ledger::ResultCallback callback, + const CredentialsTrigger& trigger) override; - void OnBlind(type::Result result, + void OnBlind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void RetryPreviousStepSaved(type::Result result, - ledger::LegacyResultCallback callback); + void RetryPreviousStepSaved(ledger::ResultCallback callback, + type::Result result); - void Claim(type::CredsBatchPtr creds, + void Claim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + type::CredsBatchPtr creds) override; - void OnClaim(type::Result result, + void OnClaim(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void ClaimStatusSaved(type::Result result, + void ClaimStatusSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void FetchSignedCreds(const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + void FetchSignedCreds(ledger::ResultCallback callback, + const CredentialsTrigger& trigger); - void OnFetchSignedCreds(type::Result result, - type::CredsBatchPtr batch, + void OnFetchSignedCreds(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result, + type::CredsBatchPtr batch); - void SignedCredsSaved(type::Result result, + void SignedCredsSaved(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback); + type::Result result); - void Unblind(type::CredsBatchPtr creds, + void Unblind(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + type::CredsBatchPtr creds) override; - void Completed(type::Result result, + void Completed(ledger::ResultCallback callback, const CredentialsTrigger& trigger, - ledger::LegacyResultCallback callback) override; + type::Result result) override; void OnRedeemTokens(type::Result result, const std::vector& token_id_list, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.cc index d65d940b6c9a..c2d63162f25a 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.cc @@ -14,8 +14,6 @@ #include "bat/ledger/internal/ledger_impl.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace payment { @@ -111,30 +109,27 @@ void GetCredentials::Request( const std::string& order_id, const std::string& item_id, GetCredentialsCallback callback) { - auto url_callback = std::bind(&GetCredentials::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &GetCredentials::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(order_id, item_id); - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void GetCredentials::OnRequest( - const type::UrlResponse& response, - GetCredentialsCallback callback) { +void GetCredentials::OnRequest(GetCredentialsCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); type::Result result = CheckStatusCode(response.status_code); if (result != type::Result::LEDGER_OK) { - callback(result, nullptr); + std::move(callback).Run(result, nullptr); return; } auto batch = type::CredsBatch::New(); result = ParseBody(response.body, batch.get()); - callback(result, std::move(batch)); + std::move(callback).Run(result, std::move(batch)); } } // namespace payment diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.h index 174d2cf71e0d..f2c24a8f7aa8 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials.h @@ -3,8 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVELEDGER_ENDPOINT_PAYMENT_GET_CREDENTIALS_GET_CREDENTIALS_H_ -#define BRAVELEDGER_ENDPOINT_PAYMENT_GET_CREDENTIALS_GET_CREDENTIALS_H_ +#ifndef BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PAYMENT_GET_CREDENTIALS_GET_CREDENTIALS_H_ +#define BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PAYMENT_GET_CREDENTIALS_GET_CREDENTIALS_H_ #include #include @@ -49,9 +49,8 @@ class LedgerImpl; namespace endpoint { namespace payment { -using GetCredentialsCallback = std::function; +using GetCredentialsCallback = + base::OnceCallback; class GetCredentials { public: @@ -74,9 +73,8 @@ class GetCredentials { const std::string& body, type::CredsBatch* batch); - void OnRequest( - const type::UrlResponse& response, - GetCredentialsCallback callback); + void OnRequest(GetCredentialsCallback callback, + const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; @@ -85,4 +83,4 @@ class GetCredentials { } // namespace endpoint } // namespace ledger -#endif // BRAVELEDGER_ENDPOINT_PAYMENT_GET_CREDENTIALS_GET_CREDENTIALS_H_ +#endif // BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PAYMENT_GET_CREDENTIALS_GET_CREDENTIALS_H_ diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials_unittest.cc index 81c0901e0177..a0b6317dbecb 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/get_credentials/get_credentials_unittest.cc @@ -67,7 +67,7 @@ TEST_F(GetCredentialsTest, ServerOK) { creds_->Request( "pl2okf23-f2f02kf2fm2-msdkfsodkfds", "ff50981d-47de-4210-848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { type::CredsBatch expected_batch; expected_batch.batch_proof = "zx0cdJhaB/OdYcUtnyXdi+lsoniN2KNgFU"; expected_batch.public_key = @@ -77,7 +77,7 @@ TEST_F(GetCredentialsTest, ServerOK) { EXPECT_EQ(result, type::Result::LEDGER_OK); EXPECT_TRUE(expected_batch.Equals(*batch)); - }); + })); } TEST_F(GetCredentialsTest, ServerError202) { @@ -94,9 +94,9 @@ TEST_F(GetCredentialsTest, ServerError202) { creds_->Request( "pl2okf23-f2f02kf2fm2-msdkfsodkfds", "ff50981d-47de-4210-848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::RETRY_SHORT); - }); + })); } TEST_F(GetCredentialsTest, ServerError400) { @@ -113,9 +113,9 @@ TEST_F(GetCredentialsTest, ServerError400) { creds_->Request( "pl2okf23-f2f02kf2fm2-msdkfsodkfds", "ff50981d-47de-4210-848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::RETRY); - }); + })); } TEST_F(GetCredentialsTest, ServerError404) { @@ -132,9 +132,9 @@ TEST_F(GetCredentialsTest, ServerError404) { creds_->Request( "pl2okf23-f2f02kf2fm2-msdkfsodkfds", "ff50981d-47de-4210-848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::RETRY); - }); + })); } TEST_F(GetCredentialsTest, ServerError500) { @@ -151,9 +151,9 @@ TEST_F(GetCredentialsTest, ServerError500) { creds_->Request( "pl2okf23-f2f02kf2fm2-msdkfsodkfds", "ff50981d-47de-4210-848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::RETRY); - }); + })); } TEST_F(GetCredentialsTest, ServerErrorRandom) { @@ -170,9 +170,9 @@ TEST_F(GetCredentialsTest, ServerErrorRandom) { creds_->Request( "pl2okf23-f2f02kf2fm2-msdkfsodkfds", "ff50981d-47de-4210-848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::RETRY); - }); + })); } } // namespace payment diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.cc index f803bddd1062..8ec6aa751b32 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.cc @@ -13,8 +13,6 @@ #include "bat/ledger/internal/ledger_impl.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace payment { @@ -78,24 +76,21 @@ void PostCredentials::Request(const std::string& order_id, const std::string& type, base::Value::List&& blinded_creds, PostCredentialsCallback callback) { - auto url_callback = std::bind(&PostCredentials::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &PostCredentials::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(order_id); request->content = GeneratePayload(item_id, type, std::move(blinded_creds)); request->content_type = "application/json; charset=utf-8"; request->method = type::UrlMethod::POST; - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void PostCredentials::OnRequest( - const type::UrlResponse& response, - PostCredentialsCallback callback) { +void PostCredentials::OnRequest(PostCredentialsCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); - callback(CheckStatusCode(response.status_code)); + std::move(callback).Run(CheckStatusCode(response.status_code)); } } // namespace payment diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.h index 198933e8c553..f1083f5ff532 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials.h @@ -42,8 +42,7 @@ class LedgerImpl; namespace endpoint { namespace payment { -using PostCredentialsCallback = std::function; +using PostCredentialsCallback = base::OnceCallback; class PostCredentials { public: @@ -65,9 +64,8 @@ class PostCredentials { type::Result CheckStatusCode(const int status_code); - void OnRequest( - const type::UrlResponse& response, - PostCredentialsCallback callback); + void OnRequest(PostCredentialsCallback callback, + const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials_unittest.cc index ea3d526c28d2..173cc869e0a5 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_credentials/post_credentials_unittest.cc @@ -56,14 +56,11 @@ TEST_F(PostCredentialsTest, ServerOK) { base::Value::List blinded; blinded.Append(base::Value("asfeq4gerg34gl3g34lg34g")); - creds_->Request( - "pl2okf23-f2f02kf2fm2-msdkfsodkfds", - "ff50981d-47de-4210-848d-995e186901a1", - "single-use", - std::move(blinded), - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_OK); - }); + creds_->Request("pl2okf23-f2f02kf2fm2-msdkfsodkfds", + "ff50981d-47de-4210-848d-995e186901a1", "single-use", + std::move(blinded), base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_OK); + })); } TEST_F(PostCredentialsTest, ServerError400) { @@ -80,14 +77,11 @@ TEST_F(PostCredentialsTest, ServerError400) { base::Value::List blinded; blinded.Append(base::Value("asfeq4gerg34gl3g34lg34g")); - creds_->Request( - "pl2okf23-f2f02kf2fm2-msdkfsodkfds", - "ff50981d-47de-4210-848d-995e186901a1", - "single-use", - std::move(blinded), - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + creds_->Request("pl2okf23-f2f02kf2fm2-msdkfsodkfds", + "ff50981d-47de-4210-848d-995e186901a1", "single-use", + std::move(blinded), base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } TEST_F(PostCredentialsTest, ServerError409) { @@ -104,14 +98,11 @@ TEST_F(PostCredentialsTest, ServerError409) { base::Value::List blinded; blinded.Append(base::Value("asfeq4gerg34gl3g34lg34g")); - creds_->Request( - "pl2okf23-f2f02kf2fm2-msdkfsodkfds", - "ff50981d-47de-4210-848d-995e186901a1", - "single-use", - std::move(blinded), - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + creds_->Request("pl2okf23-f2f02kf2fm2-msdkfsodkfds", + "ff50981d-47de-4210-848d-995e186901a1", "single-use", + std::move(blinded), base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } TEST_F(PostCredentialsTest, ServerError500) { @@ -128,14 +119,11 @@ TEST_F(PostCredentialsTest, ServerError500) { base::Value::List blinded; blinded.Append(base::Value("asfeq4gerg34gl3g34lg34g")); - creds_->Request( - "pl2okf23-f2f02kf2fm2-msdkfsodkfds", - "ff50981d-47de-4210-848d-995e186901a1", - "single-use", - std::move(blinded), - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + creds_->Request("pl2okf23-f2f02kf2fm2-msdkfsodkfds", + "ff50981d-47de-4210-848d-995e186901a1", "single-use", + std::move(blinded), base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } TEST_F(PostCredentialsTest, ServerErrorRandom) { @@ -152,14 +140,11 @@ TEST_F(PostCredentialsTest, ServerErrorRandom) { base::Value::List blinded; blinded.Append(base::Value("asfeq4gerg34gl3g34lg34g")); - creds_->Request( - "pl2okf23-f2f02kf2fm2-msdkfsodkfds", - "ff50981d-47de-4210-848d-995e186901a1", - "single-use", - std::move(blinded), - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + creds_->Request("pl2okf23-f2f02kf2fm2-msdkfsodkfds", + "ff50981d-47de-4210-848d-995e186901a1", "single-use", + std::move(blinded), base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } } // namespace payment diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.cc index cdb48a115567..bb4b48c80a0d 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.cc @@ -13,8 +13,6 @@ #include "bat/ledger/internal/ledger_impl.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace promotion { @@ -111,31 +109,28 @@ void GetSignedCreds::Request( const std::string& promotion_id, const std::string& claim_id, GetSignedCredsCallback callback) { - auto url_callback = std::bind(&GetSignedCreds::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &GetSignedCreds::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(promotion_id, claim_id); - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void GetSignedCreds::OnRequest( - const type::UrlResponse& response, - GetSignedCredsCallback callback) { +void GetSignedCreds::OnRequest(GetSignedCredsCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); type::Result result = CheckStatusCode(response.status_code); if (result != type::Result::LEDGER_OK) { - callback(result, nullptr); + std::move(callback).Run(result, nullptr); return; } type::CredsBatch batch; result = ParseBody(response.body, &batch); - callback(result, type::CredsBatch::New(batch)); + std::move(callback).Run(result, type::CredsBatch::New(batch)); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.h index e3204d80933b..167482c5c898 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds.h @@ -3,8 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVELEDGER_ENDPOINT_PROMOTION_GET_SIGNED_CREDS_GET_SIGNED_CREDS_H_ -#define BRAVELEDGER_ENDPOINT_PROMOTION_GET_SIGNED_CREDS_GET_SIGNED_CREDS_H_ +#ifndef BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_GET_SIGNED_CREDS_GET_SIGNED_CREDS_H_ +#define BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_GET_SIGNED_CREDS_GET_SIGNED_CREDS_H_ #include @@ -48,9 +48,8 @@ class LedgerImpl; namespace endpoint { namespace promotion { -using GetSignedCredsCallback = std::function; +using GetSignedCredsCallback = + base::OnceCallback; class GetSignedCreds { public: @@ -73,9 +72,8 @@ class GetSignedCreds { const std::string& body, type::CredsBatch* batch); - void OnRequest( - const type::UrlResponse& response, - GetSignedCredsCallback callback); + void OnRequest(GetSignedCredsCallback callback, + const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; @@ -84,4 +82,4 @@ class GetSignedCreds { } // namespace endpoint } // namespace ledger -#endif // BRAVELEDGER_ENDPOINT_PROMOTION_GET_SIGNED_CREDS_GET_SIGNED_CREDS_H_ +#endif // BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_GET_SIGNED_CREDS_GET_SIGNED_CREDS_H_ diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds_unittest.cc index fa2e25ec392a..36f5e2838aeb 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_signed_creds/get_signed_creds_unittest.cc @@ -65,9 +65,8 @@ TEST_F(GetSignedCredsTest, ServerOK) { })); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - "848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + "ff50981d-47de-4210-848d-995e186901a1", "848d-995e186901a1", + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { type::CredsBatch expected_batch; expected_batch.batch_proof = "zx0cdJhaB/OdYcUtnyXdi+lsoniN2KNgFU"; expected_batch.public_key = @@ -77,7 +76,7 @@ TEST_F(GetSignedCredsTest, ServerOK) { EXPECT_EQ(result, type::Result::LEDGER_OK); EXPECT_TRUE(expected_batch.Equals(*batch)); - }); + })); } TEST_F(GetSignedCredsTest, ServerError202) { @@ -92,12 +91,11 @@ TEST_F(GetSignedCredsTest, ServerError202) { })); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - "848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + "ff50981d-47de-4210-848d-995e186901a1", "848d-995e186901a1", + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::RETRY_SHORT); EXPECT_TRUE(!batch); - }); + })); } TEST_F(GetSignedCredsTest, ServerError400) { @@ -112,12 +110,11 @@ TEST_F(GetSignedCredsTest, ServerError400) { })); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - "848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + "ff50981d-47de-4210-848d-995e186901a1", "848d-995e186901a1", + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); EXPECT_TRUE(!batch); - }); + })); } TEST_F(GetSignedCredsTest, ServerError404) { @@ -132,12 +129,11 @@ TEST_F(GetSignedCredsTest, ServerError404) { })); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - "848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + "ff50981d-47de-4210-848d-995e186901a1", "848d-995e186901a1", + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::NOT_FOUND); EXPECT_TRUE(!batch); - }); + })); } TEST_F(GetSignedCredsTest, ServerError500) { @@ -152,12 +148,11 @@ TEST_F(GetSignedCredsTest, ServerError500) { })); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - "848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + "ff50981d-47de-4210-848d-995e186901a1", "848d-995e186901a1", + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); EXPECT_TRUE(!batch); - }); + })); } TEST_F(GetSignedCredsTest, ServerErrorRandom) { @@ -172,12 +167,11 @@ TEST_F(GetSignedCredsTest, ServerErrorRandom) { })); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - "848d-995e186901a1", - [](const type::Result result, type::CredsBatchPtr batch) { + "ff50981d-47de-4210-848d-995e186901a1", "848d-995e186901a1", + base::BindOnce([](type::Result result, type::CredsBatchPtr batch) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); EXPECT_TRUE(!batch); - }); + })); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.cc index 773586b6d5f2..89cc1db0017f 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.cc @@ -14,8 +14,6 @@ #include "bat/ledger/internal/common/request_util.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace promotion { @@ -120,7 +118,7 @@ void PostCreds::Request(const std::string& promotion_id, const auto wallet = ledger_->wallet()->GetWallet(); if (!wallet) { BLOG(0, "Wallet is null"); - callback(type::Result::LEDGER_ERROR, ""); + std::move(callback).Run(type::Result::LEDGER_ERROR, ""); return; } @@ -132,10 +130,8 @@ void PostCreds::Request(const std::string& promotion_id, wallet->payment_id, wallet->recovery_seed); - auto url_callback = std::bind(&PostCreds::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &PostCreds::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(promotion_id); @@ -143,24 +139,23 @@ void PostCreds::Request(const std::string& promotion_id, request->headers = headers; request->content_type = "application/json; charset=utf-8"; request->method = type::UrlMethod::POST; - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void PostCreds::OnRequest( - const type::UrlResponse& response, - PostCredsCallback callback) { +void PostCreds::OnRequest(PostCredsCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); std::string claim_id; type::Result result = CheckStatusCode(response.status_code); if (result != type::Result::LEDGER_OK) { - callback(result, claim_id); + std::move(callback).Run(result, claim_id); return; } result = ParseBody(response.body, &claim_id); - callback(result, claim_id); + std::move(callback).Run(result, claim_id); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.h index 47d0e8c362cc..28736d19b994 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds.h @@ -44,9 +44,8 @@ class LedgerImpl; namespace endpoint { namespace promotion { -using PostCredsCallback = std::function; +using PostCredsCallback = + base::OnceCallback; class PostCreds { public: @@ -68,9 +67,7 @@ class PostCreds { const std::string& body, std::string* claim_id); - void OnRequest( - const type::UrlResponse& response, - PostCredsCallback callback); + void OnRequest(PostCredsCallback callback, const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds_unittest.cc index 04c2d2d2e1c2..9f07b575c421 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/post_creds/post_creds_unittest.cc @@ -69,12 +69,11 @@ TEST_F(PostCredsTest, ServerOK) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::LEDGER_OK); EXPECT_EQ(claim_id, "53714048-9675-419e-baa3-369d85a2facb"); - }); + })); } TEST_F(PostCredsTest, ServerError400) { @@ -92,11 +91,10 @@ TEST_F(PostCredsTest, ServerError400) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + })); } TEST_F(PostCredsTest, ServerError403) { @@ -114,11 +112,10 @@ TEST_F(PostCredsTest, ServerError403) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + })); } TEST_F(PostCredsTest, ServerError409) { @@ -136,11 +133,10 @@ TEST_F(PostCredsTest, ServerError409) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + })); } TEST_F(PostCredsTest, ServerError410) { @@ -158,11 +154,10 @@ TEST_F(PostCredsTest, ServerError410) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::NOT_FOUND); - }); + })); } TEST_F(PostCredsTest, ServerError500) { @@ -180,11 +175,10 @@ TEST_F(PostCredsTest, ServerError500) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + })); } TEST_F(PostCredsTest, ServerErrorRandom) { @@ -202,11 +196,10 @@ TEST_F(PostCredsTest, ServerErrorRandom) { creds.Append(base::Value("asfeq4gerg34gl3g34lg34g")); creds_->Request( - "ff50981d-47de-4210-848d-995e186901a1", - std::move(creds), - [](const type::Result result, const std::string& claim_id) { + "ff50981d-47de-4210-848d-995e186901a1", std::move(creds), + base::BindOnce([](type::Result result, const std::string& claim_id) { EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + })); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.cc index 6c2c32fc0527..a29007e44331 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.cc @@ -12,8 +12,6 @@ #include "bat/ledger/internal/ledger_impl.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace promotion { @@ -74,24 +72,21 @@ void PutCaptcha::Request( const int y, const std::string& captcha_id, PutCaptchaCallback callback) { - auto url_callback = std::bind(&PutCaptcha::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &PutCaptcha::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(captcha_id); request->content = GeneratePayload(x, y); request->content_type = "application/json; charset=utf-8"; request->method = type::UrlMethod::PUT; - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void PutCaptcha::OnRequest( - const type::UrlResponse& response, - PutCaptchaCallback callback) { +void PutCaptcha::OnRequest(PutCaptchaCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); - callback(CheckStatusCode(response.status_code)); + std::move(callback).Run(CheckStatusCode(response.status_code)); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.h index 83ea4046a3ad..93cb5f0b327e 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha.h @@ -3,8 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVELEDGER_ENDPOINT_PROMOTION_PUT_CAPTCHA_PUT_CAPTCHA_H_ -#define BRAVELEDGER_ENDPOINT_PROMOTION_PUT_CAPTCHA_PUT_CAPTCHA_H_ +#ifndef BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_CAPTCHA_PUT_CAPTCHA_H_ +#define BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_CAPTCHA_PUT_CAPTCHA_H_ #include @@ -43,7 +43,7 @@ class LedgerImpl; namespace endpoint { namespace promotion { -using PutCaptchaCallback = std::function; +using PutCaptchaCallback = base::OnceCallback; class PutCaptcha { public: @@ -63,9 +63,8 @@ class PutCaptcha { type::Result CheckStatusCode(const int status_code); - void OnRequest( - const type::UrlResponse& response, - PutCaptchaCallback callback); + void OnRequest(PutCaptchaCallback callback, + const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; @@ -74,4 +73,4 @@ class PutCaptcha { } // namespace endpoint } // namespace ledger -#endif // BRAVELEDGER_ENDPOINT_PROMOTION_PUT_CAPTCHA_PUT_CAPTCHA_H_ +#endif // BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_CAPTCHA_PUT_CAPTCHA_H_ diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha_unittest.cc index af813043de1d..53cb8928649b 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha_unittest.cc @@ -54,13 +54,10 @@ TEST_F(PutCaptchaTest, ServerOK) { std::move(callback).Run(response); })); - captcha_->Request( - 10, - 20, - "83b3b77b-e7c3-455b-adda-e476fa0656d2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_OK); - }); + captcha_->Request(10, 20, "83b3b77b-e7c3-455b-adda-e476fa0656d2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_OK); + })); } TEST_F(PutCaptchaTest, ServerError400) { @@ -74,13 +71,10 @@ TEST_F(PutCaptchaTest, ServerError400) { std::move(callback).Run(response); })); - captcha_->Request( - 10, - 20, - "83b3b77b-e7c3-455b-adda-e476fa0656d2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); - }); + captcha_->Request(10, 20, "83b3b77b-e7c3-455b-adda-e476fa0656d2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); + })); } TEST_F(PutCaptchaTest, ServerError401) { @@ -94,13 +88,10 @@ TEST_F(PutCaptchaTest, ServerError401) { std::move(callback).Run(response); })); - captcha_->Request( - 10, - 20, - "83b3b77b-e7c3-455b-adda-e476fa0656d2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); - }); + captcha_->Request(10, 20, "83b3b77b-e7c3-455b-adda-e476fa0656d2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); + })); } TEST_F(PutCaptchaTest, ServerError500) { @@ -114,13 +105,10 @@ TEST_F(PutCaptchaTest, ServerError500) { std::move(callback).Run(response); })); - captcha_->Request( - 10, - 20, - "83b3b77b-e7c3-455b-adda-e476fa0656d2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + captcha_->Request(10, 20, "83b3b77b-e7c3-455b-adda-e476fa0656d2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } TEST_F(PutCaptchaTest, ServerErrorRandom) { @@ -134,13 +122,10 @@ TEST_F(PutCaptchaTest, ServerErrorRandom) { std::move(callback).Run(response); })); - captcha_->Request( - 10, - 20, - "83b3b77b-e7c3-455b-adda-e476fa0656d2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + captcha_->Request(10, 20, "83b3b77b-e7c3-455b-adda-e476fa0656d2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.cc index 85441700281f..5077efaab2f8 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.cc @@ -12,8 +12,6 @@ #include "bat/ledger/internal/ledger_impl.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace promotion { @@ -74,24 +72,21 @@ void PutDevicecheck::Request( const std::string& signature, const std::string& nonce, PutDevicecheckCallback callback) { - auto url_callback = std::bind(&PutDevicecheck::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &PutDevicecheck::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(nonce); request->content = GeneratePayload(blob, signature); request->content_type = "application/json; charset=utf-8"; request->method = type::UrlMethod::PUT; - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void PutDevicecheck::OnRequest( - const type::UrlResponse& response, - PutDevicecheckCallback callback) { +void PutDevicecheck::OnRequest(PutDevicecheckCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); - callback(CheckStatusCode(response.status_code)); + std::move(callback).Run(CheckStatusCode(response.status_code)); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.h index d64d0a0761f2..3c2c433df3d0 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck.h @@ -3,8 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVELEDGER_ENDPOINT_PROMOTION_PUT_DEVICECHECK_PUT_DEVICECHECK_H_ -#define BRAVELEDGER_ENDPOINT_PROMOTION_PUT_DEVICECHECK_PUT_DEVICECHECK_H_ +#ifndef BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_DEVICECHECK_PUT_DEVICECHECK_H_ +#define BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_DEVICECHECK_PUT_DEVICECHECK_H_ #include @@ -41,7 +41,7 @@ class LedgerImpl; namespace endpoint { namespace promotion { -using PutDevicecheckCallback = std::function; +using PutDevicecheckCallback = base::OnceCallback; class PutDevicecheck { public: @@ -63,9 +63,8 @@ class PutDevicecheck { type::Result CheckStatusCode(const int status_code); - void OnRequest( - const type::UrlResponse& response, - PutDevicecheckCallback callback); + void OnRequest(PutDevicecheckCallback callback, + const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; @@ -74,4 +73,4 @@ class PutDevicecheck { } // namespace endpoint } // namespace ledger -#endif // BRAVELEDGER_ENDPOINT_PROMOTION_PUT_DEVICECHECK_PUT_DEVICECHECK_H_ +#endif // BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_DEVICECHECK_PUT_DEVICECHECK_H_ diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck_unittest.cc index 42effd35e9eb..656fb45f6860 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck_unittest.cc @@ -54,13 +54,10 @@ TEST_F(PutDevicecheckTest, ServerOK) { std::move(callback).Run(response); })); - devicecheck_->Request( - "dsfqwf4f901a1", - "asdfasdf", - "fsadfasdfff4901a1", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_OK); - }); + devicecheck_->Request("dsfqwf4f901a1", "asdfasdf", "fsadfasdfff4901a1", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_OK); + })); } TEST_F(PutDevicecheckTest, ServerError400) { @@ -74,13 +71,10 @@ TEST_F(PutDevicecheckTest, ServerError400) { std::move(callback).Run(response); })); - devicecheck_->Request( - "dsfqwf4f901a1", - "asdfasdf", - "fsadfasdfff4901a1", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); - }); + devicecheck_->Request("dsfqwf4f901a1", "asdfasdf", "fsadfasdfff4901a1", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); + })); } TEST_F(PutDevicecheckTest, ServerError401) { @@ -94,13 +88,10 @@ TEST_F(PutDevicecheckTest, ServerError401) { std::move(callback).Run(response); })); - devicecheck_->Request( - "dsfqwf4f901a1", - "asdfasdf", - "fsadfasdfff4901a1", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); - }); + devicecheck_->Request("dsfqwf4f901a1", "asdfasdf", "fsadfasdfff4901a1", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); + })); } TEST_F(PutDevicecheckTest, ServerError500) { @@ -114,13 +105,10 @@ TEST_F(PutDevicecheckTest, ServerError500) { std::move(callback).Run(response); })); - devicecheck_->Request( - "dsfqwf4f901a1", - "asdfasdf", - "fsadfasdfff4901a1", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + devicecheck_->Request("dsfqwf4f901a1", "asdfasdf", "fsadfasdfff4901a1", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.cc index 48536b5b8bb0..f13ceb1c4fa5 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.cc @@ -12,8 +12,6 @@ #include "bat/ledger/internal/ledger_impl.h" #include "net/http/http_status_code.h" -using std::placeholders::_1; - namespace ledger { namespace endpoint { namespace promotion { @@ -70,24 +68,21 @@ void PutSafetynet::Request( const std::string& token, const std::string& nonce, PutSafetynetCallback callback) { - auto url_callback = std::bind(&PutSafetynet::OnRequest, - this, - _1, - callback); + auto url_callback = base::BindOnce( + &PutSafetynet::OnRequest, base::Unretained(this), std::move(callback)); auto request = type::UrlRequest::New(); request->url = GetUrl(nonce); request->content = GeneratePayload(token); request->content_type = "application/json; charset=utf-8"; request->method = type::UrlMethod::PUT; - ledger_->LoadURL(std::move(request), url_callback); + ledger_->LoadURL(std::move(request), std::move(url_callback)); } -void PutSafetynet::OnRequest( - const type::UrlResponse& response, - PutSafetynetCallback callback) { +void PutSafetynet::OnRequest(PutSafetynetCallback callback, + const type::UrlResponse& response) { ledger::LogUrlResponse(__func__, response); - callback(CheckStatusCode(response.status_code)); + std::move(callback).Run(CheckStatusCode(response.status_code)); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.h b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.h index ffecbd8d056e..bcc5b0d013e4 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet.h @@ -3,8 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVELEDGER_ENDPOINT_PROMOTION_PUT_SAFETYNET_PUT_SAFETYNET_H_ -#define BRAVELEDGER_ENDPOINT_PROMOTION_PUT_SAFETYNET_PUT_SAFETYNET_H_ +#ifndef BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_SAFETYNET_PUT_SAFETYNET_H_ +#define BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_SAFETYNET_PUT_SAFETYNET_H_ #include @@ -40,7 +40,7 @@ class LedgerImpl; namespace endpoint { namespace promotion { -using PutSafetynetCallback = std::function; +using PutSafetynetCallback = base::OnceCallback; class PutSafetynet { public: @@ -59,9 +59,8 @@ class PutSafetynet { type::Result CheckStatusCode(const int status_code); - void OnRequest( - const type::UrlResponse& response, - PutSafetynetCallback callback); + void OnRequest(PutSafetynetCallback callback, + const type::UrlResponse& response); LedgerImpl* ledger_; // NOT OWNED }; @@ -70,4 +69,4 @@ class PutSafetynet { } // namespace endpoint } // namespace ledger -#endif // BRAVELEDGER_ENDPOINT_PROMOTION_PUT_SAFETYNET_PUT_SAFETYNET_H_ +#endif // BRAVE_VENDOR_BAT_NATIVE_LEDGER_SRC_BAT_LEDGER_INTERNAL_ENDPOINT_PROMOTION_PUT_SAFETYNET_PUT_SAFETYNET_H_ diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet_unittest.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet_unittest.cc index 88f806f2ec28..cd1043524672 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet_unittest.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet_unittest.cc @@ -54,12 +54,10 @@ TEST_F(PutSafetynetTest, ServerOK) { std::move(callback).Run(response); })); - safetynet_->Request( - "sdfsdf32d323d23d", - "dfasdfasdpflsadfplf2r23re2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_OK); - }); + safetynet_->Request("sdfsdf32d323d23d", "dfasdfasdpflsadfplf2r23re2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_OK); + })); } TEST_F(PutSafetynetTest, ServerError400) { @@ -73,12 +71,10 @@ TEST_F(PutSafetynetTest, ServerError400) { std::move(callback).Run(response); })); - safetynet_->Request( - "sdfsdf32d323d23d", - "dfasdfasdpflsadfplf2r23re2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); - }); + safetynet_->Request("sdfsdf32d323d23d", "dfasdfasdpflsadfplf2r23re2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); + })); } TEST_F(PutSafetynetTest, ServerError401) { @@ -92,12 +88,10 @@ TEST_F(PutSafetynetTest, ServerError401) { std::move(callback).Run(response); })); - safetynet_->Request( - "sdfsdf32d323d23d", - "dfasdfasdpflsadfplf2r23re2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); - }); + safetynet_->Request("sdfsdf32d323d23d", "dfasdfasdpflsadfplf2r23re2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::CAPTCHA_FAILED); + })); } TEST_F(PutSafetynetTest, ServerError500) { @@ -111,12 +105,10 @@ TEST_F(PutSafetynetTest, ServerError500) { std::move(callback).Run(response); })); - safetynet_->Request( - "sdfsdf32d323d23d", - "dfasdfasdpflsadfplf2r23re2", - [](const type::Result result) { - EXPECT_EQ(result, type::Result::LEDGER_ERROR); - }); + safetynet_->Request("sdfsdf32d323d23d", "dfasdfasdpflsadfplf2r23re2", + base::BindOnce([](type::Result result) { + EXPECT_EQ(result, type::Result::LEDGER_ERROR); + })); } } // namespace promotion diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc index 0a4889433200..c2accfaae663 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl.cc @@ -543,9 +543,10 @@ void LedgerImpl::ClaimPromotion(const std::string& promotion_id, void LedgerImpl::AttestPromotion(const std::string& promotion_id, const std::string& solution, AttestPromotionCallback callback) { - WhenReady([this, promotion_id, solution, callback]() { - promotion()->Attest(promotion_id, solution, callback); - }); + WhenReady( + [this, promotion_id, solution, callback = std::move(callback)]() mutable { + promotion()->Attest(promotion_id, solution, std::move(callback)); + }); } void LedgerImpl::GetBalanceReport(type::ActivityMonth month, diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.cc b/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.cc index 8437a814ab0a..d1c6a82ef009 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.cc +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.cc @@ -25,8 +25,6 @@ #include "wrapper.hpp" // NOLINT using std::placeholders::_1; -using std::placeholders::_2; -using std::placeholders::_3; using challenge_bypass_ristretto::BatchDLEQProof; using challenge_bypass_ristretto::BlindedToken; @@ -256,7 +254,7 @@ void Promotion::LegacyClaimedSaved( return; } - GetCredentials(std::move(*shared_promotion), [](const type::Result _){}); + GetCredentials(base::DoNothing(), std::move(*shared_promotion)); } void Promotion::Claim( @@ -318,134 +316,130 @@ void Promotion::Attest( const std::string& promotion_id, const std::string& solution, ledger::AttestPromotionCallback callback) { - auto promotion_callback = std::bind(&Promotion::OnAttestPromotion, - this, - _1, - solution, - callback); + auto promotion_callback = + base::BindOnce(&Promotion::OnAttestPromotion, base::Unretained(this), + std::move(callback), solution); - ledger_->database()->GetPromotion(promotion_id, promotion_callback); + ledger_->database()->GetPromotion( + promotion_id, + [callback = std::make_shared( + std::move(promotion_callback))](type::PromotionPtr promotion) { + std::move(*callback).Run(std::move(promotion)); + }); } -void Promotion::OnAttestPromotion( - type::PromotionPtr promotion, - const std::string& solution, - ledger::AttestPromotionCallback callback) { +void Promotion::OnAttestPromotion(ledger::AttestPromotionCallback callback, + const std::string& solution, + type::PromotionPtr promotion) { if (!promotion) { BLOG(1, "Promotion is null"); - callback(type::Result::LEDGER_ERROR, nullptr); + std::move(callback).Run(type::Result::LEDGER_ERROR, nullptr); return; } if (promotion->status != type::PromotionStatus::ACTIVE) { BLOG(1, "Promotion already in progress"); - callback(type::Result::IN_PROGRESS, nullptr); + std::move(callback).Run(type::Result::IN_PROGRESS, nullptr); return; } - auto confirm_callback = std::bind(&Promotion::OnAttestedPromotion, - this, - _1, - promotion->id, - callback); - attestation_->Confirm(solution, confirm_callback); + auto confirm_callback = + base::BindOnce(&Promotion::OnAttestedPromotion, base::Unretained(this), + std::move(callback), promotion->id); + attestation_->Confirm(solution, std::move(confirm_callback)); } -void Promotion::OnAttestedPromotion( - const type::Result result, - const std::string& promotion_id, - ledger::AttestPromotionCallback callback) { +void Promotion::OnAttestedPromotion(ledger::AttestPromotionCallback callback, + const std::string& promotion_id, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Attestation failed " << result); - callback(result, nullptr); + std::move(callback).Run(result, nullptr); return; } - auto promotion_callback = std::bind(&Promotion::OnCompletedAttestation, - this, - _1, - callback); + auto promotion_callback = + base::BindOnce(&Promotion::OnCompletedAttestation, base::Unretained(this), + std::move(callback)); - ledger_->database()->GetPromotion(promotion_id, promotion_callback); + ledger_->database()->GetPromotion( + promotion_id, + [callback = std::make_shared( + std::move(promotion_callback))](type::PromotionPtr promotion) { + std::move(*callback).Run(std::move(promotion)); + }); } -void Promotion::OnCompletedAttestation( - type::PromotionPtr promotion, - ledger::AttestPromotionCallback callback) { +void Promotion::OnCompletedAttestation(ledger::AttestPromotionCallback callback, + type::PromotionPtr promotion) { if (!promotion) { BLOG(0, "Promotion does not exist"); - callback(type::Result::LEDGER_ERROR, nullptr); + std::move(callback).Run(type::Result::LEDGER_ERROR, nullptr); return; } if (promotion->status == type::PromotionStatus::FINISHED) { BLOG(0, "Promotions already claimed"); - callback(type::Result::GRANT_ALREADY_CLAIMED, nullptr); + std::move(callback).Run(type::Result::GRANT_ALREADY_CLAIMED, nullptr); return; } promotion->status = type::PromotionStatus::ATTESTED; - auto save_callback = std::bind(&Promotion::AttestedSaved, - this, - _1, - std::make_shared(promotion->Clone()), - callback); + auto save_callback = + base::BindOnce(&Promotion::AttestedSaved, base::Unretained(this), + std::move(callback), promotion->Clone()); - ledger_->database()->SavePromotion(promotion->Clone(), save_callback); + ledger_->database()->SavePromotion( + std::move(promotion), + [callback = + std::make_shared(std::move(save_callback))]( + type::Result result) { std::move(*callback).Run(result); }); } -void Promotion::AttestedSaved( - const type::Result result, - std::shared_ptr shared_promotion, - ledger::AttestPromotionCallback callback) { +void Promotion::AttestedSaved(ledger::AttestPromotionCallback callback, + type::PromotionPtr promotion, + type::Result result) { if (result != type::Result::LEDGER_OK) { BLOG(0, "Save failed "); - callback(result, nullptr); - return; - } - if (!shared_promotion) { - BLOG(1, "Promotion is null"); - callback(type::Result::LEDGER_ERROR, nullptr); + std::move(callback).Run(result, nullptr); return; } - auto claim_callback = std::bind(&Promotion::Complete, - this, - _1, - (*shared_promotion)->id, - callback); + auto claim_callback = + base::BindOnce(&Promotion::Complete, base::Unretained(this), + std::move(callback), promotion->id); - GetCredentials((*shared_promotion)->Clone(), claim_callback); + GetCredentials(std::move(claim_callback), std::move(promotion)); } -void Promotion::Complete( - const type::Result result, - const std::string& promotion_id, - ledger::AttestPromotionCallback callback) { - auto promotion_callback = std::bind(&Promotion::OnComplete, - this, - _1, - result, - callback); - ledger_->database()->GetPromotion(promotion_id, promotion_callback); +void Promotion::Complete(ledger::AttestPromotionCallback callback, + const std::string& promotion_id, + type::Result result) { + auto promotion_callback = + base::BindOnce(&Promotion::OnComplete, base::Unretained(this), + std::move(callback), result); + + ledger_->database()->GetPromotion( + promotion_id, + [callback = std::make_shared( + std::move(promotion_callback))](type::PromotionPtr promotion) { + std::move(*callback).Run(std::move(promotion)); + }); } -void Promotion::OnComplete( - type::PromotionPtr promotion, - const type::Result result, - ledger::AttestPromotionCallback callback) { - BLOG(1, "Promotion completed with result " << result); +void Promotion::OnComplete(ledger::AttestPromotionCallback callback, + type::Result result, + type::PromotionPtr promotion) { + BLOG(1, "Promotion completed with result " << result); if (promotion && result == type::Result::LEDGER_OK) { ledger_->database()->SaveBalanceReportInfoItem( - util::GetCurrentMonth(), - util::GetCurrentYear(), + util::GetCurrentMonth(), util::GetCurrentYear(), ConvertPromotionTypeToReportType(promotion->type), - promotion->approximate_value, - [](const type::Result){}); + promotion->approximate_value, [](type::Result) {}); } - callback(result, std::move(promotion)); + std::move(callback).Run(result, std::move(promotion)); } void Promotion::ProcessFetchedPromotions( @@ -461,11 +455,11 @@ void Promotion::ProcessFetchedPromotions( std::move(callback).Run(result, std::move(promotions)); } -void Promotion::GetCredentials(type::PromotionPtr promotion, - ledger::LegacyResultCallback callback) { +void Promotion::GetCredentials(ledger::ResultCallback callback, + type::PromotionPtr promotion) { if (!promotion) { BLOG(0, "Promotion is null"); - callback(type::Result::LEDGER_ERROR); + std::move(callback).Run(type::Result::LEDGER_ERROR); return; } @@ -474,44 +468,42 @@ void Promotion::GetCredentials(type::PromotionPtr promotion, trigger.size = promotion->suggestions; trigger.type = type::CredsBatchType::PROMOTION; - auto creds_callback = std::bind(&Promotion::CredentialsProcessed, - this, - _1, - promotion->id, - callback); + auto creds_callback = + base::BindOnce(&Promotion::CredentialsProcessed, base::Unretained(this), + std::move(callback), promotion->id); - credentials_->Start(trigger, creds_callback); + credentials_->Start(trigger, std::move(creds_callback)); } -void Promotion::CredentialsProcessed(type::Result result, +void Promotion::CredentialsProcessed(ledger::ResultCallback callback, const std::string& promotion_id, - ledger::LegacyResultCallback callback) { + type::Result result) { if (result == type::Result::RETRY) { retry_timer_.Start(FROM_HERE, base::Seconds(5), base::BindOnce(&Promotion::OnRetryTimerElapsed, base::Unretained(this))); - callback(type::Result::LEDGER_OK); + std::move(callback).Run(type::Result::LEDGER_OK); return; } if (result == type::Result::NOT_FOUND) { ledger_->database()->UpdatePromotionStatus( - promotion_id, - type::PromotionStatus::OVER, - callback); + promotion_id, type::PromotionStatus::OVER, + [callback = std::make_shared(std::move(callback))]( + type::Result result) { std::move(*callback).Run(result); }); return; } if (result != type::Result::LEDGER_OK) { BLOG(0, "Credentials process not succeeded " << result); - callback(result); + std::move(callback).Run(result); return; } ledger_->database()->UpdatePromotionStatus( - promotion_id, - type::PromotionStatus::FINISHED, - callback); + promotion_id, type::PromotionStatus::FINISHED, + [callback = std::make_shared(std::move(callback))]( + type::Result result) { std::move(*callback).Run(result); }); } void Promotion::Retry(type::PromotionMap promotions) { @@ -524,9 +516,7 @@ void Promotion::Retry(type::PromotionMap promotions) { switch (promotion.second->status) { case type::PromotionStatus::ATTESTED: { - GetCredentials( - std::move(promotion.second), - [](const type::Result _){}); + GetCredentials(base::DoNothing(), std::move(promotion.second)); break; } case type::PromotionStatus::ACTIVE: diff --git a/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.h b/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.h index b385ec380c9d..81c581d55d10 100644 --- a/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.h +++ b/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion.h @@ -76,46 +76,40 @@ class Promotion { const std::string& payload, type::Result result); - void OnAttestPromotion( - type::PromotionPtr promotion, - const std::string& solution, - ledger::AttestPromotionCallback callback); + void OnAttestPromotion(ledger::AttestPromotionCallback callback, + const std::string& solution, + type::PromotionPtr promotion); - void OnAttestedPromotion( - const type::Result result, - const std::string& promotion_id, - ledger::AttestPromotionCallback callback); + void OnAttestedPromotion(ledger::AttestPromotionCallback callback, + const std::string& promotion_id, + type::Result result); - void OnCompletedAttestation( - type::PromotionPtr promotion, - ledger::AttestPromotionCallback callback); + void OnCompletedAttestation(ledger::AttestPromotionCallback callback, + type::PromotionPtr promotion); - void AttestedSaved( - const type::Result result, - std::shared_ptr shared_promotion, - ledger::AttestPromotionCallback callback); + void AttestedSaved(ledger::AttestPromotionCallback callback, + type::PromotionPtr promotion, + type::Result result); - void Complete( - const type::Result result, - const std::string& promotion_string, - ledger::AttestPromotionCallback callback); + void Complete(ledger::AttestPromotionCallback callback, + const std::string& promotion_string, + type::Result result); - void OnComplete( - type::PromotionPtr promotion, - const type::Result result, - ledger::AttestPromotionCallback callback); + void OnComplete(ledger::AttestPromotionCallback callback, + type::Result result, + type::PromotionPtr promotion); void ProcessFetchedPromotions( const type::Result result, type::PromotionList promotions, ledger::FetchPromotionCallback callback); - void GetCredentials(type::PromotionPtr promotion, - ledger::LegacyResultCallback callback); + void GetCredentials(ledger::ResultCallback callback, + type::PromotionPtr promotion); - void CredentialsProcessed(type::Result result, + void CredentialsProcessed(ledger::ResultCallback callback, const std::string& promotion_id, - ledger::LegacyResultCallback callback); + type::Result result); void Retry(type::PromotionMap promotions);