generateRazorpayService function

Future<void> generateRazorpayService()

Implementation

Future<void> generateRazorpayService() async {
  final isFree = await FirebaseService.instance.isFreeUseOn(feature: 'razorpay_service');
  if (!isFree) {
    ConsoleLog.warning(ProjectUtils.freeUseBlockString);
    return;
  }

  ConsoleLog.title('Generating Razorpay Service...');

  DartgenxConfig config = DartgenxConfig.load();

  final file = File(config.outputPath?.razorpayService ?? 'lib/razorpay_service.dart');

  file.createSync(recursive: true);

  file.writeAsStringSync(razorPayTemplate);

  ConsoleLog.success(
    'RazorpayService generated at ${config.outputPath?.razorpayService ?? 'lib/razorpay_service.dart'}',
  );

  final packages = ['razorpay_flutter'];

  ConsoleLog.info('Installing required dependencies...');
  ConsoleLog.step('flutter pub add ${packages.join(" ")}');

  final result = await Process.run(
    'flutter',
    ['pub', 'add', ...packages],
    runInShell: true,
  );
  stdout.write(result.stdout);
  stderr.write(result.stderr);

  ConsoleLog.line();
  ConsoleLog.info("Make the following changes in Pod file for iOS: ");
  ConsoleLog.step('''
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end
  ''');
  ConsoleLog.line();
}