From 04d76ee7d916c37278fd4f223e0e7ad63e4158e1 Mon Sep 17 00:00:00 2001 From: Rodia Date: Sat, 11 Jan 2025 15:13:31 -0500 Subject: [PATCH] Feat: GET search_products by name --- modules/sale_don_confiao/routes.py | 15 ++++++++++++ .../tests/test_api_donconfiao.py | 24 +++++++++++++++---- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/modules/sale_don_confiao/routes.py b/modules/sale_don_confiao/routes.py index 929966e..09374a0 100644 --- a/modules/sale_don_confiao/routes.py +++ b/modules/sale_don_confiao/routes.py @@ -67,6 +67,21 @@ def products(request, pool): return products +@app.route( + '//sale_don_confiao/search_products/', + methods=['GET']) +@allow_null_origin +@with_pool +@with_transaction() +@don_confiao_application +def search_products(request, pool, product_name): + Product = pool.get('product.product') + products = Product.search_read( + [('name', 'like', product_name)], + order=[('id', 'ASC')], + fields_names=['id', 'name', 'list_price']) + return products + @app.route('//sale_don_confiao/sales', methods=['GET']) @allow_null_origin @with_pool diff --git a/modules/sale_don_confiao/tests/test_api_donconfiao.py b/modules/sale_don_confiao/tests/test_api_donconfiao.py index 24b4e00..085d422 100644 --- a/modules/sale_don_confiao/tests/test_api_donconfiao.py +++ b/modules/sale_don_confiao/tests/test_api_donconfiao.py @@ -98,11 +98,11 @@ class DonConfiaoApiRouteTestCase( ProductTemplate = pool.get('product.template') Product = pool.get('product.product') Uom = pool.get('product.uom') - template, = ProductTemplate.create([ - {'name': 'Product', - 'default_uom': Uom.search([('name', '=', 'Unit')])[0].id - } - ]) + template, = ProductTemplate.create([{ + 'name': 'Product', + 'default_uom': Uom.search([('name', '=', 'Unit')])[0].id, + 'list_price': 5000 + }]) Product.create([{'template': template.id}]) @@ -118,6 +118,20 @@ class DonConfiaoApiRouteTestCase( self.assertEqual(response.status_code, HTTPStatus.OK) self.assertEqual(len(products), 1) + def test_search_products(self): + client = self.client() + response = client.get( + f'/{self.db_name}/sale_don_confiao/search_products/product', + headers={ + 'Authorization': f'bearer {self.key}', + }) + + products = json.loads( + response.get_data().decode()) + + raise Exception(products) + self.assertEqual(response.status_code, HTTPStatus.OK) + def test_get_sales(self): pool = Pool(DB_NAME) transaction = Transaction().start(DB_NAME, user=0, _lock_tables=[