init method

Future<void> init({
  1. required String accessToken,
  2. required Future<String?> onTokenExpired(),
  3. PlumcheckEnvironment env = PlumcheckEnvironment.sandbox,
})

Implementation

Future<void> init({
  required String accessToken,
  required Future<String?> Function() onTokenExpired,
  PlumcheckEnvironment env = PlumcheckEnvironment.sandbox,
}) async {
  ConfigManager.initialize(env);
  _onTokenExpired = onTokenExpired;
  final storedEnv = await storage.getEnv();
  if (storedEnv != null && storedEnv != env) {
    await storage.clearAll(); // clear all if env changed
  }
  await storage.saveToken(accessToken);
  await storage.saveEnv(env);
  final userInfo = await api.getPartnerUserProfile();
  if (userInfo == null) {
    throw SDKException.withMessage('SDK initialization failed, please check your access token.');
  } else {
    this.userInfo = userInfo;
  }
  api.onTokenExpired = () async {
    final newToken = await onTokenExpired();
    if (newToken != null) {
      await storage.saveToken(newToken);
    }
  };
}