admin
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
1989f988a6
commit
1d9bc6c43d
2 changed files with 17 additions and 11 deletions
|
|
@ -14,7 +14,6 @@ import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
|||
import 'package:mnemo_cards_backend/api/v2/extensions/game_card_extensions.dart';
|
||||
import 'package:mnemo_cards_backend/api/v2/extensions/voice_extensions.dart';
|
||||
import 'package:mnemo_cards_backend/packs/card_image_storage.dart';
|
||||
import 'package:mnemo_cards_backend/packs/voice_storage.dart';
|
||||
import 'package:mnemo_cards_backend/storage/minio_config.dart';
|
||||
import 'package:mnemo_cards_backend/storage/minio_service.dart';
|
||||
|
||||
|
|
@ -456,18 +455,25 @@ class AdminCardsApiV2 {
|
|||
);
|
||||
await _db.packDao.updateCard(updated);
|
||||
|
||||
// Получить текущие паки для карточки
|
||||
final currentPacks = await _db.packDao.getPacksForCard(updated.id);
|
||||
|
||||
// Обновить связь с паком
|
||||
if (requestDto.packId != null && requestDto.packId!.isNotEmpty) {
|
||||
// Сначала удалить старую связь
|
||||
await _db.packDao.removeCardFromPack(updated.id, existing.packId ?? '');
|
||||
// Затем добавить новую
|
||||
// Удалить все старые связи
|
||||
for (final pack in currentPacks) {
|
||||
await _db.packDao.removeCardFromPack(updated.id, pack.id);
|
||||
}
|
||||
// Затем добавить новую связь
|
||||
await _db.packDao.addCardToPack(cardId: updated.id, packId: requestDto.packId!);
|
||||
} else {
|
||||
// Если packId не указан или пустой, удалить связь
|
||||
await _db.packDao.removeCardFromPack(updated.id, existing.packId ?? '');
|
||||
// Если packId не указан или пустой, удалить все связи
|
||||
for (final pack in currentPacks) {
|
||||
await _db.packDao.removeCardFromPack(updated.id, pack.id);
|
||||
}
|
||||
}
|
||||
|
||||
// Получить паки для карточки
|
||||
// Получить паки для карточки после обновления
|
||||
final packs = await _db.packDao.getPacksForCard(updated.id);
|
||||
final packId = packs.isNotEmpty ? packs.first.id : null;
|
||||
|
||||
|
|
|
|||
|
|
@ -815,7 +815,7 @@ void main() {
|
|||
expect(responseBody.containsKey('cards'), isTrue);
|
||||
});
|
||||
|
||||
test('should return 409 for authenticated user who already owns pack', () async {
|
||||
test('should return pack info with isPurchased=true for authenticated user who already owns pack', () async {
|
||||
// First, add pack to user
|
||||
await testIsar.writeTxn(() async {
|
||||
final user = await testIsar.userModels.get(1);
|
||||
|
|
@ -843,9 +843,9 @@ void main() {
|
|||
final responseBody = jsonDecode(await response.readAsString())
|
||||
as Map<String, dynamic>;
|
||||
|
||||
expect(response.statusCode, equals(409));
|
||||
expect(responseBody['error'], equals('Conflict'));
|
||||
expect(responseBody['message'], equals('Pack already purchased'));
|
||||
expect(response.statusCode, equals(200));
|
||||
expect(responseBody['id'], equals('11'));
|
||||
expect(responseBody['isPurchased'], equals(true));
|
||||
});
|
||||
|
||||
test('should return 404 for non-existent pack (unauthenticated)', () async {
|
||||
|
|
|
|||
Loading…
Reference in a new issue