Line data Source code
1 : /* vim:set ts=2 sw=2 sts=2 et cindent: */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : #include "nsArrayUtils.h"
7 : #include "nsIMutableArray.h"
8 : #include "PaymentActionRequest.h"
9 : #include "PaymentRequestData.h"
10 :
11 : using namespace mozilla::dom::payments;
12 :
13 : namespace mozilla {
14 : namespace dom {
15 :
16 : /* PaymentActionRequest */
17 :
18 0 : NS_IMPL_ISUPPORTS(PaymentActionRequest,
19 : nsIPaymentActionRequest)
20 :
21 0 : PaymentActionRequest::PaymentActionRequest()
22 0 : : mRequestId(EmptyString())
23 : , mType(nsIPaymentActionRequest::UNKNOWN_ACTION)
24 0 : , mCallback(nullptr)
25 : {
26 0 : }
27 :
28 : NS_IMETHODIMP
29 0 : PaymentActionRequest::Init(const nsAString& aRequestId,
30 : const uint32_t aType,
31 : nsIPaymentActionCallback* aCallback)
32 : {
33 0 : mRequestId = aRequestId;
34 0 : mType = aType;
35 0 : mCallback = aCallback;
36 0 : return NS_OK;
37 : }
38 :
39 : NS_IMETHODIMP
40 0 : PaymentActionRequest::GetRequestId(nsAString& aRequestId)
41 : {
42 0 : aRequestId = mRequestId;
43 0 : return NS_OK;
44 : }
45 :
46 : NS_IMETHODIMP
47 0 : PaymentActionRequest::GetType(uint32_t* aType)
48 : {
49 0 : *aType = mType;
50 0 : return NS_OK;
51 : }
52 :
53 : NS_IMETHODIMP
54 0 : PaymentActionRequest::GetCallback(nsIPaymentActionCallback** aCallback)
55 : {
56 0 : NS_ENSURE_ARG_POINTER(aCallback);
57 0 : nsCOMPtr<nsIPaymentActionCallback> callback = mCallback;
58 0 : callback.forget(aCallback);
59 0 : return NS_OK;
60 : }
61 :
62 : /* PaymentCreateActionRequest */
63 :
64 0 : NS_IMPL_ISUPPORTS_INHERITED(PaymentCreateActionRequest,
65 : PaymentActionRequest,
66 : nsIPaymentCreateActionRequest)
67 :
68 0 : PaymentCreateActionRequest::PaymentCreateActionRequest()
69 0 : : mTabId(0)
70 : {
71 0 : }
72 :
73 : NS_IMETHODIMP
74 0 : PaymentCreateActionRequest::InitRequest(const nsAString& aRequestId,
75 : nsIPaymentActionCallback* aCallback,
76 : const uint64_t aTabId,
77 : nsIArray* aMethodData,
78 : nsIPaymentDetails* aDetails,
79 : nsIPaymentOptions* aOptions)
80 : {
81 0 : NS_ENSURE_ARG_POINTER(aCallback);
82 0 : NS_ENSURE_ARG_POINTER(aMethodData);
83 0 : NS_ENSURE_ARG_POINTER(aDetails);
84 0 : NS_ENSURE_ARG_POINTER(aOptions);
85 0 : nsresult rv = Init(aRequestId, nsIPaymentActionRequest::CREATE_ACTION, aCallback);
86 0 : if (NS_WARN_IF(NS_FAILED(rv))) {
87 0 : return rv;
88 : }
89 0 : mTabId = aTabId;
90 0 : mMethodData = aMethodData;
91 0 : mDetails = aDetails;
92 0 : mOptions = aOptions;
93 0 : return NS_OK;
94 : }
95 :
96 : NS_IMETHODIMP
97 0 : PaymentCreateActionRequest::GetTabId(uint64_t* aTabId)
98 : {
99 0 : NS_ENSURE_ARG_POINTER(aTabId);
100 0 : *aTabId = mTabId;
101 0 : return NS_OK;
102 : }
103 :
104 : NS_IMETHODIMP
105 0 : PaymentCreateActionRequest::GetMethodData(nsIArray** aMethodData)
106 : {
107 0 : NS_ENSURE_ARG_POINTER(aMethodData);
108 0 : MOZ_ASSERT(mMethodData);
109 0 : nsCOMPtr<nsIArray> methodData = mMethodData;
110 0 : methodData.forget(aMethodData);
111 0 : return NS_OK;
112 : }
113 :
114 : NS_IMETHODIMP
115 0 : PaymentCreateActionRequest::GetDetails(nsIPaymentDetails** aDetails)
116 : {
117 0 : NS_ENSURE_ARG_POINTER(aDetails);
118 0 : MOZ_ASSERT(mDetails);
119 0 : nsCOMPtr<nsIPaymentDetails> details = mDetails;
120 0 : details.forget(aDetails);
121 0 : return NS_OK;
122 : }
123 :
124 : NS_IMETHODIMP
125 0 : PaymentCreateActionRequest::GetOptions(nsIPaymentOptions** aOptions)
126 : {
127 0 : NS_ENSURE_ARG_POINTER(aOptions);
128 0 : MOZ_ASSERT(mOptions);
129 0 : nsCOMPtr<nsIPaymentOptions> options = mOptions;
130 0 : options.forget(aOptions);
131 0 : return NS_OK;
132 : }
133 :
134 : /* PaymentCompleteActionRequest */
135 :
136 0 : NS_IMPL_ISUPPORTS_INHERITED(PaymentCompleteActionRequest,
137 : PaymentActionRequest,
138 : nsIPaymentCompleteActionRequest)
139 :
140 0 : PaymentCompleteActionRequest::PaymentCompleteActionRequest()
141 0 : : mCompleteStatus(EmptyString())
142 : {
143 0 : }
144 :
145 : NS_IMETHODIMP
146 0 : PaymentCompleteActionRequest::GetCompleteStatus(nsAString& aCompleteStatus)
147 : {
148 0 : aCompleteStatus = mCompleteStatus;
149 0 : return NS_OK;
150 : }
151 :
152 : NS_IMETHODIMP
153 0 : PaymentCompleteActionRequest::InitRequest(const nsAString& aRequestId,
154 : nsIPaymentActionCallback* aCallback,
155 : const nsAString& aCompleteStatus)
156 : {
157 0 : NS_ENSURE_ARG_POINTER(aCallback);
158 0 : nsresult rv = Init(aRequestId, nsIPaymentActionRequest::COMPLETE_ACTION, aCallback);
159 0 : if (NS_WARN_IF(NS_FAILED(rv))) {
160 0 : return rv;
161 : }
162 0 : mCompleteStatus = aCompleteStatus;
163 0 : return NS_OK;
164 : }
165 :
166 : /* PaymentUpdateActionRequest */
167 :
168 0 : NS_IMPL_ISUPPORTS_INHERITED(PaymentUpdateActionRequest,
169 : PaymentActionRequest,
170 : nsIPaymentUpdateActionRequest)
171 :
172 : NS_IMETHODIMP
173 0 : PaymentUpdateActionRequest::GetDetails(nsIPaymentDetails** aDetails)
174 : {
175 0 : NS_ENSURE_ARG_POINTER(aDetails);
176 0 : MOZ_ASSERT(mDetails);
177 0 : nsCOMPtr<nsIPaymentDetails> details = mDetails;
178 0 : details.forget(aDetails);
179 0 : return NS_OK;
180 : }
181 :
182 : NS_IMETHODIMP
183 0 : PaymentUpdateActionRequest::InitRequest(const nsAString& aRequestId,
184 : nsIPaymentActionCallback* aCallback,
185 : nsIPaymentDetails* aDetails)
186 : {
187 0 : NS_ENSURE_ARG_POINTER(aCallback);
188 0 : NS_ENSURE_ARG_POINTER(aDetails);
189 0 : nsresult rv = Init(aRequestId, nsIPaymentActionRequest::UPDATE_ACTION, aCallback);
190 0 : if (NS_WARN_IF(NS_FAILED(rv))) {
191 0 : return rv;
192 : }
193 0 : mDetails = aDetails;
194 0 : return NS_OK;
195 : }
196 :
197 : } // end of namespace dom
198 : } // end of namespace mozilla
|