/* -*- 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