data_repositories 0.0.3+3 copy "data_repositories: ^0.0.3+3" to clipboard
data_repositories: ^0.0.3+3 copied to clipboard

Get help with development and app management tools, view documentation, connect.

DataRepositories #

data_repositories data_repository_generator

The data_repositories package provides a simple and easy way to manage local and remote data. It can be used to read and write data to local storage, connect to remote data sources, automate data loading and processing, and handle errors and exceptions.

Usage #

dependencies:
  data_repositories: ^0.0.3+1

dev_dependencies:
  build_runner:
  data_repository_generator: 0.0.3+2

Define and Generate #

import 'dart:async';

import 'package:data_repositories/data_repositories.dart';
import 'package:example/src/live/data/home/entity/quick_sale_entity.dart';
import 'package:example/src/live/erp/data/entity/home_entity/home_entity.dart';
import 'package:example/src/live/erp/data/repository/dao/home_dao.dart';
import 'package:example/src/test/data_repository/data/repository/rapid/quote/entity/cc_local_entity.dart';
import 'package:example/src/test/utils/cc_response/cc_response.dart';
import 'package:sqflite/sqflite.dart' as sqflite;

part 'hom_repository.g.dart';

@DataRepository(
    baseUrl: "https://ecservice.concung.com/home/",
    version: 2,
    entities: [
      QuickSaleEntity,
      ImplicitEntity,
      HomeInfoEntity,
    ])
abstract class HomeRepository extends DataSource {
  HomeDao get homeDao;

  //[Remote]====================================================================
  @Remote(
    path: "getQuickSale?{path}",
    method: HttpMethod.GET,
  )
  Future<CcResponse<QuickSaleEntity>> getQuickSaleImplicitRemote(
      @Path() String path);

  @Remote(
    path: "getQuickSale?{path}",
    method: HttpMethod.GET,
  )
  Future<CcResponse<QuickSaleEntity>> getQuickSaleExplicitRemote(
      @Path() String path);

  //[Remote Local ]=============================================================
  @Remote(
    path: "getQuickSale?{path}",
    method: HttpMethod.GET,
  )
  @Local(
    dataType: DataType.IMPLICIT,
    version: 1,
    tableName: "implicitQuickSaleEntity",
  )
  Future<CcResponse<QuickSaleEntity>> getQuickSaleImplicit(@Path() String path);

  @Remote(
    path: "getQuickSale?{path}",
    method: HttpMethod.GET,
  )
  @Local(
    dataType: DataType.EXPLICIT,
    version: 1,
  )
  Future<CcResponse<QuickSaleEntity>> getQuickSaleExplicit(@Path() String path);

  @Remote(
    path: "getHomeInfo?{path}",
    method: HttpMethod.GET,
  )
  @Local(
    dataType: DataType.EXPLICIT,
    version: 1,
  )
  Future<CcResponse<HomeInfoEntity>> getHomeInfoExplicit(@Path() String path);

  @Remote(
    path: "getQuickSale?{path}",
    method: HttpMethod.GET,
  )
  @Local(
    dataType: DataType.IMPLICIT,
    tableName: "implicitQuickSaleEntity2",
    version: 1,
  )
  Future<CcResponse<QuickSaleEntity>> getQuickSaleImplicit2(
      @Path() String path);

  @Remote(
    path: "getHomeInfo?{path}",
    method: HttpMethod.GET,
  )
  @Local(
    dataType: DataType.IMPLICIT,
    tableName: "implicitHomeInfoEntity2",
    version: 1,
  )
  Future<CcResponse<HomeInfoEntity>> getHomeInfoImplicit2(@Path() String path);

  //[Local Implicit]============================================================
  @Local(
    version: 1,
    query: "SELECT * FROM QuickSaleEntity",
    execute: Execute.QUERY,
  )
  Future<List<QuickSaleEntity>> getAll();

  @Local(
    version: 1,
    query: "SELECT * FROM QuickSaleEntity WHERE realPrice <= 2000000",
    execute: Execute.QUERY,
  )
  Future<List<QuickSaleEntity>> filterRealPrice();

  @Local(
    version: 1,
    query: "SELECT * FROM QuickSaleEntity WHERE idCategory = :id",
    execute: Execute.QUERY,
  )
  Future<QuickSaleEntity?> findId(int id);

  //[Local Implicit End]========================================================

  //[Local Implicit End]========================================================
  @Local(
    version: 1,
    query: "SELECT * FROM implicitQuickSaleEntity",
    execute: Execute.QUERY,
  )
  Future<List<ImplicitEntity>> getImplicitAll();

  @Local(
    version: 1,
    query: "SELECT * FROM implicitQuickSaleEntity WHERE id = :id",
    execute: Execute.QUERY,
  )
  Future<List<ImplicitEntity>> findImplicitId(int id);

//[Local Implicit End]========================================================

}

then run the generator

# dart
dart pub run build_runner build

# flutter	
flutter pub run build_runner build

Use it #

  test("getQuickSaleExplicit", () async {
    final dio = Dio(); // Provide a dio instance
    dio.options.headers['Demo-Header'] =
        'demo header'; // config your dio headers globally

    homeRepository = await $FloorHomeRepository
        .databaseBuilder("home_controller_2.db")
        .build(dio); // Creates the database and initializes it.

    var path =
        "checksum=18E9E28D1FF1DCD44D7DA7033214FFD8&customer_phone_login=0&device_os=2&id_category=0&id_customer=0&id_customer_login=0&id_district_login=&id_language=0&id_manufacturer=0&id_promotion_list=&id_session=2602223&id_utility=3&lasttime=0&n=30&p=1&version_app=4.0.21"; // Path parameters
    var response = await homeRepository.getQuickSaleImplicit(path); // Result
    
    response.print(); // Print result
  });
1
likes
90
pub points
0%
popularity

Publisher

unverified uploader

Get help with development and app management tools, view documentation, connect.

Homepage

Documentation

API reference

License

MIT (LICENSE)

Dependencies

build, developer_support, dio, flutter, intl, json_annotation, meta, path, source_gen, sqflite, sqflite_common_ffi, stack_trace

More

Packages that depend on data_repositories