django-ninja-aio-crud 0.8.1__py3-none-any.whl → 0.8.2__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-ninja-aio-crud
3
- Version: 0.8.1
3
+ Version: 0.8.2
4
4
  Summary: Django Ninja AIO CRUD - Rest Framework
5
5
  Author: Giuseppe Casillo
6
6
  Requires-Python: >=3.10
@@ -1,4 +1,4 @@
1
- ninja_aio/__init__.py,sha256=zIumM1q-KnvagOkhV5_ddyGae3Bc4ayJ5vXZf0FScS0,119
1
+ ninja_aio/__init__.py,sha256=bsPt3RS3lSEkh5vACssADsknEA5mywwrp1XQlhqXfYs,119
2
2
  ninja_aio/api.py,sha256=Fe6l3YCy7MW5TY4-Lbl80CFuK2NT2Y7tHfmqPk6Mqak,1735
3
3
  ninja_aio/auth.py,sha256=fKboioU4sezPukKJukIwiboxml_KV7irhCH3vGYt5pU,1008
4
4
  ninja_aio/exceptions.py,sha256=gPnZX1Do2GXudbU8wDYkwhO70Qj0ZNrIJJ2UXRs9vYk,2241
@@ -7,8 +7,8 @@ ninja_aio/parsers.py,sha256=e_4lGCPV7zs-HTqtdJTc8yQD2KPAn9njbL8nF_Mmgkc,153
7
7
  ninja_aio/renders.py,sha256=0eYklRKd59aV4cZDom5vLZyA99Ob17OwkpMybsRXvyg,1970
8
8
  ninja_aio/schemas.py,sha256=EgRkfhnzZqwGvdBmqlZixMtMcoD1ZxV_qzJ3fmaAy20,113
9
9
  ninja_aio/types.py,sha256=TJSGlA7bt4g9fvPhJ7gzH5tKbLagPmZUzfgttEOp4xs,468
10
- ninja_aio/views.py,sha256=sMxIymLQ6dpeuf4-akYI1PrNzpfJf0S0iS2cC8BnHXM,9387
11
- django_ninja_aio_crud-0.8.1.dist-info/licenses/LICENSE,sha256=yrDAYcm0gRp_Qyzo3GQa4BjYjWRkAhGC8QRva__RYq0,1073
12
- django_ninja_aio_crud-0.8.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
13
- django_ninja_aio_crud-0.8.1.dist-info/METADATA,sha256=sN5wqat1RvSjw7MbNACdESg9TAOn7A_WTOQNFBjitmc,14138
14
- django_ninja_aio_crud-0.8.1.dist-info/RECORD,,
10
+ ninja_aio/views.py,sha256=N7SCBdFCub73MzofutZ0N7E_gXa3-CQvLwHGrf0eKHw,10106
11
+ django_ninja_aio_crud-0.8.2.dist-info/licenses/LICENSE,sha256=yrDAYcm0gRp_Qyzo3GQa4BjYjWRkAhGC8QRva__RYq0,1073
12
+ django_ninja_aio_crud-0.8.2.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
13
+ django_ninja_aio_crud-0.8.2.dist-info/METADATA,sha256=IjqhzpqxoFjfCqiJ-0rLKHmgXcAF3gYgu_VIosBLexM,14138
14
+ django_ninja_aio_crud-0.8.2.dist-info/RECORD,,
ninja_aio/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Django Ninja AIO CRUD - Rest Framework"""
2
2
 
3
- __version__ = "0.8.1"
3
+ __version__ = "0.8.2"
4
4
 
5
5
  from .api import NinjaAIO
6
6
 
ninja_aio/views.py CHANGED
@@ -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,21 @@ class APIViewSet:
105
109
  "delete": (None, self.delete_view),
106
110
  }
107
111
 
112
+ def _auth_view(self, view_type: str):
113
+ return getattr(self, f"{view_type}_auth") if self.auth is not NOT_SET else self.auth
114
+
115
+ def get_view_auth(self):
116
+ return self._auth_view("get")
117
+
118
+ def post_view_auth(self):
119
+ return self._auth_view("post")
120
+
121
+ def patch_view_auth(self):
122
+ return self._auth_view("patch")
123
+
124
+ def delete_view_auth(self):
125
+ return self._auth_view("delete")
126
+
108
127
  def _generate_schema(self, fields: dict, name: str) -> Schema:
109
128
  return create_model(f"{self.model_util.model_name}{name}", **fields)
110
129
 
@@ -141,10 +160,10 @@ class APIViewSet:
141
160
  def create_view(self):
142
161
  @self.router.post(
143
162
  self.path,
144
- auth=self.auth,
163
+ auth=self.post_view_auth(),
145
164
  response={201: self.schema_out, self.error_codes: GenericMessageSchema},
146
165
  )
147
- async def create(request: HttpRequest, data: self.schema_in):
166
+ async def create(request: HttpRequest, data: self.schema_in): # type: ignore
148
167
  return 201, await self.model_util.create_s(request, data, self.schema_out)
149
168
 
150
169
  create.__name__ = f"create_{self.model_util.model_name}"
@@ -153,7 +172,7 @@ class APIViewSet:
153
172
  def list_view(self):
154
173
  @self.router.get(
155
174
  self.path,
156
- auth=self.auth,
175
+ auth=self.get_view_auth(),
157
176
  response={
158
177
  200: List[self.schema_out],
159
178
  self.error_codes: GenericMessageSchema,
@@ -161,7 +180,7 @@ class APIViewSet:
161
180
  )
162
181
  @paginate(self.pagination_class)
163
182
  async def list(
164
- request: HttpRequest, filters: Query[self.filters_schema] = None
183
+ request: HttpRequest, filters: Query[self.filters_schema] = None # type: ignore
165
184
  ):
166
185
  qs = self.model.objects.select_related()
167
186
  if isinstance(self.model, ModelSerializerMeta):
@@ -183,10 +202,10 @@ class APIViewSet:
183
202
  def retrieve_view(self):
184
203
  @self.router.get(
185
204
  self.path_retrieve,
186
- auth=self.auth,
205
+ auth=self.get_view_auth(),
187
206
  response={200: self.schema_out, self.error_codes: GenericMessageSchema},
188
207
  )
189
- async def retrieve(request: HttpRequest, pk: Path[self.path_schema]):
208
+ async def retrieve(request: HttpRequest, pk: Path[self.path_schema]): # type: ignore
190
209
  obj = await self.model_util.get_object(request, self._get_pk(pk))
191
210
  return await self.model_util.read_s(request, obj, self.schema_out)
192
211
 
@@ -196,11 +215,11 @@ class APIViewSet:
196
215
  def update_view(self):
197
216
  @self.router.patch(
198
217
  self.path_retrieve,
199
- auth=self.auth,
218
+ auth=self.patch_view_auth(),
200
219
  response={200: self.schema_out, self.error_codes: GenericMessageSchema},
201
220
  )
202
221
  async def update(
203
- request: HttpRequest, data: self.schema_update, pk: Path[self.path_schema]
222
+ request: HttpRequest, data: self.schema_update, pk: Path[self.path_schema] # type: ignore
204
223
  ):
205
224
  return await self.model_util.update_s(
206
225
  request, data, self._get_pk(pk), self.schema_out
@@ -212,10 +231,10 @@ class APIViewSet:
212
231
  def delete_view(self):
213
232
  @self.router.delete(
214
233
  self.path_retrieve,
215
- auth=self.auth,
234
+ auth=self.delete_view_auth(),
216
235
  response={204: None, self.error_codes: GenericMessageSchema},
217
236
  )
218
- async def delete(request: HttpRequest, pk: Path[self.path_schema]):
237
+ async def delete(request: HttpRequest, pk: Path[self.path_schema]): # type: ignore
219
238
  return 204, await self.model_util.delete_s(request, self._get_pk(pk))
220
239
 
221
240
  delete.__name__ = f"delete_{self.model_util.model_name}"