Skip to content

Commit

Permalink
Adds payment server handler
Browse files Browse the repository at this point in the history
  • Loading branch information
NejcZdovc committed Aug 20, 2020
1 parent a86b8f2 commit 241c47f
Show file tree
Hide file tree
Showing 16 changed files with 729 additions and 210 deletions.
44 changes: 23 additions & 21 deletions components/brave_rewards/test/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ source_set("brave_rewards_unit_tests") {
"//brave/components/brave_rewards/browser/rewards_service_impl_unittest.cc",
"//brave/components/l10n/browser/locale_helper_mock.cc",
"//brave/components/l10n/browser/locale_helper_mock.h",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/bat_helper_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/bat_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_monthly_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution_unblinded_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/credentials/credentials_util_unittest.cc",
Expand All @@ -28,27 +26,10 @@ source_set("brave_rewards_unit_tests") {
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/database/database_mock.h",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/database/database_publisher_prefix_list_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/database/database_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_client_mock.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_client_mock.h",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl_mock.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl_mock.h",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/client_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/publisher_settings_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/report_balance_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/wallet_info_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/logging/logging_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/github_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/helper_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/reddit_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/twitch_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/twitter_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/vimeo_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/youtube_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/publisher/prefix_list_reader_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/publisher/publisher_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/api/api_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/api/get_parameters/get_parameters_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/payment_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/payment/post_order/post_order_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_available/get_available_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_captcha/get_captcha_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/get_recover_wallet/get_recover_wallet_unittest.cc",
Expand All @@ -68,6 +49,27 @@ source_set("brave_rewards_unit_tests") {
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_captcha/put_captcha_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_devicecheck/put_devicecheck_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/endpoint/promotion/put_safetynet/put_safetynet_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_client_mock.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_client_mock.h",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl_mock.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/ledger_impl_mock.h",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/bat_helper_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/bat_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/client_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/publisher_settings_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/report_balance_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/legacy/wallet_info_state_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/logging/logging_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/github_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/helper_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/reddit_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/twitch_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/twitter_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/vimeo_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/media/youtube_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/promotion/promotion_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/publisher/prefix_list_reader_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/publisher/publisher_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/uphold/uphold_util_unittest.cc",
"//brave/vendor/bat-native-ledger/src/bat/ledger/internal/wallet/wallet_util_unittest.cc",
Expand Down
6 changes: 6 additions & 0 deletions vendor/bat-native-ledger/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,12 @@ source_set("ledger") {
"src/bat/ledger/internal/endpoint/api/api_util.h",
"src/bat/ledger/internal/endpoint/api/get_parameters/get_parameters.cc",
"src/bat/ledger/internal/endpoint/api/get_parameters/get_parameters.h",
"src/bat/ledger/internal/endpoint/payment/payment_server.cc",
"src/bat/ledger/internal/endpoint/payment/payment_server.h",
"src/bat/ledger/internal/endpoint/payment/payment_util.cc",
"src/bat/ledger/internal/endpoint/payment/payment_util.h",
"src/bat/ledger/internal/endpoint/payment/post_order/post_order.cc",
"src/bat/ledger/internal/endpoint/payment/post_order/post_order.h",
"src/bat/ledger/internal/endpoint/promotion/get_available/get_available.cc",
"src/bat/ledger/internal/endpoint/promotion/get_available/get_available.h",
"src/bat/ledger/internal/endpoint/promotion/get_captcha/get_captcha.cc",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* 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 "bat/ledger/internal/endpoint/payment/payment_server.h"

#include "bat/ledger/internal/ledger_impl.h"

namespace ledger {
namespace endpoint {

PaymentServer::PaymentServer(bat_ledger::LedgerImpl* ledger):
ledger_(ledger),
post_order_(new payment::PostOrder(ledger)) {
DCHECK(ledger_);
}

PaymentServer::~PaymentServer() = default;

payment::PostOrder* PaymentServer::post_order() const {
return post_order_.get();
}

} // namespace endpoint
} // namespace ledger
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* 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_PAYMENT_SERVER_H_
#define BRAVELEDGER_ENDPOINT_PAYMENT_PAYMENT_SERVER_H_

#include <memory>

#include "bat/ledger/ledger.h"
#include "bat/ledger/internal/endpoint/payment/post_order/post_order.h"

namespace bat_ledger {
class LedgerImpl;
}

namespace ledger {
namespace endpoint {

class PaymentServer {
public:
explicit PaymentServer(bat_ledger::LedgerImpl* ledger);
~PaymentServer();

payment::PostOrder* post_order() const;

private:
bat_ledger::LedgerImpl* ledger_; // NOT OWNED
std::unique_ptr<payment::PostOrder> post_order_;
};

} // namespace endpoint
} // namespace ledger

#endif // BRAVELEDGER_ENDPOINT_PAYMENT_PAYMENT_SERVER_H_
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* 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 "bat/ledger/internal/endpoint/payment/payment_util.h"

#include "bat/ledger/ledger.h"

namespace ledger {
namespace endpoint {
namespace payment {

const char kDevelopment[] = "https://payment.rewards.brave.software";
const char kStaging[] = "http://payment.rewards.bravesoftware.com";
const char kProduction[] = "http://payment.rewards.brave.com";

std::string GetServerUrl(const std::string& path) {
DCHECK(!path.empty());

std::string url;
switch (ledger::_environment) {
case ledger::Environment::DEVELOPMENT:
url = kDevelopment;
break;
case ledger::Environment::STAGING:
url = kStaging;
break;
case ledger::Environment::PRODUCTION:
url = kProduction;
break;
}

return url + path;
}

} // namespace payment
} // namespace endpoint
} // namespace ledger
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* 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_PAYMENT_UTIL_H_
#define BRAVELEDGER_ENDPOINT_PAYMENT_PAYMENT_UTIL_H_

#include <string>

namespace ledger {
namespace endpoint {
namespace payment {

std::string GetServerUrl(const std::string& path);

} // namespace payment
} // namespace endpoint
} // namespace ledger

#endif // BRAVELEDGER_ENDPOINT_PAYMENT_PAYMENT_UTIL_H_
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* 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 "bat/ledger/global_constants.h"
#include "bat/ledger/internal/endpoint/payment/payment_util.h"
#include "bat/ledger/ledger.h"
#include "testing/gtest/include/gtest/gtest.h"

// npm run test -- brave_unit_tests --filter=PaymentUtilTest.*

namespace ledger {
namespace endpoint {
namespace payment {

class PaymentUtilTest : public testing::Test {
};

TEST(PaymentUtilTest, GetServerUrlDevelopment) {
ledger::_environment = ledger::Environment::DEVELOPMENT;
const std::string url = GetServerUrl("/test");
const std::string expected_url = "";
ASSERT_EQ(url, "https://payment.rewards.brave.software/test");
}

TEST(PaymentUtilTest, GetServerUrlStaging) {
ledger::_environment = ledger::Environment::STAGING;
const std::string url = GetServerUrl("/test");
ASSERT_EQ(url, "https://payment.rewards.bravesoftware.com/test");
}

TEST(PaymentUtilTest, GetServerUrlProduction) {
ledger::_environment = ledger::Environment::PRODUCTION;
const std::string url = GetServerUrl("/test");
ASSERT_EQ(url, "https://payment.rewards.brave.com/test");
}

} // namespace payment
} // namespace endpoint
} // namespace ledger
Loading

0 comments on commit 241c47f

Please sign in to comment.