From a41b9840aaea4d674967694a644034125e18fde1 Mon Sep 17 00:00:00 2001 From: PROF25-FINAL Date: Tue, 27 May 2025 12:57:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=84=D0=BE=D1=80=D0=BC=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D0=B0-8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/src/data/repository/client.dart | 14 ++++++++++++++ lib/src/data/repository/repository.dart | 2 ++ lib/src/domain/use_cases/base_use_case.dart | 12 ++++++++++++ test/matule_query_test.dart | 12 ++++++++++++ 4 files changed, 40 insertions(+) diff --git a/lib/src/data/repository/client.dart b/lib/src/data/repository/client.dart index 8807fd6..49074e2 100644 --- a/lib/src/data/repository/client.dart +++ b/lib/src/data/repository/client.dart @@ -155,4 +155,18 @@ class Client extends Repository { ); return CartModel.fromJSON(response.data); } + + @override + Future createOrder(CartModel cartModel) async { + Response response = await dio.post( + "$apiUrl/collections/orders/records", + 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 33d4d6e..386e965 100644 --- a/lib/src/data/repository/repository.dart +++ b/lib/src/data/repository/repository.dart @@ -39,4 +39,6 @@ abstract class Repository { Future addCart(CreateCartModel createCartModel); Future editCart(CartModel cartModel); + + Future createOrder(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 504a2f4..7a772b6 100644 --- a/lib/src/domain/use_cases/base_use_case.dart +++ b/lib/src/domain/use_cases/base_use_case.dart @@ -136,4 +136,16 @@ class BaseUseCase { ) async { await helper.request(() => client.editCart(cartModel), onResponse, onError); } + + Future createOrder( + CartModel cartModel, + Function(CartModel) onResponse, + Function(Exception) onError, + ) async { + await helper.request( + () => client.createOrder(cartModel), + onResponse, + onError, + ); + } } diff --git a/test/matule_query_test.dart b/test/matule_query_test.dart index 6a666b1..c651f2b 100644 --- a/test/matule_query_test.dart +++ b/test/matule_query_test.dart @@ -116,5 +116,17 @@ void main() { onError, ); }); + test("CreateOrder", () async { + await useCase.createOrder( + CartModel( + id: cartModel.id, + userId: _userId, + productId: _productId, + count: 8, + ), + onResponse, + onError, + ); + }); }); }