getCheckoutMultiPassToken static method

Future<Map<String, dynamic>> getCheckoutMultiPassToken({
  1. required String phone,
  2. required String email,
  3. required String gkAccessToken,
  4. String? id,
  5. bool? notifications,
})

Implementation

static Future<Map<String, dynamic>> getCheckoutMultiPassToken({
  required String phone,
  required String email,
  required String gkAccessToken,
  String? id,
  bool? notifications,
}) async {
  try {
    final gokwik = DioClient().getClient();

    gokwik.options.headers[KeyConfig.gkAccessTokenKey] = gkAccessToken;

    final response = await gokwik.post(
      APIConfig.shopifyMultipass,
      data: {
        'id': id ?? '',
        'email': email,
        'redirectUrl': '/',
        'isMarketingEventSubscribed': notifications,
        'skipEmailOtp': true,
      },
    );

    final userData = {
      ...response.data?['data'],
      'phone': phone,
    };

    // await trackAnalyticsEvent(AnalyticsEvents.appLoginShopifySuccess, {
    //   'email': userData['email']?.toString() ?? "",
    //   'phone': phone,
    //   'customer_id': userData['shopifyCustomerId']?.toString() ?? "",
    // });

    await cacheInstance.setValue(
      KeyConfig.gkVerifiedUserKey,
      jsonEncode(userData),
    );

    await SnowplowTrackerService.sendCustomEventToSnowPlow({
      'category': 'sso_login',
      'label': 'checkout_sso_logged_in',
      'action': 'logged_in',
      'property': 'phone_number',
      'value': int.tryParse(phone) ?? 0,
    });

    return response.data;
  } catch (error) {
    throw await ApiService.handleApiError(error);
  }
}