easyapi-django 1.2.0__tar.gz → 1.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {easyapi_django-1.2.0/easyapi_django.egg-info → easyapi_django-1.2.2}/PKG-INFO +1 -1
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/base.py +7 -1
- {easyapi_django-1.2.0 → easyapi_django-1.2.2/easyapi_django.egg-info}/PKG-INFO +1 -1
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/pyproject.toml +1 -1
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/LICENSE +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/MANIFEST.in +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/README.md +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/auth.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/bearer.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/blocking.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/calc.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/calc_resource.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/client_ip.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/constants.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/core/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/core/endpoint.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/core/resource.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/dates.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/exception.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/filters.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/cli.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/config.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/generator.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/base.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/mysql.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/inspector/postgres.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/README.md.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/asgi.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/env.example.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/gitignore.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/manage.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/module/models.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/module/resources.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/requirements.txt.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/router/endpoints.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/router/urls.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/run.sh.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/settings/env.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/gen/templates/settings/settings.py.j2 +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/helpers.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/management/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/management/commands/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/management/commands/mcp_serve.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/protocol.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/schema.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/server.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/testing.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/tool.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/mcp/tools.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/middleware.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/_common.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/apps.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/clients.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/codes.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/constants.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/devices.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/discovery.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/migrations/0001_initial.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/migrations/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/models.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resolver.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/authorize.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/device.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/device_authorization.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/register.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/revoke.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/token.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/routes.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/session.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/settings_helper.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/templates/zeromcp_oauth/consent.html +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/templates/zeromcp_oauth/device.html +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/tokens.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/openapi.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/orm/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/rate_limit.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/redis_config.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/routes.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/schemas.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/security.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/sensitive.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/serializer.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/settings_helper.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/__init__.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/db_router.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/registry.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/tenant/tenant.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/util.py +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/SOURCES.txt +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/dependency_links.txt +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/entry_points.txt +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/requires.txt +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi_django.egg-info/top_level.txt +0 -0
- {easyapi_django-1.2.0 → easyapi_django-1.2.2}/setup.cfg +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import hashlib
|
|
2
2
|
import json
|
|
3
3
|
import logging
|
|
4
|
+
from decimal import InvalidOperation
|
|
4
5
|
from functools import reduce
|
|
5
6
|
from importlib import import_module
|
|
6
7
|
from urllib import parse
|
|
@@ -14,7 +15,7 @@ from django.db.models import Q
|
|
|
14
15
|
from django.forms.models import model_to_dict
|
|
15
16
|
from django.http import HttpResponse, JsonResponse
|
|
16
17
|
from .core import CoreResource
|
|
17
|
-
from django.db.utils import IntegrityError
|
|
18
|
+
from django.db.utils import DataError, IntegrityError
|
|
18
19
|
from django.utils import timezone
|
|
19
20
|
|
|
20
21
|
import operator
|
|
@@ -761,6 +762,8 @@ class BaseResource(CoreResource):
|
|
|
761
762
|
if is_pydantic_model(schema):
|
|
762
763
|
self.body = validate_input(schema, self.body)
|
|
763
764
|
await self.hydrate(self.body)
|
|
765
|
+
else:
|
|
766
|
+
raise HTTPException(400, 'Invalid body')
|
|
764
767
|
else:
|
|
765
768
|
self.body = None
|
|
766
769
|
|
|
@@ -1608,6 +1611,9 @@ class BaseResource(CoreResource):
|
|
|
1608
1611
|
)
|
|
1609
1612
|
raise HTTPException(409, 'Conflict creating item')
|
|
1610
1613
|
|
|
1614
|
+
except (ValueError, TypeError, FieldError, ValidationError, InvalidOperation, DataError) as exc:
|
|
1615
|
+
raise HTTPException(400, f'Invalid value: {exc}') from exc
|
|
1616
|
+
|
|
1611
1617
|
return await self.get_obj(id)
|
|
1612
1618
|
|
|
1613
1619
|
async def patch(self, request):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/resources/device_authorization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/templates/zeromcp_oauth/consent.html
RENAMED
|
File without changes
|
{easyapi_django-1.2.0 → easyapi_django-1.2.2}/easyapi/oauth/templates/zeromcp_oauth/device.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|