Skip to content

Instantly share code, notes, and snippets.

View soonsam123's full-sized avatar

Soon Sam Ribeiro Santos soonsam123

View GitHub Profile
[
{
"login": "mojombo",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://avatars0.githubusercontent.com/u/1?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mojombo",
"html_url": "https://github.com/mojombo",
"followers_url": "https://api.github.com/users/mojombo/followers",
import 'package:equatable/equatable.dart';
class User extends Equatable {
final String login;
final int id;
User({this.login, this.id});
}
import 'package:bloc_pattern/bloc/users_event.dart';
import 'package:bloc_pattern/bloc/users_state.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:bloc/bloc.dart';
import 'package:bloc_pattern/repositories/repositories.dart';
import 'package:bloc_pattern/models/models.dart';
import 'package:bloc_pattern/bloc/users_bloc.dart';
export 'user.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:bloc_pattern/models/user.dart';
class UsersApiClient {
static const baseUrl = 'http://api.github.com';
final http.Client httpClient;
UsersApiClient({this.httpClient})
: assert(httpClient != null);
import 'dart:async';
import 'package:meta/meta.dart';
import 'package:bloc_pattern/repositories/repositories.dart';
import 'package:bloc_pattern/models/models.dart';
class UsersRepository {
final UsersApiClient usersApiClient;
UsersRepository({@required this.usersApiClient})
: assert(usersApiClient != null);
export 'users_api_client.dart';
export 'users_repository.dart';
import 'package:meta/meta.dart';
import 'package:equatable/equatable.dart';
import 'package:bloc_pattern/models/models.dart';
abstract class UsersState extends Equatable {
UsersState([List props = const []]) : super(props);
}
class InitialUsersState extends UsersState {}
import 'package:equatable/equatable.dart';
abstract class UsersEvent extends Equatable {
UsersEvent([List props = const []]) : super(props);
}
class FetchUsers extends UsersEvent {}
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';
import 'package:bloc_pattern/bloc/users.dart';
import 'package:bloc_pattern/repositories/repositories.dart';
import 'package:bloc_pattern/models/models.dart';
class UsersBloc extends Bloc<UsersEvent, UsersState> {
final UsersRepository usersRepository;
UsersBloc({@required this.usersRepository}) : assert(usersRepository != null);