back fix
Some checks are pending
Backend CI / test (push) Waiting to run
Backend CI / build (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions
Some checks are pending
Backend CI / test (push) Waiting to run
Backend CI / build (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions
This commit is contained in:
parent
958bedf65a
commit
a36af9d4bd
2 changed files with 26 additions and 19 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
import 'package:drift/drift.dart';
|
import 'package:drift/drift.dart';
|
||||||
import 'package:drift_postgres/drift_postgres.dart';
|
|
||||||
import 'package:mnemo_cards_backend/database/database.dart';
|
import 'package:mnemo_cards_backend/database/database.dart';
|
||||||
|
|
||||||
/// Миксин для добавления soft delete функциональности в DAO
|
/// Миксин для добавления soft delete функциональности в DAO
|
||||||
|
|
@ -45,10 +44,14 @@ mixin SoftDeleteMixin<T extends Table, D> on DatabaseAccessor<AppDatabase> {
|
||||||
///
|
///
|
||||||
/// Возвращает null если запись не найдена или удалена.
|
/// Возвращает null если запись не найдена или удалена.
|
||||||
Future<D?> getActiveById(String id) async {
|
Future<D?> getActiveById(String id) async {
|
||||||
return (selectActive()..where((t) {
|
final query = selectActive()
|
||||||
|
..where((t) {
|
||||||
final idColumn = (t as dynamic).id;
|
final idColumn = (t as dynamic).id;
|
||||||
return idColumn.equals(id);
|
return idColumn.equals(id);
|
||||||
}))
|
})
|
||||||
.getSingleOrNull();
|
..limit(1);
|
||||||
|
|
||||||
|
final results = await query.get();
|
||||||
|
return results.isNotEmpty ? results.first : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,13 @@ class UserDao extends DatabaseAccessor<AppDatabase> with _$UserDaoMixin {
|
||||||
Future<UserWithData?> getUserWithDataById(String id) async {
|
Future<UserWithData?> getUserWithDataById(String id) async {
|
||||||
final query = select(users).join([
|
final query = select(users).join([
|
||||||
leftOuterJoin(userDatas, userDatas.userId.equalsExp(users.id)),
|
leftOuterJoin(userDatas, userDatas.userId.equalsExp(users.id)),
|
||||||
])..where(users.id.equals(id));
|
])..where(users.id.equals(id))
|
||||||
|
..limit(1);
|
||||||
|
|
||||||
final result = await query.getSingleOrNull();
|
final results = await query.get();
|
||||||
if (result == null) return null;
|
if (results.isEmpty) return null;
|
||||||
|
|
||||||
|
final result = results.first;
|
||||||
return UserWithData(
|
return UserWithData(
|
||||||
user: result.readTable(users),
|
user: result.readTable(users),
|
||||||
userData: result.readTableOrNull(userDatas),
|
userData: result.readTableOrNull(userDatas),
|
||||||
|
|
@ -183,16 +185,18 @@ class UserDao extends DatabaseAccessor<AppDatabase> with _$UserDaoMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Получить токен по externalUserId (только активные)
|
/// Получить токен по externalUserId (только активные)
|
||||||
Future<Token?> getTokenByExternalUserId(String externalUserId) {
|
Future<Token?> getTokenByExternalUserId(String externalUserId) async {
|
||||||
return (select(tokens)
|
final query = select(tokens)
|
||||||
..where(
|
..where(
|
||||||
(t) =>
|
(t) =>
|
||||||
t.externalUserId.equals(externalUserId) &
|
t.externalUserId.equals(externalUserId) &
|
||||||
t.isDeleted.equals(false),
|
t.isDeleted.equals(false),
|
||||||
)
|
)
|
||||||
..orderBy([(t) => OrderingTerm.desc(t.created)])
|
..orderBy([(t) => OrderingTerm.desc(t.created)])
|
||||||
..limit(1))
|
..limit(1);
|
||||||
.getSingleOrNull();
|
|
||||||
|
final results = await query.get();
|
||||||
|
return results.isNotEmpty ? results.first : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Получить токен пользователя (только активные)
|
/// Получить токен пользователя (только активные)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue