-
Notifications
You must be signed in to change notification settings - Fork 3
/
model.dart
71 lines (61 loc) · 1.92 KB
/
model.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
///
/// Copyright (C) 2020 Andrious Solutions
///
/// This program is free software; you can redistribute it and/or
/// modify it under the terms of the GNU General Public License
/// as published by the Free Software Foundation; either version 3
/// of the License, or any later version.
///
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
/// Created 17 Apr 2019
///
import 'package:mvc_template/src/model.dart';
/// Implementing composition merely to demonstrate a working app.
/// Conceivably you can switch out 'Contacts' with something else.
/// Or you simply reference and use this class directly.
class Model {
factory Model() => _this ??= Model._();
static Model _this;
Model._() {
_db = Contacts();
}
Contacts _db;
Future<bool> initAsync() async {
bool init = await _db.init();
return init;
}
void dispose() {
/// Note the name is different
_db.disposed();
}
Future<List<Contact>> getContacts() async {
var contacts = await _db.getContacts();
return contacts;
}
Future<List<Contact>> listContacts(List<Map<String, dynamic>> query) async {
var list = await _db.listContacts(query);
return list;
}
Future<bool> addContact(Map<String, dynamic> contact) async {
var add = await _db.addContact(contact);
return add;
}
Future<bool> deleteContact(Map<String, dynamic> contact) async {
var delete = await _db.deleteContact(contact);
return delete;
}
Future<int> undeleteContact(Map contact) async {
var undo = await _db.undeleteContact(contact);
return undo;
}
}