rx_cache_manager 0.0.5 copy "rx_cache_manager: ^0.0.5" to clipboard
rx_cache_manager: ^0.0.5 copied to clipboard

outdated

A new cache_manager package for cache url data and contents.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:rx_cache_manager/rx_cache_manager.dart';
import 'package:rx_cache_manager/strategy/cache_or_async_strategy.dart';

class PayoutSettings {
  PayoutSettings({
    this.id,
    this.bankCode,
    this.bankName,
    this.bankAccountNumber,
    this.bankAccountName,
    this.bankEnquirySessionID,
    this.interval,
    this.canEdit = true,
    this.verified = false,
    this.prevPayout,
    this.nextPayout,
    this.createdAt,
    this.updatedAt,
  });
  String? id;
  String? bankCode;
  String? bankName;
  String? bankAccountNumber;
  String? bankAccountName;
  String? bankEnquirySessionID;
  String? interval;
  bool verified;
  bool canEdit;
  DateTime? prevPayout;
  DateTime? nextPayout;
  DateTime? createdAt;
  DateTime? updatedAt;
  factory PayoutSettings.fromMap(Map json) {
    return PayoutSettings()
      ..id = json['id']
      ..bankCode = json['bankCode']
      ..bankName = json['bankName']
      ..bankAccountNumber = json['bankAccountNumber']
      ..bankAccountName = json['bankAccountName']
      ..bankEnquirySessionID = json['bankEnquirySessionID']
      ..interval = json['interval']
      ..canEdit = json['canEdit'] == true
      ..verified = json['verified'] == true
      ..prevPayout =
          json['prevPayout'] != null ? DateTime.parse(json['prevPayout']) : null
      ..nextPayout =
          json['nextPayout'] != null ? DateTime.parse(json['nextPayout']) : null
      ..createdAt =
          json['createdAt'] != null ? DateTime.parse(json['createdAt']) : null
      ..updatedAt =
          json['updatedAt'] != null ? DateTime.parse(json['updatedAt']) : null;
  }
  Map toMap() {
    return {
      'id': id,
      'bankCode': bankCode,
      'bankName': bankName,
      'bankAccountNumber': bankAccountNumber,
      'bankAccountName': bankAccountName,
      'bankEnquirySessionID': bankEnquirySessionID,
      'interval': interval,
      'canEdit': canEdit,
      'prevPayout': prevPayout?.toIso8601String(),
      'nextPayout': nextPayout?.toIso8601String(),
      'createdAt': createdAt?.toIso8601String(),
      'updatedAt': updatedAt?.toIso8601String(),
    };
  }
}

void main() async {
  final cache = RxCacheManager(CacheStorage("default"));
  await Future.delayed(const Duration(seconds: 1));
  cache.clear();
  final request = await cache
      .from<PayoutSettings, Map>("payout-settings")
      .withAsync(() => Future.delayed(
          const Duration(seconds: 2),
          () => {
                "id": "1234",
                "interval": "monthly",
              }))
      .withSerializer((json) => PayoutSettings.fromMap(json))
      .withStrategy(CacheOrAsyncStrategy())
      .withTtl(30000000)
      .execute();

  print(request?.toMap());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Placeholder(),
      ),
    );
  }
}
0
likes
0
points
3
downloads

Publisher

unverified uploader

Weekly Downloads

A new cache_manager package for cache url data and contents.

License

unknown (license)

Dependencies

flutter, hive_flutter

More

Packages that depend on rx_cache_manager