diameter/lib/models/bolus_profile.dart

102 lines
3.1 KiB
Dart
Raw Normal View History

2021-10-22 23:08:09 +00:00
import 'package:parse_server_sdk_flutter/parse_server_sdk.dart';
import 'package:diameter/models/bolus.dart';
class BolusProfile {
late String? objectId;
late String name;
late bool active = false;
late Future<List<Bolus>> bolusRates;
late String? notes;
BolusProfile(ParseObject? object) {
if (object != null) {
objectId = object.get<String>('objectId');
name = object.get<String>('name')!;
active = object.get<bool>('active')!;
bolusRates = Bolus.fetchAllForBolusProfile(this);
notes = object.get<String>('notes');
}
}
static Future<List<BolusProfile>> fetchAll() async {
QueryBuilder<ParseObject> query =
QueryBuilder<ParseObject>(ParseObject('BolusProfile'));
final ParseResponse apiResponse = await query.query();
if (apiResponse.success && apiResponse.results != null) {
return apiResponse.results!
.map((e) => BolusProfile(e as ParseObject))
.toList();
} else {
return [];
}
}
static Future<BolusProfile?> get(String objectId) async {
QueryBuilder<ParseObject> query =
QueryBuilder<ParseObject>(ParseObject('BolusProfile'))
..whereEqualTo('objectId', objectId);
final ParseResponse apiResponse = await query.query();
if (apiResponse.success && apiResponse.results != null) {
return BolusProfile(apiResponse.result.first);
}
}
static Future<int> getActiveCount() async {
QueryBuilder<ParseObject> query =
QueryBuilder<ParseObject>(ParseObject('BolusProfile'))
..whereEqualTo('active', true);
final ParseResponse apiResponse = await query.query();
if (apiResponse.success && apiResponse.results != null) {
return apiResponse.results!.length;
} else {
return 0;
}
}
static Future<void> setAllInactive({String? exception}) async {
2021-10-22 23:08:09 +00:00
QueryBuilder<ParseObject> query =
QueryBuilder<ParseObject>(ParseObject('BolusProfile'));
final ParseResponse apiResponse = await query.query();
if (apiResponse.success && apiResponse.results != null) {
for (var bolusProfile in apiResponse.results as List<ParseObject>) {
bolusProfile.set(
'active', bolusProfile.objectId == exception ? true : false);
2021-10-22 23:08:09 +00:00
await bolusProfile.save();
}
}
}
static Future<void> save(
{required String name, bool active = false, String? notes}) async {
final bolusProfile = ParseObject('BolusProfile')
..set('name', name)
..set('active', active)
..set('notes', notes);
await bolusProfile.save();
}
static Future<void> update(String objectId,
{String? name, bool? active, String? notes}) async {
var bolusProfile = ParseObject('BolusProfile')..objectId = objectId;
if (name != null) {
bolusProfile.set('name', name);
}
if (active != null) {
bolusProfile.set('active', active);
}
if (notes != null) {
bolusProfile.set('notes', notes);
}
await bolusProfile.save();
}
Future<void> delete() async {
var bolusProfile = ParseObject('BolusProfile')..objectId = objectId;
await bolusProfile.delete();
}
}