getShopifyMultipassToken static method
Implementation
static Future<Map<String, dynamic>> getShopifyMultipassToken({
required String phone,
required String email,
String? id,
String? state,
}) async {
try {
final gokwik = DioClient().getClient();
final results = await Future.wait([
cacheInstance.getValue(KeyConfig.gkAccessTokenKey),
cacheInstance.getValue(KeyConfig.checkoutAccessTokenKey),
cacheInstance.getValue(KeyConfig.gkNotificationEnabled),
]);
final accessToken = results[0];
final checkoutAccessToken = results[1];
final notifications = results[2];
if (accessToken != null) {
gokwik.options.headers[KeyConfig.gkAccessTokenKey] = accessToken;
}
if (checkoutAccessToken != null) {
gokwik.options.headers[KeyConfig.checkoutAccessTokenKey] =
checkoutAccessToken;
}
final response = await gokwik.post(
APIConfig.shopifyMultipass,
data: {
'id': id ?? '',
'email': email,
'redirectUrl': '/',
'isMarketingEventSubscribed': notifications == 'true',
'state': state ?? '',
},
);
final userData = {
...response.data?['data'],
'phone': phone,
};
await cacheInstance.setValue(
KeyConfig.gkVerifiedUserKey,
jsonEncode(userData),
);
return response.data;
} catch (error) {
throw ApiService.handleApiError(error);
}
}