django-ninja-aio-crud 0.8.1__tar.gz → 0.8.3__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.
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/PKG-INFO +1 -1
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/__init__.py +1 -1
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/views.py +30 -10
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/LICENSE +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/README.md +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/api.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/auth.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/exceptions.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/models.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/parsers.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/renders.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/schemas.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/ninja_aio/types.py +0 -0
- {django_ninja_aio_crud-0.8.1 → django_ninja_aio_crud-0.8.3}/pyproject.toml +0 -0
|
@@ -72,6 +72,10 @@ class APIViewSet:
|
|
|
72
72
|
schema_out: Schema | None = None
|
|
73
73
|
schema_update: Schema | None = None
|
|
74
74
|
auth: list | None = NOT_SET
|
|
75
|
+
get_auth: list | None = NOT_SET
|
|
76
|
+
post_auth: list | None = NOT_SET
|
|
77
|
+
patch_auth: list | None = NOT_SET
|
|
78
|
+
delete_auth: list | None = NOT_SET
|
|
75
79
|
pagination_class: type[AsyncPaginationBase] = PageNumberPagination
|
|
76
80
|
query_params: dict[str, tuple[type, ...]] = {}
|
|
77
81
|
disable: list[type[VIEW_TYPES]] = []
|
|
@@ -105,6 +109,22 @@ class APIViewSet:
|
|
|
105
109
|
"delete": (None, self.delete_view),
|
|
106
110
|
}
|
|
107
111
|
|
|
112
|
+
def _auth_view(self, view_type: str):
|
|
113
|
+
auth = getattr(self, f"{view_type}_auth", None)
|
|
114
|
+
return auth if auth is not NOT_SET else self.auth
|
|
115
|
+
|
|
116
|
+
def get_view_auth(self):
|
|
117
|
+
return self._auth_view("get")
|
|
118
|
+
|
|
119
|
+
def post_view_auth(self):
|
|
120
|
+
return self._auth_view("post")
|
|
121
|
+
|
|
122
|
+
def patch_view_auth(self):
|
|
123
|
+
return self._auth_view("patch")
|
|
124
|
+
|
|
125
|
+
def delete_view_auth(self):
|
|
126
|
+
return self._auth_view("delete")
|
|
127
|
+
|
|
108
128
|
def _generate_schema(self, fields: dict, name: str) -> Schema:
|
|
109
129
|
return create_model(f"{self.model_util.model_name}{name}", **fields)
|
|
110
130
|
|
|
@@ -141,10 +161,10 @@ class APIViewSet:
|
|
|
141
161
|
def create_view(self):
|
|
142
162
|
@self.router.post(
|
|
143
163
|
self.path,
|
|
144
|
-
auth=self.
|
|
164
|
+
auth=self.post_view_auth(),
|
|
145
165
|
response={201: self.schema_out, self.error_codes: GenericMessageSchema},
|
|
146
166
|
)
|
|
147
|
-
async def create(request: HttpRequest, data: self.schema_in):
|
|
167
|
+
async def create(request: HttpRequest, data: self.schema_in): # type: ignore
|
|
148
168
|
return 201, await self.model_util.create_s(request, data, self.schema_out)
|
|
149
169
|
|
|
150
170
|
create.__name__ = f"create_{self.model_util.model_name}"
|
|
@@ -153,7 +173,7 @@ class APIViewSet:
|
|
|
153
173
|
def list_view(self):
|
|
154
174
|
@self.router.get(
|
|
155
175
|
self.path,
|
|
156
|
-
auth=self.
|
|
176
|
+
auth=self.get_view_auth(),
|
|
157
177
|
response={
|
|
158
178
|
200: List[self.schema_out],
|
|
159
179
|
self.error_codes: GenericMessageSchema,
|
|
@@ -161,7 +181,7 @@ class APIViewSet:
|
|
|
161
181
|
)
|
|
162
182
|
@paginate(self.pagination_class)
|
|
163
183
|
async def list(
|
|
164
|
-
request: HttpRequest, filters: Query[self.filters_schema] = None
|
|
184
|
+
request: HttpRequest, filters: Query[self.filters_schema] = None # type: ignore
|
|
165
185
|
):
|
|
166
186
|
qs = self.model.objects.select_related()
|
|
167
187
|
if isinstance(self.model, ModelSerializerMeta):
|
|
@@ -183,10 +203,10 @@ class APIViewSet:
|
|
|
183
203
|
def retrieve_view(self):
|
|
184
204
|
@self.router.get(
|
|
185
205
|
self.path_retrieve,
|
|
186
|
-
auth=self.
|
|
206
|
+
auth=self.get_view_auth(),
|
|
187
207
|
response={200: self.schema_out, self.error_codes: GenericMessageSchema},
|
|
188
208
|
)
|
|
189
|
-
async def retrieve(request: HttpRequest, pk: Path[self.path_schema]):
|
|
209
|
+
async def retrieve(request: HttpRequest, pk: Path[self.path_schema]): # type: ignore
|
|
190
210
|
obj = await self.model_util.get_object(request, self._get_pk(pk))
|
|
191
211
|
return await self.model_util.read_s(request, obj, self.schema_out)
|
|
192
212
|
|
|
@@ -196,11 +216,11 @@ class APIViewSet:
|
|
|
196
216
|
def update_view(self):
|
|
197
217
|
@self.router.patch(
|
|
198
218
|
self.path_retrieve,
|
|
199
|
-
auth=self.
|
|
219
|
+
auth=self.patch_view_auth(),
|
|
200
220
|
response={200: self.schema_out, self.error_codes: GenericMessageSchema},
|
|
201
221
|
)
|
|
202
222
|
async def update(
|
|
203
|
-
request: HttpRequest, data: self.schema_update, pk: Path[self.path_schema]
|
|
223
|
+
request: HttpRequest, data: self.schema_update, pk: Path[self.path_schema] # type: ignore
|
|
204
224
|
):
|
|
205
225
|
return await self.model_util.update_s(
|
|
206
226
|
request, data, self._get_pk(pk), self.schema_out
|
|
@@ -212,10 +232,10 @@ class APIViewSet:
|
|
|
212
232
|
def delete_view(self):
|
|
213
233
|
@self.router.delete(
|
|
214
234
|
self.path_retrieve,
|
|
215
|
-
auth=self.
|
|
235
|
+
auth=self.delete_view_auth(),
|
|
216
236
|
response={204: None, self.error_codes: GenericMessageSchema},
|
|
217
237
|
)
|
|
218
|
-
async def delete(request: HttpRequest, pk: Path[self.path_schema]):
|
|
238
|
+
async def delete(request: HttpRequest, pk: Path[self.path_schema]): # type: ignore
|
|
219
239
|
return 204, await self.model_util.delete_s(request, self._get_pk(pk))
|
|
220
240
|
|
|
221
241
|
delete.__name__ = f"delete_{self.model_util.model_name}"
|
|
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
|