import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:mnemo_cards/di/injector.dart'; import 'package:mnemo_cards/features/packs/packs_api.dart'; import 'package:mnemo_cards/managers/repository/api.dart'; import 'package:mnemo_cards_common/mnemo_cards_common.dart'; import '../di/locator.dart'; class AdminApi with Api { final Dio _dio; AdminApi(this._dio); Future addCard(GameCardDto dto) async { final r = await _dio.post('$path/cards/add', data: jsonEncode(dto.toJson())); return r.statusCode == 200; } Future deleteCard(GameCardDto dto) async { final r = await _dio.post( '$path/cards/delete', data: jsonEncode({'id': dto.id.toString()}), ); return r.statusCode == 200; } Future> getCardIds() async { final r = await _dio.get( '$path/cards/ids', ); return (jsonDecode(r.data!)['ids'] as String).split(',').cast(); } Future> getCards(List ids) async { final r = await _dio.get( '$path/cards', queryParameters: {'ids': ids.join(',')}, ); return (jsonDecode(r.data!) as List) .map((e) => GameCardDto.fromJson(e as Map)) .toList() .cast(); } Future getEditPack(String id) async { final r = await _dio.get( '$path/pack/edit/$id', ); return EditCardPackDto.fromJson( jsonDecode(r.data as String) as Map, ); } Future deletePack(EditCardPackDto dto) async { final r = await _dio.post( '$path/pack/delete', data: jsonEncode({'id': dto.id.toString()}), ); return r.statusCode == 200; } Future editPack(EditCardPackDto dto) async { final r = await _dio.post( '$path/pack/edit', data: jsonEncode(dto.toJson()), ); return r.statusCode == 200; } Future> packs() => getIt.get().getPacksPreviews(null); }