diff --git a/lib/src/data/repository/client.dart b/lib/src/data/repository/client.dart index 6610fd7..8807fd6 100644 --- a/lib/src/data/repository/client.dart +++ b/lib/src/data/repository/client.dart @@ -141,4 +141,18 @@ class Client extends Repository { ); return CartModel.fromJSON(response.data); } + + @override + Future editCart(CartModel cartModel) async { + Response response = await dio.patch( + "$apiUrl/collections/cart/records/${cartModel.id}", + options: options, + data: { + "user_id": cartModel.userId, + "product_id": cartModel.productId, + "count": cartModel.count, + }, + ); + return CartModel.fromJSON(response.data); + } } diff --git a/lib/src/data/repository/repository.dart b/lib/src/data/repository/repository.dart index d7a9b15..33d4d6e 100644 --- a/lib/src/data/repository/repository.dart +++ b/lib/src/data/repository/repository.dart @@ -37,4 +37,6 @@ abstract class Repository { Future addProject(ProjectModel projectModel); Future addCart(CreateCartModel createCartModel); + + Future editCart(CartModel cartModel); } diff --git a/lib/src/domain/use_cases/base_use_case.dart b/lib/src/domain/use_cases/base_use_case.dart index 55b6c6a..504a2f4 100644 --- a/lib/src/domain/use_cases/base_use_case.dart +++ b/lib/src/domain/use_cases/base_use_case.dart @@ -128,4 +128,12 @@ class BaseUseCase { onError, ); } + + Future editCart( + CartModel cartModel, + Function(CartModel) onResponse, + Function(Exception) onError, + ) async { + await helper.request(() => client.editCart(cartModel), onResponse, onError); + } } diff --git a/test/matule_query_test.dart b/test/matule_query_test.dart index b7896da..6a666b1 100644 --- a/test/matule_query_test.dart +++ b/test/matule_query_test.dart @@ -26,6 +26,7 @@ final String _productId = "45urlx4rj907rrk"; void main() { group("Query", () { + late CartModel cartModel; test("CreateUser", () async { late final AuthModel authModel; final String testEmail = "$testString@test.test"; @@ -96,6 +97,21 @@ void main() { test("AddCart", () async { await useCase.addCart( CreateCartModel(userId: _userId, productId: _productId, count: 7), + (obj) { + cartModel = obj; + onResponse(obj); + }, + onError, + ); + }); + test("EditCart", () async { + await useCase.editCart( + CartModel( + id: cartModel.id, + userId: _userId, + productId: _productId, + count: 8, + ), onResponse, onError, );