|
| 1 | +import 'dart:io'; |
| 2 | +import 'package:flutter_data/flutter_data.dart'; |
| 3 | + |
| 4 | +import 'main.data.dart'; |
| 5 | +import 'model/comment.dart'; |
| 6 | +import 'model/post.dart'; |
| 7 | +import 'model/user.dart'; |
| 8 | + |
| 9 | +// NOTE: FOR A COMPLETE FLUTTER EXAMPLE PLEASE SEE |
| 10 | +// https://github.com/flutterdata/flutter_data_todos |
| 11 | + |
| 12 | +void main() async { |
| 13 | + Directory _dir; |
| 14 | + |
| 15 | + try { |
| 16 | + _dir = await Directory('../tmp').create(); |
| 17 | + final manager = await FlutterData.init(_dir); |
| 18 | + final locator = manager.locator; |
| 19 | + |
| 20 | + Repository<User> usersRepo = locator<Repository<User>>(); |
| 21 | + Repository<Post> postsRepo = locator<Repository<Post>>(); |
| 22 | + User user; |
| 23 | + |
| 24 | + try { |
| 25 | + user = await usersRepo.findOne('1'); |
| 26 | + } on DataException catch (e) { |
| 27 | + if (e.status == HttpStatus.notFound) { |
| 28 | + print('not found'); |
| 29 | + } |
| 30 | + } |
| 31 | + |
| 32 | + var user2 = User(id : 102, name : 'new name', email : '[email protected]'); |
| 33 | + await user2.save(); |
| 34 | + |
| 35 | + User(id : 102, name : 'new name', email : '[email protected]'); |
| 36 | + |
| 37 | + var p3 = Post( |
| 38 | + id: 102, |
| 39 | + title: 'new name', |
| 40 | + |
| 41 | + user: user2.asBelongsTo, |
| 42 | + comments: [Comment(id: 1, body: 'bla')].asHasMany); |
| 43 | + |
| 44 | + assert(p3.body == '[email protected]'); |
| 45 | + assert(p3.user.value.email == user2.email); |
| 46 | + |
| 47 | + var post = await postsRepo.findOne('1', params: {'_embed': 'comments'}); |
| 48 | + |
| 49 | + print(post.comments.map((c) => c.body)); |
| 50 | + |
| 51 | + assert(user.name == post.user.value.name); |
| 52 | + |
| 53 | + var stream = usersRepo.watchAll().stream; |
| 54 | + |
| 55 | + await for (var state in stream) { |
| 56 | + print(state.length); |
| 57 | + } |
| 58 | + } finally { |
| 59 | + await _dir.delete(recursive: true); |
| 60 | + } |
| 61 | +} |
0 commit comments