diff --git a/Checkout1047484734/__init__.py b/Checkout1047484734/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Checkout1047484734/__pycache__/__init__.cpython-39.pyc b/Checkout1047484734/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..e899d72 Binary files /dev/null and b/Checkout1047484734/__pycache__/__init__.cpython-39.pyc differ diff --git a/Checkout1047484734/__pycache__/admin.cpython-39.pyc b/Checkout1047484734/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..31b0f68 Binary files /dev/null and b/Checkout1047484734/__pycache__/admin.cpython-39.pyc differ diff --git a/Checkout1047484734/__pycache__/apps.cpython-39.pyc b/Checkout1047484734/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..b8a8208 Binary files /dev/null and b/Checkout1047484734/__pycache__/apps.cpython-39.pyc differ diff --git a/Checkout1047484734/__pycache__/models.cpython-39.pyc b/Checkout1047484734/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..26c1b00 Binary files /dev/null and b/Checkout1047484734/__pycache__/models.cpython-39.pyc differ diff --git a/Checkout1047484734/__pycache__/serializers.cpython-39.pyc b/Checkout1047484734/__pycache__/serializers.cpython-39.pyc new file mode 100644 index 0000000..1aa8228 Binary files /dev/null and b/Checkout1047484734/__pycache__/serializers.cpython-39.pyc differ diff --git a/Checkout1047484734/__pycache__/urls.cpython-39.pyc b/Checkout1047484734/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000..5abd774 Binary files /dev/null and b/Checkout1047484734/__pycache__/urls.cpython-39.pyc differ diff --git a/Checkout1047484734/__pycache__/views.cpython-39.pyc b/Checkout1047484734/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..f489d39 Binary files /dev/null and b/Checkout1047484734/__pycache__/views.cpython-39.pyc differ diff --git a/Checkout1047484734/admin.py b/Checkout1047484734/admin.py new file mode 100644 index 0000000..e411009 --- /dev/null +++ b/Checkout1047484734/admin.py @@ -0,0 +1,7 @@ +from Checkout1047484734.models import Articulo, CarritoCompras, InfoEnvio +from django.contrib import admin +from .models import * + +admin.site.register(CarritoCompras) +admin.site.register(Articulo) +admin.site.register(InfoEnvio) diff --git a/Checkout1047484734/apps.py b/Checkout1047484734/apps.py new file mode 100644 index 0000000..2ffd9a1 --- /dev/null +++ b/Checkout1047484734/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class Checkout1047484734Config(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'Checkout1047484734' diff --git a/Checkout1047484734/migrations/0001_initial.py b/Checkout1047484734/migrations/0001_initial.py new file mode 100644 index 0000000..4acc26c --- /dev/null +++ b/Checkout1047484734/migrations/0001_initial.py @@ -0,0 +1,49 @@ +# Generated by Django 3.2.7 on 2021-09-23 00:52 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('Productos', '0002_auto_20210916_1521'), + ] + + operations = [ + migrations.CreateModel( + name='CarritoCompras', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('usuario', models.CharField(max_length=100)), + ('fecha', models.DateField(auto_now_add=True)), + ('dcto', models.FloatField(default=0)), + ('cantMinima', models.IntegerField(default=0)), + ('pagado', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='InfoEnvio', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nombre', models.CharField(max_length=100)), + ('apellido', models.CharField(max_length=100)), + ('direccion', models.CharField(max_length=100)), + ('pais', models.CharField(max_length=100)), + ('departamento', models.CharField(max_length=100)), + ('ciudad', models.CharField(max_length=100)), + ('carrito', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Checkout1047484734.carritocompras')), + ], + ), + migrations.CreateModel( + name='Articulo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cantidad', models.IntegerField(default=0)), + ('carrito', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Checkout1047484734.carritocompras')), + ('producto', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='Productos.producto')), + ], + ), + ] diff --git a/Checkout1047484734/migrations/__init__.py b/Checkout1047484734/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Checkout1047484734/migrations/__pycache__/0001_initial.cpython-39.pyc b/Checkout1047484734/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..e8eba30 Binary files /dev/null and b/Checkout1047484734/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/Checkout1047484734/migrations/__pycache__/__init__.cpython-39.pyc b/Checkout1047484734/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..ec691c9 Binary files /dev/null and b/Checkout1047484734/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/Checkout1047484734/models.py b/Checkout1047484734/models.py new file mode 100644 index 0000000..d08376c --- /dev/null +++ b/Checkout1047484734/models.py @@ -0,0 +1,41 @@ +from Productos.models import * +from django.db import models + +class CarritoCompras (models.Model): + usuario = models.CharField(max_length=100) + fecha = models.DateField(auto_now_add=True) + dcto = models.FloatField(default=0) + cantMinima = models.IntegerField(default=0) + pagado = models.BooleanField(default=False) + + def __str__(self): + return self.usuario + " - " + str(self.fecha) + + def total(self): + pass + + def numArt(self): + pass + +class InfoEnvio (models.Model): + carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE) + nombre = models.CharField(max_length=100) + apellido = models.CharField(max_length=100) + direccion = models.CharField(max_length=100) + pais = models.CharField(max_length=100) + departamento = models.CharField(max_length=100) + ciudad = models.CharField(max_length=100) + + def __str__(self): + return self.carrito.__str__() + +class Articulo (models.Model): + carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE) + producto = models.ForeignKey(Producto, on_delete=models.SET_NULL, null=True) + cantidad = models.IntegerField(default=0) + + def __str__(self): + return self.carrito.__str__() + "/" + self.producto.__str__() + + def subtotal(self): + pass diff --git a/Checkout1047484734/serializers.py b/Checkout1047484734/serializers.py new file mode 100644 index 0000000..bd36cb0 --- /dev/null +++ b/Checkout1047484734/serializers.py @@ -0,0 +1,18 @@ +from Checkout1047484734.models import * +from rest_framework import serializers +from Productos.models import * + +class CarritoComprasSerial(serializers.ModelSerializer): + class Meta: + model = CarritoCompras + fields = '__all__' + +class InfoEnvioSerial(serializers.ModelSerializer): + class Meta: + model = InfoEnvio + fields = '__all__' + +class ArticuloSerial(serializers.ModelSerializer): + class Meta: + model = Articulo + fields = ["carrito", "producto", "cantidad"] \ No newline at end of file diff --git a/Checkout1047484734/tests.py b/Checkout1047484734/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/Checkout1047484734/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Checkout1047484734/urls.py b/Checkout1047484734/urls.py new file mode 100644 index 0000000..cf1674b --- /dev/null +++ b/Checkout1047484734/urls.py @@ -0,0 +1,14 @@ +#gestionar las direcciones internas de la aplicacion chechout +from django.urls import path, include +from rest_framework import routers, urlpatterns +#ViewSets necesita trabajar con routers +from rest_framework.routers import DefaultRouter +from .views import * + +router = DefaultRouter() +router.register('carrito', CarritoComprasAPI, basename='carrito') + +urlpatterns = [ + path('crud/', include(router.urls)) +] + diff --git a/Checkout1047484734/views.py b/Checkout1047484734/views.py new file mode 100644 index 0000000..e36f2e4 --- /dev/null +++ b/Checkout1047484734/views.py @@ -0,0 +1,51 @@ +from rest_framework import viewsets +from rest_framework.response import Response +from .serializers import * +from rest_framework.status import HTTP_400_BAD_REQUEST + +class CarritoComprasAPI (viewsets.ViewSet): + def list(self, request): + #request trata de la peticion de usuario get,post, put... + carritos = CarritoCompras.objects.all() + carritoSerializador = CarritoComprasSerial(carritos, many=True) + return Response(carritoSerializador.data) + + def create(self, request): + #crear nuevos elementos en base de datos + #request.data = [{},{},...] + #nuevoCarritoSerial = CarritoComprasSerial(data=request.data, many=True) + nuevoCarritoSerial = CarritoComprasSerial(data=request.data) + if nuevoCarritoSerial.is_valid(): + nuevoCarritoSerial.save() + return Response({"Exite":True}) + return Response(nuevoCarritoSerial.errors, status=HTTP_400_BAD_REQUEST) + + + def retrieve(self, request, pk=None): + #obtener una información de la base de datos de un objeto + carritos = CarritoCompras.objects.filter(usuario=pk) + serializador = CarritoComprasSerial(carritos, many=True) + return Response(serializador.data) + + def parcial_update(self, request, pk=None): + #permite actualizar atributos de nuestro objeto CRUD + carrito = CarritoCompras.objects.get(pk=pk) + carritos = CarritoComprasSerial(carrito, request.data, partial=True) + if carritos.is_valid(): + carritos.save() + return Response({"Actualizado":True}) + return Response(carritos.errors,status=HTTP_400_BAD_REQUEST) + + def update(self, request, pk=None): + #permite actuazliar todos los argumentos en base de datos + carrito = CarritoCompras.objects.get(pk=pk) + carritos = CarritoComprasSerial(carrito, request.data) + if carritos.is_valid(): + carritos.save() + return Response({"Actualizado":True}) + return Response(carritos.errors,status=HTTP_400_BAD_REQUEST) + + def destroy(self, request, pk=None): + carrito = CarritoCompras.objects.get(pk=pk) + carrito.delete() + return Response({"Delete":True}) \ No newline at end of file diff --git a/ExEcommerce/__pycache__/__init__.cpython-39.pyc b/ExEcommerce/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..0cf365a Binary files /dev/null and b/ExEcommerce/__pycache__/__init__.cpython-39.pyc differ diff --git a/ExEcommerce/__pycache__/settings.cpython-39.pyc b/ExEcommerce/__pycache__/settings.cpython-39.pyc new file mode 100644 index 0000000..9eaed6b Binary files /dev/null and b/ExEcommerce/__pycache__/settings.cpython-39.pyc differ diff --git a/ExEcommerce/__pycache__/urls.cpython-39.pyc b/ExEcommerce/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000..48dfaad Binary files /dev/null and b/ExEcommerce/__pycache__/urls.cpython-39.pyc differ diff --git a/ExEcommerce/__pycache__/wsgi.cpython-39.pyc b/ExEcommerce/__pycache__/wsgi.cpython-39.pyc new file mode 100644 index 0000000..acf6b9d Binary files /dev/null and b/ExEcommerce/__pycache__/wsgi.cpython-39.pyc differ diff --git a/ExEcommerce/settings.py b/ExEcommerce/settings.py index 16bb888..2603ed6 100644 --- a/ExEcommerce/settings.py +++ b/ExEcommerce/settings.py @@ -40,6 +40,7 @@ 'Productos', 'rest_framework', 'rest_framework.authtoken', + 'Checkout1047484734' 'Checkout', 'Servicios' ] diff --git a/ExEcommerce/urls.py b/ExEcommerce/urls.py index 3b6ef59..f9ffb52 100644 --- a/ExEcommerce/urls.py +++ b/ExEcommerce/urls.py @@ -4,5 +4,7 @@ urlpatterns = [ path('admin/', admin.site.urls), path('productos/api/', include('Productos.urls')), + path('checkout/api/', include('Checkout1047484734.urls')), + path('checkout/api/', include('Checkout.urls')) ] diff --git a/Productos/__pycache__/__init__.cpython-39.pyc b/Productos/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..f72d76b Binary files /dev/null and b/Productos/__pycache__/__init__.cpython-39.pyc differ diff --git a/Productos/__pycache__/admin.cpython-39.pyc b/Productos/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000..8b56843 Binary files /dev/null and b/Productos/__pycache__/admin.cpython-39.pyc differ diff --git a/Productos/__pycache__/apps.cpython-39.pyc b/Productos/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000..543e6e8 Binary files /dev/null and b/Productos/__pycache__/apps.cpython-39.pyc differ diff --git a/Productos/__pycache__/models.cpython-39.pyc b/Productos/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..21e5c0f Binary files /dev/null and b/Productos/__pycache__/models.cpython-39.pyc differ diff --git a/Productos/__pycache__/serializers.cpython-39.pyc b/Productos/__pycache__/serializers.cpython-39.pyc new file mode 100644 index 0000000..9fcec5b Binary files /dev/null and b/Productos/__pycache__/serializers.cpython-39.pyc differ diff --git a/Productos/__pycache__/urls.cpython-39.pyc b/Productos/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000..9e75323 Binary files /dev/null and b/Productos/__pycache__/urls.cpython-39.pyc differ diff --git a/Productos/__pycache__/views.cpython-39.pyc b/Productos/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..6359d3d Binary files /dev/null and b/Productos/__pycache__/views.cpython-39.pyc differ diff --git a/Productos/migrations/__pycache__/0001_initial.cpython-39.pyc b/Productos/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000..75f76bf Binary files /dev/null and b/Productos/migrations/__pycache__/0001_initial.cpython-39.pyc differ diff --git a/Productos/migrations/__pycache__/0002_auto_20210916_1521.cpython-39.pyc b/Productos/migrations/__pycache__/0002_auto_20210916_1521.cpython-39.pyc new file mode 100644 index 0000000..9f72cd8 Binary files /dev/null and b/Productos/migrations/__pycache__/0002_auto_20210916_1521.cpython-39.pyc differ diff --git a/Productos/migrations/__pycache__/__init__.cpython-39.pyc b/Productos/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..3c92741 Binary files /dev/null and b/Productos/migrations/__pycache__/__init__.cpython-39.pyc differ