riverpod_repo 4.6.0 copy "riverpod_repo: ^4.6.0" to clipboard
riverpod_repo: ^4.6.0 copied to clipboard

A Lib to build Riverpod providers based on the reposirory interfaces.

example/example.dart

import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:riverpod_repo/annotations.dart';

import 'country.dart';
import 'student.dart';

part 'example.g.dart';

@Riverpod(keepAlive: true)
RepoData repoData(Ref ref) => RepoDataImpl();

@riverpodRepo
/// Repository class to get Data
abstract class RepoData {
  /// Get the books
  Future<List<Student>> getBooks({String search = '', String categoryId = ''});

  /// Get the top  genres
  Future<List<int>> getTopGenres();

  /// Get the top books by genre
  Future<List<bool>> getTopBooksByGenre(String genreId, {String search = ''});

  Future<List<Hello>> getCategories({String search = ''});
}

/// Repository Implementation class to get Data
class RepoDataImpl implements RepoData {
  /// Implimentation of the getBooks method
  @override
  Future<List<Student>> getBooks({String search = '', String categoryId = ''}) {
    throw UnimplementedError();
  }

  /// Implimentation of the getCategories method
  @override
  Future<List<Hello>> getCategories({String search = ''}) {
    throw UnimplementedError();
  }

  /// Implimentation of the getTopBooksByGenre method
  @override
  Future<List<bool>> getTopBooksByGenre(String genreId, {String search = ''}) {
    throw UnimplementedError();
  }

  /// Implimentation of the getTopGenres method
  @override
  Future<List<int>> getTopGenres() {
    Country country;
    throw UnimplementedError();
  }
}