remove custom strava authentication code

upgrade-2021-project
Stefan Haslinger 2022-03-02 15:05:30 +01:00
parent 9a3e01d127
commit 51aa5ae356
6 changed files with 103 additions and 350 deletions

View File

@ -2,8 +2,9 @@
// flutter pub run build_runner build --delete-conflicting-outputs
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:sqfentity/sqfentity.dart';
import 'package:sqfentity_gen/sqfentity_gen.dart';
@ -25,11 +26,6 @@ const SqfEntityTable tableAthlete = SqfEntityTable(
SqfEntityField('geoState', DbType.text),
SqfEntityField('downloadInterval', DbType.integer),
SqfEntityField('recordAggregationCount', DbType.integer),
SqfEntityField('stravaAccessToken', DbType.text),
SqfEntityField('stravaTokenType', DbType.text),
SqfEntityField('stravaRefreshToken', DbType.text),
SqfEntityField('stravaExpiresAt', DbType.integer),
SqfEntityField('stravaExpiresIn', DbType.integer),
],
);
@ -248,80 +244,79 @@ const SqfEntityTable tableLap = SqfEntityTable(
);
const SqfEntityTable tableInterval = SqfEntityTable(
tableName: 'intervals',
primaryKeyName: 'id',
primaryKeyType: PrimaryKeyType.integer_auto_incremental,
useSoftDeleting: false,
modelName: 'DbInterval',
fields: <SqfEntityField>[
SqfEntityField('timeStamp', DbType.datetime),
SqfEntityField('duration', DbType.integer),
SqfEntityField('avgPower', DbType.real),
SqfEntityField('minPower', DbType.integer),
SqfEntityField('maxPower', DbType.integer),
SqfEntityField('sdevPower', DbType.real),
SqfEntityField('avgSpeed', DbType.real),
SqfEntityField('avgSpeedByMeasurements', DbType.real),
SqfEntityField('avgSpeedBySpeed', DbType.real),
SqfEntityField('avgSpeedByDistance', DbType.real),
SqfEntityField('minSpeed', DbType.real),
SqfEntityField('maxSpeed', DbType.real),
SqfEntityField('sdevSpeed', DbType.real),
SqfEntityField('sdevPace', DbType.real),
SqfEntityField('distance', DbType.integer),
SqfEntityField('avgHeartRate', DbType.integer),
SqfEntityField('minHeartRate', DbType.integer),
SqfEntityField('maxHeartRate', DbType.integer),
SqfEntityField('sdevHeartRate', DbType.real),
SqfEntityField('avgCadence', DbType.real),
SqfEntityField('minCadence', DbType.real),
SqfEntityField('maxCadence', DbType.real),
SqfEntityField('sdevCadence', DbType.real),
SqfEntityField('avgStrydCadence', DbType.real),
SqfEntityField('minStrydCadence', DbType.real),
SqfEntityField('maxStrydCadence', DbType.real),
SqfEntityField('sdevStrydCadence', DbType.real),
SqfEntityField('avgGroundTime', DbType.real),
SqfEntityField('minGroundTime', DbType.real),
SqfEntityField('maxGroundTime', DbType.real),
SqfEntityField('sdevGroundTime', DbType.real),
SqfEntityField('avgVerticalOscillation', DbType.real),
SqfEntityField('minVerticalOscillation', DbType.real),
SqfEntityField('maxVerticalOscillation', DbType.real),
SqfEntityField('sdevVerticalOscillation', DbType.real),
SqfEntityField('avgFormPower', DbType.real),
SqfEntityField('maxFormPower', DbType.integer),
SqfEntityField('minFormPower', DbType.integer),
SqfEntityField('sdevFormPower', DbType.real),
SqfEntityField('avgLegSpringStiffness', DbType.real),
SqfEntityField('maxLegSpringStiffness', DbType.real),
SqfEntityField('minLegSpringStiffness', DbType.real),
SqfEntityField('sdevLegSpringStiffness', DbType.real),
SqfEntityField('totalAscent', DbType.integer),
SqfEntityField('totalDescent', DbType.integer),
SqfEntityField('cp', DbType.real),
SqfEntityField('ftp', DbType.real),
SqfEntityField('movingTime', DbType.integer),
SqfEntityFieldRelationship(
fieldName: 'firstRecordId',
parentTable: tableEvent,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
SqfEntityFieldRelationship(
fieldName: 'lastRecordId',
parentTable: tableEvent,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableAthlete,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableActivity,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
],
tableName: 'intervals',
primaryKeyName: 'id',
primaryKeyType: PrimaryKeyType.integer_auto_incremental,
useSoftDeleting: false,
modelName: 'DbInterval',
fields: <SqfEntityField>[
SqfEntityField('timeStamp', DbType.datetime),
SqfEntityField('duration', DbType.integer),
SqfEntityField('avgPower', DbType.real),
SqfEntityField('minPower', DbType.integer),
SqfEntityField('maxPower', DbType.integer),
SqfEntityField('sdevPower', DbType.real),
SqfEntityField('avgSpeed', DbType.real),
SqfEntityField('avgSpeedByMeasurements', DbType.real),
SqfEntityField('avgSpeedBySpeed', DbType.real),
SqfEntityField('avgSpeedByDistance', DbType.real),
SqfEntityField('minSpeed', DbType.real),
SqfEntityField('maxSpeed', DbType.real),
SqfEntityField('sdevSpeed', DbType.real),
SqfEntityField('sdevPace', DbType.real),
SqfEntityField('distance', DbType.integer),
SqfEntityField('avgHeartRate', DbType.integer),
SqfEntityField('minHeartRate', DbType.integer),
SqfEntityField('maxHeartRate', DbType.integer),
SqfEntityField('sdevHeartRate', DbType.real),
SqfEntityField('avgCadence', DbType.real),
SqfEntityField('minCadence', DbType.real),
SqfEntityField('maxCadence', DbType.real),
SqfEntityField('sdevCadence', DbType.real),
SqfEntityField('avgStrydCadence', DbType.real),
SqfEntityField('minStrydCadence', DbType.real),
SqfEntityField('maxStrydCadence', DbType.real),
SqfEntityField('sdevStrydCadence', DbType.real),
SqfEntityField('avgGroundTime', DbType.real),
SqfEntityField('minGroundTime', DbType.real),
SqfEntityField('maxGroundTime', DbType.real),
SqfEntityField('sdevGroundTime', DbType.real),
SqfEntityField('avgVerticalOscillation', DbType.real),
SqfEntityField('minVerticalOscillation', DbType.real),
SqfEntityField('maxVerticalOscillation', DbType.real),
SqfEntityField('sdevVerticalOscillation', DbType.real),
SqfEntityField('avgFormPower', DbType.real),
SqfEntityField('maxFormPower', DbType.integer),
SqfEntityField('minFormPower', DbType.integer),
SqfEntityField('sdevFormPower', DbType.real),
SqfEntityField('avgLegSpringStiffness', DbType.real),
SqfEntityField('maxLegSpringStiffness', DbType.real),
SqfEntityField('minLegSpringStiffness', DbType.real),
SqfEntityField('sdevLegSpringStiffness', DbType.real),
SqfEntityField('totalAscent', DbType.integer),
SqfEntityField('totalDescent', DbType.integer),
SqfEntityField('cp', DbType.real),
SqfEntityField('ftp', DbType.real),
SqfEntityField('movingTime', DbType.integer),
SqfEntityFieldRelationship(
fieldName: 'firstRecordId',
parentTable: tableEvent,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
SqfEntityFieldRelationship(
fieldName: 'lastRecordId',
parentTable: tableEvent,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableAthlete,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableActivity,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
],
);
const SqfEntityTable tableWeight = SqfEntityTable(
@ -458,13 +453,9 @@ const SqfEntityTable tableLapTagging = SqfEntityTable(
fields: <SqfEntityField>[
SqfEntityField('system', DbType.bool),
SqfEntityFieldRelationship(
parentTable: tableTag,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
parentTable: tableTag, deleteRule: DeleteRule.CASCADE, defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableLap,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
parentTable: tableLap, deleteRule: DeleteRule.CASCADE, defaultValue: 0),
],
);
@ -477,9 +468,7 @@ const SqfEntityTable tableActivityTagging = SqfEntityTable(
fields: <SqfEntityField>[
SqfEntityField('system', DbType.bool),
SqfEntityFieldRelationship(
parentTable: tableTag,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
parentTable: tableTag, deleteRule: DeleteRule.CASCADE, defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableActivity,
deleteRule: DeleteRule.CASCADE,
@ -496,9 +485,7 @@ const SqfEntityTable tableIntervalTagging = SqfEntityTable(
fields: <SqfEntityField>[
SqfEntityField('system', DbType.bool),
SqfEntityFieldRelationship(
parentTable: tableTag,
deleteRule: DeleteRule.CASCADE,
defaultValue: 0),
parentTable: tableTag, deleteRule: DeleteRule.CASCADE, defaultValue: 0),
SqfEntityFieldRelationship(
parentTable: tableInterval,
deleteRule: DeleteRule.CASCADE,

View File

@ -42,11 +42,6 @@ class TableDbAthlete extends SqfEntityTableBase {
SqfEntityFieldBase('geoState', DbType.text),
SqfEntityFieldBase('downloadInterval', DbType.integer),
SqfEntityFieldBase('recordAggregationCount', DbType.integer),
SqfEntityFieldBase('stravaAccessToken', DbType.text),
SqfEntityFieldBase('stravaTokenType', DbType.text),
SqfEntityFieldBase('stravaRefreshToken', DbType.text),
SqfEntityFieldBase('stravaExpiresAt', DbType.integer),
SqfEntityFieldBase('stravaExpiresIn', DbType.integer),
];
super.init();
}
@ -783,12 +778,7 @@ class DbAthlete extends TableBase {
this.stravaId,
this.geoState,
this.downloadInterval,
this.recordAggregationCount,
this.stravaAccessToken,
this.stravaTokenType,
this.stravaRefreshToken,
this.stravaExpiresAt,
this.stravaExpiresIn}) {
this.recordAggregationCount}) {
_setDefaultValues();
softDeleteActivated = false;
}
@ -801,12 +791,7 @@ class DbAthlete extends TableBase {
this.stravaId,
this.geoState,
this.downloadInterval,
this.recordAggregationCount,
this.stravaAccessToken,
this.stravaTokenType,
this.stravaRefreshToken,
this.stravaExpiresAt,
this.stravaExpiresIn) {
this.recordAggregationCount) {
_setDefaultValues();
}
DbAthlete.withId(
@ -819,12 +804,7 @@ class DbAthlete extends TableBase {
this.stravaId,
this.geoState,
this.downloadInterval,
this.recordAggregationCount,
this.stravaAccessToken,
this.stravaTokenType,
this.stravaRefreshToken,
this.stravaExpiresAt,
this.stravaExpiresIn) {
this.recordAggregationCount) {
_setDefaultValues();
}
// fromMap v2.0
@ -861,21 +841,6 @@ class DbAthlete extends TableBase {
recordAggregationCount =
int.tryParse(o['recordAggregationCount'].toString());
}
if (o['stravaAccessToken'] != null) {
stravaAccessToken = o['stravaAccessToken'].toString();
}
if (o['stravaTokenType'] != null) {
stravaTokenType = o['stravaTokenType'].toString();
}
if (o['stravaRefreshToken'] != null) {
stravaRefreshToken = o['stravaRefreshToken'].toString();
}
if (o['stravaExpiresAt'] != null) {
stravaExpiresAt = int.tryParse(o['stravaExpiresAt'].toString());
}
if (o['stravaExpiresIn'] != null) {
stravaExpiresIn = int.tryParse(o['stravaExpiresIn'].toString());
}
}
// FIELDS (DbAthlete)
int? id;
@ -888,11 +853,6 @@ class DbAthlete extends TableBase {
String? geoState;
int? downloadInterval;
int? recordAggregationCount;
String? stravaAccessToken;
String? stravaTokenType;
String? stravaRefreshToken;
int? stravaExpiresAt;
int? stravaExpiresIn;
// end FIELDS (DbAthlete)
@ -1041,21 +1001,6 @@ class DbAthlete extends TableBase {
if (recordAggregationCount != null || !forView) {
map['recordAggregationCount'] = recordAggregationCount;
}
if (stravaAccessToken != null || !forView) {
map['stravaAccessToken'] = stravaAccessToken;
}
if (stravaTokenType != null || !forView) {
map['stravaTokenType'] = stravaTokenType;
}
if (stravaRefreshToken != null || !forView) {
map['stravaRefreshToken'] = stravaRefreshToken;
}
if (stravaExpiresAt != null || !forView) {
map['stravaExpiresAt'] = stravaExpiresAt;
}
if (stravaExpiresIn != null || !forView) {
map['stravaExpiresIn'] = stravaExpiresIn;
}
return map;
}
@ -1094,21 +1039,6 @@ class DbAthlete extends TableBase {
if (recordAggregationCount != null || !forView) {
map['recordAggregationCount'] = recordAggregationCount;
}
if (stravaAccessToken != null || !forView) {
map['stravaAccessToken'] = stravaAccessToken;
}
if (stravaTokenType != null || !forView) {
map['stravaTokenType'] = stravaTokenType;
}
if (stravaRefreshToken != null || !forView) {
map['stravaRefreshToken'] = stravaRefreshToken;
}
if (stravaExpiresAt != null || !forView) {
map['stravaExpiresAt'] = stravaExpiresAt;
}
if (stravaExpiresIn != null || !forView) {
map['stravaExpiresIn'] = stravaExpiresIn;
}
// COLLECTIONS (DbAthlete)
if (!forQuery) {
@ -1158,12 +1088,7 @@ class DbAthlete extends TableBase {
stravaId,
geoState,
downloadInterval,
recordAggregationCount,
stravaAccessToken,
stravaTokenType,
stravaRefreshToken,
stravaExpiresAt,
stravaExpiresIn
recordAggregationCount
];
}
@ -1179,12 +1104,7 @@ class DbAthlete extends TableBase {
stravaId,
geoState,
downloadInterval,
recordAggregationCount,
stravaAccessToken,
stravaTokenType,
stravaRefreshToken,
stravaExpiresAt,
stravaExpiresIn
recordAggregationCount
];
}
@ -1474,7 +1394,7 @@ class DbAthlete extends TableBase {
Future<int?> upsert({bool ignoreBatch = true}) async {
try {
final result = await _mnDbAthlete.rawInsert(
'INSERT OR REPLACE INTO athletes (id, state, firstName, lastName, stravaUsername, photoPath, stravaId, geoState, downloadInterval, recordAggregationCount, stravaAccessToken, stravaTokenType, stravaRefreshToken, stravaExpiresAt, stravaExpiresIn) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
'INSERT OR REPLACE INTO athletes (id, state, firstName, lastName, stravaUsername, photoPath, stravaId, geoState, downloadInterval, recordAggregationCount) VALUES (?,?,?,?,?,?,?,?,?,?)',
[
id,
state,
@ -1485,12 +1405,7 @@ class DbAthlete extends TableBase {
stravaId,
geoState,
downloadInterval,
recordAggregationCount,
stravaAccessToken,
stravaTokenType,
stravaRefreshToken,
stravaExpiresAt,
stravaExpiresIn
recordAggregationCount
],
ignoreBatch);
if (result! > 0) {
@ -1516,7 +1431,7 @@ class DbAthlete extends TableBase {
@override
Future<BoolCommitResult> upsertAll(List<DbAthlete> dbathletes) async {
final results = await _mnDbAthlete.rawInsertAll(
'INSERT OR REPLACE INTO athletes (id, state, firstName, lastName, stravaUsername, photoPath, stravaId, geoState, downloadInterval, recordAggregationCount, stravaAccessToken, stravaTokenType, stravaRefreshToken, stravaExpiresAt, stravaExpiresIn) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
'INSERT OR REPLACE INTO athletes (id, state, firstName, lastName, stravaUsername, photoPath, stravaId, geoState, downloadInterval, recordAggregationCount) VALUES (?,?,?,?,?,?,?,?,?,?)',
dbathletes);
return results;
}
@ -1607,7 +1522,7 @@ class DbAthlete extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbAthlete] to use this feature';
throw UnimplementedError(msg);
}
@ -1882,36 +1797,6 @@ class DbAthleteFilterBuilder extends ConjunctionBase {
_recordAggregationCount, 'recordAggregationCount', DbType.integer);
}
DbAthleteField? _stravaAccessToken;
DbAthleteField get stravaAccessToken {
return _stravaAccessToken =
_setField(_stravaAccessToken, 'stravaAccessToken', DbType.text);
}
DbAthleteField? _stravaTokenType;
DbAthleteField get stravaTokenType {
return _stravaTokenType =
_setField(_stravaTokenType, 'stravaTokenType', DbType.text);
}
DbAthleteField? _stravaRefreshToken;
DbAthleteField get stravaRefreshToken {
return _stravaRefreshToken =
_setField(_stravaRefreshToken, 'stravaRefreshToken', DbType.text);
}
DbAthleteField? _stravaExpiresAt;
DbAthleteField get stravaExpiresAt {
return _stravaExpiresAt =
_setField(_stravaExpiresAt, 'stravaExpiresAt', DbType.integer);
}
DbAthleteField? _stravaExpiresIn;
DbAthleteField get stravaExpiresIn {
return _stravaExpiresIn =
_setField(_stravaExpiresIn, 'stravaExpiresIn', DbType.integer);
}
/// Deletes List<DbAthlete> bulk by query
///
/// <returns>BoolResult res.success= true (Deleted), false (Could not be deleted)
@ -2321,40 +2206,6 @@ class DbAthleteFields {
SqlSyntax.setField(
_fRecordAggregationCount, 'recordAggregationCount', DbType.integer);
}
static TableField? _fStravaAccessToken;
static TableField get stravaAccessToken {
return _fStravaAccessToken = _fStravaAccessToken ??
SqlSyntax.setField(
_fStravaAccessToken, 'stravaAccessToken', DbType.text);
}
static TableField? _fStravaTokenType;
static TableField get stravaTokenType {
return _fStravaTokenType = _fStravaTokenType ??
SqlSyntax.setField(_fStravaTokenType, 'stravaTokenType', DbType.text);
}
static TableField? _fStravaRefreshToken;
static TableField get stravaRefreshToken {
return _fStravaRefreshToken = _fStravaRefreshToken ??
SqlSyntax.setField(
_fStravaRefreshToken, 'stravaRefreshToken', DbType.text);
}
static TableField? _fStravaExpiresAt;
static TableField get stravaExpiresAt {
return _fStravaExpiresAt = _fStravaExpiresAt ??
SqlSyntax.setField(
_fStravaExpiresAt, 'stravaExpiresAt', DbType.integer);
}
static TableField? _fStravaExpiresIn;
static TableField get stravaExpiresIn {
return _fStravaExpiresIn = _fStravaExpiresIn ??
SqlSyntax.setField(
_fStravaExpiresIn, 'stravaExpiresIn', DbType.integer);
}
}
// endregion DbAthleteFields
@ -4307,7 +4158,7 @@ class DbActivity extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbActivity] to use this feature';
throw UnimplementedError(msg);
}
@ -6679,7 +6530,7 @@ class DbEvent extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbEvent] to use this feature';
throw UnimplementedError(msg);
}
@ -8952,7 +8803,7 @@ class DbLap extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbLap] to use this feature';
throw UnimplementedError(msg);
}
@ -11592,7 +11443,7 @@ class DbInterval extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbInterval] to use this feature';
throw UnimplementedError(msg);
}
@ -13116,7 +12967,7 @@ class DbWeight extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbWeight] to use this feature';
throw UnimplementedError(msg);
}
@ -14104,7 +13955,7 @@ class DbHeartRateZoneSchema extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbHeartRateZoneSchema] to use this feature';
throw UnimplementedError(msg);
}
@ -15114,7 +14965,7 @@ class DbHeartRateZone extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbHeartRateZone] to use this feature';
throw UnimplementedError(msg);
}
@ -16157,7 +16008,7 @@ class DbPowerZoneSchema extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbPowerZoneSchema] to use this feature';
throw UnimplementedError(msg);
}
@ -17149,7 +17000,7 @@ class DbPowerZone extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbPowerZone] to use this feature';
throw UnimplementedError(msg);
}
@ -18272,7 +18123,7 @@ class DbTag extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbTag] to use this feature';
throw UnimplementedError(msg);
}
@ -19305,7 +19156,7 @@ class DbTagGroup extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbTagGroup] to use this feature';
throw UnimplementedError(msg);
}
@ -20250,7 +20101,7 @@ class DbLapTagging extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbLapTagging] to use this feature';
throw UnimplementedError(msg);
}
@ -21177,7 +21028,7 @@ class DbActivityTagging extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbActivityTagging] to use this feature';
throw UnimplementedError(msg);
}
@ -22107,7 +21958,7 @@ class DbIntervalTagging extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbIntervalTagging] to use this feature';
throw UnimplementedError(msg);
}
@ -22994,7 +22845,7 @@ class DbLog extends TableBase {
@override
Future<BoolResult> recover([bool recoverChilds = true]) {
// not implemented because:
const msg =
final msg =
'set useSoftDeleting:true in the table definition of [DbLog] to use this feature';
throw UnimplementedError(msg);
}

View File

@ -17,7 +17,6 @@ import '/model/model.dart'
import '/models/activity.dart';
import '/models/interval.dart' as encrateia;
import '/models/power_zone_schema.dart';
import '/models/strava_token.dart' as strava_token;
import '/models/tag_group.dart';
import '/models/weight.dart';
import 'heart_rate_zone_schema.dart';
@ -39,24 +38,14 @@ class Athlete {
String? get photoPath => _db.photoPath;
String? get state => _db.state;
String? get stravaUsername => _db.stravaUsername;
String? get stravaAccessToken => _db.stravaAccessToken;
String? get stravaTokenType => _db.stravaTokenType;
String? get stravaRefreshToken => _db.stravaRefreshToken;
int? get downloadInterval => _db.downloadInterval;
int? get recordAggregationCount => _db.recordAggregationCount;
int? get stravaExpiresAt => _db.stravaExpiresAt;
int? get stravaExpiresIn => _db.stravaExpiresIn;
int? get stravaId => _db.stravaId;
set downloadInterval(int? value) => _db.downloadInterval = value;
set firstName(String? value) => _db.firstName = value;
set lastName(String? value) => _db.lastName = value;
set recordAggregationCount(int? value) => _db.recordAggregationCount = value;
set stravaAccessToken(String? value) => _db.stravaAccessToken = value;
set stravaTokenType(String? value) => _db.stravaTokenType = value;
set stravaRefreshToken(String? value) => _db.stravaRefreshToken = value;
set stravaExpiresAt(int? value) => _db.stravaExpiresAt = value;
set stravaExpiresIn(int? value) => _db.stravaExpiresIn = value;
@override
String toString() => '< Athlete | $firstName $lastName | $stravaId >';
@ -110,12 +99,6 @@ class Athlete {
password = await storage.read(key: 'password-$stravaId');
}
Future<void> loadStravaToken() async =>
await strava_token.load(athlete: this);
Future<void> persistStravaToken() async =>
await strava_token.persist(athlete: this);
static Future<List<Athlete>> all() async {
final List<DbAthlete> dbAthleteList = await DbAthlete().select().toList();
return dbAthleteList.map(Athlete.exDb).toList();

View File

@ -1,51 +0,0 @@
import 'package:shared_preferences/shared_preferences.dart';
import 'package:strava_flutter/domain/model/model_authentication_response.dart';
import '/models/athlete.dart' as encrateia;
Future<void> persist({required encrateia.Athlete athlete}) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
athlete
..stravaAccessToken = prefs.getString('strava_accessToken')
..stravaExpiresAt = prefs.getInt('strava_expires_at')
..stravaExpiresIn = prefs.getInt('strava_expires_in')
..stravaTokenType = prefs.getString('strava_token_type')
..stravaRefreshToken = prefs.getString('strava_refreshToken');
await athlete.save();
}
Future<void> load({required encrateia.Athlete athlete}) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('strava_accessToken', athlete.stravaAccessToken!);
await prefs.setInt('strava_expires_at', athlete.stravaExpiresAt ?? 0);
await prefs.setInt('strava_expires_in', athlete.stravaExpiresIn ?? 0);
await prefs.setString('strava_token_type', athlete.stravaTokenType ?? "null");
await prefs.setString(
'strava_refreshToken', athlete.stravaRefreshToken ?? "null");
// FIXME: We don't use the Response yet!
TokenResponse(
tokenType: athlete.stravaTokenType!,
expiresAt: athlete.stravaExpiresAt!,
expiresIn: athlete.stravaExpiresIn!,
accessToken: athlete.stravaAccessToken!,
refreshToken: athlete.stravaRefreshToken!);
}
Future<void> delete({required encrateia.Athlete athlete}) async {
athlete
..stravaAccessToken = "null"
..stravaExpiresAt = 0
..stravaExpiresIn = 0
..stravaTokenType = "null"
..stravaRefreshToken = "null";
await athlete.save();
final SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('strava_accessToken', "null");
await prefs.setInt('strava_expires_in', 0);
await prefs.setInt('strava_expires_at', 0);
await prefs.setString('strava_token_type', "null");
await prefs.setString('strava_refreshToken', "null");
}

View File

@ -53,7 +53,6 @@ class _DashboardState extends State<Dashboard> {
title: Text('${athlete.firstName} ${athlete.lastName}'),
onTap: () async {
await athlete.readCredentials();
await athlete.loadStravaToken();
await Navigator.push(
context,
MaterialPageRoute<BuildContext>(
@ -61,7 +60,6 @@ class _DashboardState extends State<Dashboard> {
ShowAthleteScreen(athlete: athlete),
),
);
await athlete.persistStravaToken();
await getData();
},
),

View File

@ -9,7 +9,6 @@ import '/actions/import_activities_locally.dart';
import '/actions/update_job.dart';
import '/models/activity.dart';
import '/models/athlete.dart';
import '/models/strava_token.dart' as strava_token;
import '/screens/show_athlete_detail_screen.dart';
import '/utils/icon_utils.dart';
import '/utils/my_button_style.dart';
@ -279,20 +278,6 @@ class _ShowAthleteScreenState extends State<ShowAthleteScreen> {
flushbar: flushbar,
),
),
if (widget.athlete.stravaId != null)
ElevatedButton.icon(
style: MyButtonStyle.raisedButtonStyle(
color: MyColor.settings,
textColor:
MyColor.textColor(backgroundColor: MyColor.settings)),
icon: MyIcon.settings,
label: const Expanded(
child: Text('Delete Strava Token'),
),
onPressed: () async {
await strava_token.delete(athlete: widget.athlete);
setState(() {});
}),
];
}