gecko-dev/dom/payments/PaymentActionResponse.h

193 lines
4.6 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 mozilla_dom_PaymentActionResponse_h
#define mozilla_dom_PaymentActionResponse_h
#include "nsCOMPtr.h"
#include "nsIPaymentActionResponse.h"
#include "nsString.h"
namespace mozilla::dom {
class PaymentRequestParent;
class PaymentResponseData : public nsIPaymentResponseData {
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIPAYMENTRESPONSEDATA
PaymentResponseData() = default;
protected:
virtual ~PaymentResponseData() = default;
uint32_t mType;
};
class GeneralResponseData final : public PaymentResponseData,
public nsIGeneralResponseData {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
NS_DECL_NSIGENERALRESPONSEDATA
GeneralResponseData();
private:
~GeneralResponseData() = default;
nsString mData;
};
class BasicCardResponseData final : public nsIBasicCardResponseData,
public PaymentResponseData {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
NS_DECL_NSIBASICCARDRESPONSEDATA
BasicCardResponseData();
private:
~BasicCardResponseData() = default;
nsString mCardholderName;
nsString mCardNumber;
nsString mExpiryMonth;
nsString mExpiryYear;
nsString mCardSecurityCode;
nsCOMPtr<nsIPaymentAddress> mBillingAddress;
};
class PaymentActionResponse : public nsIPaymentActionResponse {
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIPAYMENTACTIONRESPONSE
PaymentActionResponse();
protected:
virtual ~PaymentActionResponse() = default;
nsString mRequestId;
uint32_t mType;
};
class PaymentCanMakeActionResponse final
: public nsIPaymentCanMakeActionResponse,
public PaymentActionResponse {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
NS_DECL_NSIPAYMENTCANMAKEACTIONRESPONSE
PaymentCanMakeActionResponse();
private:
~PaymentCanMakeActionResponse() = default;
bool mResult;
};
class PaymentShowActionResponse final : public nsIPaymentShowActionResponse,
public PaymentActionResponse {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
NS_DECL_NSIPAYMENTSHOWACTIONRESPONSE
PaymentShowActionResponse();
private:
~PaymentShowActionResponse() = default;
uint32_t mAcceptStatus;
nsString mMethodName;
nsCOMPtr<nsIPaymentResponseData> mData;
nsString mPayerName;
nsString mPayerEmail;
nsString mPayerPhone;
};
class PaymentAbortActionResponse final : public nsIPaymentAbortActionResponse,
public PaymentActionResponse {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
NS_DECL_NSIPAYMENTABORTACTIONRESPONSE
PaymentAbortActionResponse();
private:
~PaymentAbortActionResponse() = default;
uint32_t mAbortStatus;
};
class PaymentCompleteActionResponse final
: public nsIPaymentCompleteActionResponse,
public PaymentActionResponse {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
NS_DECL_NSIPAYMENTCOMPLETEACTIONRESPONSE
PaymentCompleteActionResponse();
private:
~PaymentCompleteActionResponse() = default;
uint32_t mCompleteStatus;
};
class MethodChangeDetails : public nsIMethodChangeDetails {
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIMETHODCHANGEDETAILS
MethodChangeDetails() = default;
protected:
virtual ~MethodChangeDetails() = default;
uint32_t mType;
};
class GeneralMethodChangeDetails final : public MethodChangeDetails,
public nsIGeneralChangeDetails {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIMETHODCHANGEDETAILS(MethodChangeDetails::)
NS_DECL_NSIGENERALCHANGEDETAILS
GeneralMethodChangeDetails();
private:
~GeneralMethodChangeDetails() = default;
nsString mDetails;
};
class BasicCardMethodChangeDetails final : public MethodChangeDetails,
public nsIBasicCardChangeDetails {
public:
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_NSIMETHODCHANGEDETAILS(MethodChangeDetails::)
NS_DECL_NSIBASICCARDCHANGEDETAILS
BasicCardMethodChangeDetails();
private:
~BasicCardMethodChangeDetails() = default;
nsCOMPtr<nsIPaymentAddress> mBillingAddress;
};
} // namespace mozilla::dom
#endif