#88 feat(AdminCode): create model and api view.
This commit is contained in:
parent
a7e3b9aaa8
commit
0caa6fbb56
@ -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)),
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user