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: