Add platform device id package. Send device uuid to ionia for purchase request. (#494)
mkyq committed
Aug 31, 2022 at 17:37 UTC
92458e2f4bdcd71e30036a57623996306490bd31
5 files changed
+20
-1
ios/Podfile.lock
+12
@@ -63,6 +63,8 @@ PODS:
63
- Flutter
64
- device_display_brightness (0.0.1):
65
- Flutter
66
+ - device_info (0.0.1):
67
+ - Flutter
68
- devicelocale (0.0.1):
69
- Flutter
70
- DKImagePickerController/Core (4.3.2):
@@ -113,6 +115,8 @@ PODS:
115
- Flutter
116
- "permission_handler (5.1.0+2)":
117
- Flutter
118
+ - platform_device_id (0.0.1):
119
+ - Flutter
120
- Reachability (3.2)
121
- SDWebImage (5.9.1):
122
- SDWebImage/Core (= 5.9.1)
@@ -141,6 +145,7 @@ DEPENDENCIES:
145
- cw_monero (from `.symlinks/plugins/cw_monero/ios`)
146
- cw_shared_external (from `.symlinks/plugins/cw_shared_external/ios`)
147
- device_display_brightness (from `.symlinks/plugins/device_display_brightness/ios`)
148
+ - device_info (from `.symlinks/plugins/device_info/ios`)
149
- devicelocale (from `.symlinks/plugins/devicelocale/ios`)
150
- esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`)
151
- file_picker (from `.symlinks/plugins/file_picker/ios`)
@@ -150,6 +155,7 @@ DEPENDENCIES:
155
- package_info (from `.symlinks/plugins/package_info/ios`)
156
- path_provider (from `.symlinks/plugins/path_provider/ios`)
157
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
158
+ - platform_device_id (from `.symlinks/plugins/platform_device_id/ios`)
159
- share (from `.symlinks/plugins/share/ios`)
160
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
161
- uni_links (from `.symlinks/plugins/uni_links/ios`)
@@ -183,6 +189,8 @@ EXTERNAL SOURCES:
189
:path: ".symlinks/plugins/cw_shared_external/ios"
190
device_display_brightness:
191
:path: ".symlinks/plugins/device_display_brightness/ios"
192
+ device_info:
193
+ :path: ".symlinks/plugins/device_info/ios"
194
devicelocale:
195
:path: ".symlinks/plugins/devicelocale/ios"
196
esys_flutter_share:
@@ -201,6 +209,8 @@ EXTERNAL SOURCES:
209
:path: ".symlinks/plugins/path_provider/ios"
210
permission_handler:
211
:path: ".symlinks/plugins/permission_handler/ios"
212
+ platform_device_id:
213
+ :path: ".symlinks/plugins/platform_device_id/ios"
214
share:
215
:path: ".symlinks/plugins/share/ios"
216
shared_preferences:
@@ -221,6 +231,7 @@ SPEC CHECKSUMS:
231
cw_monero: 4cf3b96f2da8e95e2ef7d6703dd4d2c509127b7d
232
cw_shared_external: 2972d872b8917603478117c9957dfca611845a92
233
device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7
234
+ device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
235
devicelocale: b22617f40038496deffba44747101255cee005b0
236
DKImagePickerController: b5eb7f7a388e4643264105d648d01f727110fc3d
237
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
@@ -233,6 +244,7 @@ SPEC CHECKSUMS:
244
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
245
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
246
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
247
+ platform_device_id: 81b3e2993881f87d0c82ef151dc274df4869aef5
248
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
249
SDWebImage: a990c053fff71e388a10f3357edb0be17929c9c5
250
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
lib/ionia/ionia_api.dart
+3
@@ -11,6 +11,7 @@ import 'package:cake_wallet/ionia/ionia_gift_card.dart';
11
class IoniaApi {
12
static const baseUri = 'api.ionia.io';
13
static const pathPrefix = 'cake';
14
+ static const requestedUUIDHeader = 'requestedUUID';
15
static final createUserUri = Uri.https(baseUri, '/$pathPrefix/CreateUser');
16
static final verifyEmailUri = Uri.https(baseUri, '/$pathPrefix/VerifyEmail');
17
static final signInUri = Uri.https(baseUri, '/$pathPrefix/SignIn');
@@ -254,6 +255,7 @@ class IoniaApi {
255
// Purchase Gift Card
256
257
Future<IoniaOrder> purchaseGiftCard({
258
+ @required String requestedUUID,
259
@required String merchId,
260
@required double amount,
261
@required String currency,
@@ -264,6 +266,7 @@ class IoniaApi {
266
'clientId': clientId,
267
'username': username,
268
'password': password,
269
+ requestedUUIDHeader: requestedUUID,
270
'Content-Type': 'application/json'};
271
final body = <String, dynamic>{
272
'Amount': amount,
lib/ionia/ionia_service.dart
+3
@@ -7,6 +7,7 @@ import 'package:cake_wallet/.secrets.g.dart' as secrets;
7
import 'package:cake_wallet/ionia/ionia_api.dart';
8
import 'package:cake_wallet/ionia/ionia_gift_card.dart';
9
import 'package:cake_wallet/ionia/ionia_category.dart';
10
+import 'package:platform_device_id/platform_device_id.dart';
11
12
class IoniaService {
13
IoniaService(this.secureStorage, this.ioniaApi);
@@ -114,7 +115,9 @@ class IoniaService {
115
@required String currency}) async {
116
final username = await secureStorage.read(key: ioniaUsernameStorageKey);
117
final password = await secureStorage.read(key: ioniaPasswordStorageKey);
118
+ final deviceId = await PlatformDeviceId.getDeviceId;
119
return ioniaApi.purchaseGiftCard(
120
+ requestedUUID: deviceId,
121
merchId: merchId,
122
amount: amount,
123
currency: currency,
lib/src/screens/ionia/cards/ionia_account_page.dart
+1
-1
@@ -124,7 +124,7 @@ class IoniaAccountPage extends BasePage {
124
//),
125
SizedBox(height: 40),
126
Observer(
127
- builder: (_) => IoniaTile(title: S.of(context).email_address, subTitle: ioniaAccountViewModel.email),
127
+ builder: (_) => IoniaTile(title: S.of(context).email_address, subTitle: ioniaAccountViewModel.email ?? ''),
128
),
129
Divider()
130
],
pubspec_base.yaml
+1
@@ -55,6 +55,7 @@ dependencies:
55
unorm_dart: ^0.2.0
56
permission_handler: ^5.0.1+1
57
device_display_brightness: ^0.0.6
58
+ platform_device_id: ^0.2.1
59
60
dev_dependencies:
61
flutter_test: