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(cdnConfigInstance.getKeys(StorageKeyKeys.gkAccessTokenKey)!),
cacheInstance.getValue(cdnConfigInstance.getKeys(StorageKeyKeys.checkoutAccessTokenKey)!),
cacheInstance.getValue(cdnConfigInstance.getKeys(StorageKeyKeys.gkNotificationEnabled)!),
]);
final accessToken = results[0];
final checkoutAccessToken = results[1];
final notifications = results[2];
if (accessToken != null) {
gokwik.options.headers[cdnConfigInstance.getHeader(APIHeaderKeys.gkAccessToken)!] = accessToken;
}
if (checkoutAccessToken != null) {
gokwik.options.headers[cdnConfigInstance.getHeader(APIHeaderKeys.checkoutAccessToken)!] =
checkoutAccessToken;
}
final response = await gokwik.post(
cdnConfigInstance.getEndpoint(APIEndpointKeys.shopifyMultipass)!,
data: {
'id': id ?? '',
'email': email,
'redirectUrl': '/',
'isMarketingEventSubscribed': notifications == 'true',
'state': state ?? '',
},
);
final userData = {
...response.data?['data'],
'phone': phone,
};
await cacheInstance.setValue(
cdnConfigInstance.getKeys(StorageKeyKeys.gkVerifiedUserKey)!,
jsonEncode(userData),
);
return response.data;
} catch (error) {
throw ApiService.handleApiError(error);
}
}