upsert method
Implementation
Future<AppConfigData?> upsert(AppConfigCreateInput data) async {
AppConfigData? appConfigRecord = await (select(appConfig)
..where((item) => item.id.equals(1))
..limit(1))
.watchSingleOrNull()
.first;
if (appConfigRecord == null) {
appConfigRecord =
await into(appConfig).insertReturningOrNull(AppConfigCompanion(
apiEndpoint: Value(data.apiEndpoint),
apiKey: Value(data.apiKey),
apiSecret: Value(data.apiSecret),
appBundle: Value(data.appBundle),
lenderId: Value(data.partnerId),
));
} else {
appConfigRecord = (await (update(appConfig)
..where((item) => item.id.equals(appConfigRecord!.id)))
.writeReturning(AppConfigCompanion(
apiEndpoint: Value(data.apiEndpoint),
apiKey: Value(data.apiKey),
apiSecret: Value(data.apiSecret),
appBundle: Value(data.appBundle),
lenderId: Value(data.partnerId),
shouldSyncData: Value(appConfigRecord.shouldSyncData),
lastSync: Value(appConfigRecord.lastSync),
updatedAt: Value(DateTime.now()))))
.firstOrNull;
}
return appConfigRecord;
}