Skip to content

Instantly share code, notes, and snippets.

@arnold-parge
Created June 14, 2020 15:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arnold-parge/d9ff3028f5cd340739e61d9ea3151740 to your computer and use it in GitHub Desktop.
Save arnold-parge/d9ff3028f5cd340739e61d9ea3151740 to your computer and use it in GitHub Desktop.
User controller
class UserModelCtrl {
static Future initialDownload() async {
var response = await AppApi.get<Map<String, dynamic>>(AppUrls.getUsers);
if (response.statusCode == 200) {
List data = response.data['results'];
var saveStartTime = DateTime.now().millisecondsSinceEpoch;
for (var rawUser in data) {
var user = UserModel.fromMap(rawUser);
await AppHiveDb.instance.userBox.put(user.login.uuid, user);
}
var saveEndTime = DateTime.now().millisecondsSinceEpoch;
appWarning(
'Time taken to save 1000 users to db: ${saveEndTime - saveStartTime}ms');
}
}
static Future<List<UserModel>> getAll() async {
var fetchStartTime = DateTime.now().millisecondsSinceEpoch;
var users = AppHiveDb.instance.userBox.values.toList();
var fetchEndTime = DateTime.now().millisecondsSinceEpoch;
appWarning(
'Time taken to fetch 1000 users from db: ${fetchEndTime - fetchStartTime}ms');
return users;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment