#88 feat(AdminCode): create model and api view.
This commit is contained in:
		| @@ -3,7 +3,7 @@ from rest_framework.response import Response | ||||
| from rest_framework.status import HTTP_400_BAD_REQUEST | ||||
| from rest_framework.views import APIView | ||||
|  | ||||
| from .models import Sale, SaleLine, Customer, Product, ReconciliationJar, PaymentMethods | ||||
| from .models import Sale, SaleLine, Customer, Product, ReconciliationJar, PaymentMethods, AdminCode | ||||
| from .serializers import SaleSerializer, ProductSerializer, CustomerSerializer, ReconciliationJarSerializer, PaymentMethodSerializer, SaleForRenconciliationSerializer, SaleSummarySerializer | ||||
|  | ||||
| from decimal import Decimal | ||||
| @@ -126,3 +126,8 @@ class SaleSummary(APIView): | ||||
|         sale = Sale.objects.get(pk=id) | ||||
|         serializer = SaleSummarySerializer(sale) | ||||
|         return Response(serializer.data) | ||||
|  | ||||
| class AdminCodeValidateView(APIView): | ||||
|     def get(self, request, code): | ||||
|         codes = AdminCode.objects.filter(value=code) | ||||
|         return Response({'validCode': bool(codes)}) | ||||
|   | ||||
							
								
								
									
										20
									
								
								tienda_ilusion/don_confiao/migrations/0037_admincode.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tienda_ilusion/don_confiao/migrations/0037_admincode.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| # Generated by Django 5.0.6 on 2025-01-11 23:52 | ||||
|  | ||||
| from django.db import migrations, models | ||||
|  | ||||
|  | ||||
| class Migration(migrations.Migration): | ||||
|  | ||||
|     dependencies = [ | ||||
|         ('don_confiao', '0036_merge_20241228_2212'), | ||||
|     ] | ||||
|  | ||||
|     operations = [ | ||||
|         migrations.CreateModel( | ||||
|             name='AdminCode', | ||||
|             fields=[ | ||||
|                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||||
|                 ('value', models.CharField(max_length=255)), | ||||
|             ], | ||||
|         ), | ||||
|     ] | ||||
| @@ -198,3 +198,7 @@ class Payment(models.Model): | ||||
| class PaymentSale(models.Model): | ||||
|     payment = models.ForeignKey(Payment, on_delete=models.CASCADE) | ||||
|     sale = models.ForeignKey(Sale, on_delete=models.CASCADE) | ||||
|  | ||||
|  | ||||
| class AdminCode(models.Model): | ||||
|     value = models.CharField(max_length=255, null=False, blank=False) | ||||
|   | ||||
							
								
								
									
										41
									
								
								tienda_ilusion/don_confiao/tests/test_admin_code.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								tienda_ilusion/don_confiao/tests/test_admin_code.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| from django.test import TestCase, Client | ||||
|  | ||||
| from ..models import AdminCode | ||||
|  | ||||
| import json | ||||
|  | ||||
|  | ||||
| class TestAdminCode(TestCase): | ||||
|     def setUp(self): | ||||
|         self.valid_code = 'some valid code' | ||||
|         admin_code = AdminCode() | ||||
|         admin_code.value = self.valid_code | ||||
|         admin_code.clean() | ||||
|         admin_code.save() | ||||
|  | ||||
|         self.client = Client() | ||||
|  | ||||
|     def test_validate_code(self): | ||||
|         url = '/don_confiao/api/admin_code/validate/' + self.valid_code | ||||
|         response = self.client.get(url) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         content = json.loads(response.content.decode('utf-8')) | ||||
|         self.assertTrue(content['validCode']) | ||||
|  | ||||
|     def test_invalid_code(self): | ||||
|         invalid_code = 'some invalid code' | ||||
|         url = '/don_confiao/api/admin_code/validate/' + invalid_code | ||||
|  | ||||
|         response = self.client.get(url) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         content = json.loads(response.content.decode('utf-8')) | ||||
|         self.assertFalse(content['validCode']) | ||||
|  | ||||
|     def test_empty_code(self): | ||||
|         empty_code = '' | ||||
|         url = '/don_confiao/api/admin_code/validate/' + empty_code | ||||
|  | ||||
|         response = self.client.get(url) | ||||
|         self.assertEqual(response.status_code, 404) | ||||
| @@ -28,5 +28,6 @@ urlpatterns = [ | ||||
|     path("payment_methods/all/select_format", api_views.PaymentMethodView.as_view(), name="payment_methods_to_select"), | ||||
|     path('purchases/for_reconciliation', api_views.SalesForReconciliationView.as_view(), name='sales_for_reconciliation'), | ||||
|     path('reconciliate_jar', api_views.ReconciliateJarView.as_view()), | ||||
|     path('api/admin_code/validate/<code>', api_views.AdminCodeValidateView.as_view()), | ||||
|     path('api/', include(router.urls)), | ||||
| ] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user