blob: 0e1091d4f9d4c329718439be9810f6f149bb0d50 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CART_CART_HANDLER_H_
#define CHROME_BROWSER_CART_CART_HANDLER_H_
#include "chrome/browser/cart/cart_service.h"
#include "chrome/browser/cart/chrome_cart.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
class Profile;
// Handles requests of chrome cart module sent from JS.
class CartHandler : public chrome_cart::mojom::CartHandler {
public:
CartHandler(mojo::PendingReceiver<chrome_cart::mojom::CartHandler> handler,
Profile* profile);
~CartHandler() override;
// chrome_cart::mojom::CartHandler:
void GetMerchantCarts(GetMerchantCartsCallback callback) override;
void HideCartModule() override;
void RestoreHiddenCartModule() override;
void HideCart(const GURL& cart_url, HideCartCallback callback) override;
void RestoreHiddenCart(const GURL& cart_url,
RestoreHiddenCartCallback callback) override;
void RemoveCart(const GURL& cart_url, RemoveCartCallback callback) override;
void RestoreRemovedCart(const GURL& cart_url,
RestoreRemovedCartCallback callback) override;
void GetWarmWelcomeVisible(GetWarmWelcomeVisibleCallback callback) override;
void OnCartItemClicked(uint32_t index) override;
void OnModuleCreated(uint32_t count) override;
void GetDiscountConsentCardVisible(
GetDiscountConsentCardVisibleCallback callback) override;
void OnDiscountConsentAcknowledged(bool accept) override;
void GetDiscountEnabled(GetDiscountEnabledCallback callback) override;
void SetDiscountEnabled(bool enabled) override;
private:
void GetCartDataCallback(GetMerchantCartsCallback callback,
bool success,
std::vector<CartDB::KeyAndValue> res);
mojo::Receiver<chrome_cart::mojom::CartHandler> handler_;
CartService* cart_service_;
base::WeakPtrFactory<CartHandler> weak_factory_{this};
};
#endif // CHROME_BROWSER_CART_CART_HANDLER_H_