Skip to content

Commit a511ab7

Browse files
NatalyaGrigorevaNatalia Grigoreva
authored andcommitted
use base db interface
1 parent c7d0159 commit a511ab7

File tree

9 files changed

+294
-540
lines changed

9 files changed

+294
-540
lines changed

fastapi_jsonapi/data_layers/base.py

Lines changed: 1 addition & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -226,68 +226,7 @@ async def delete_relationship(
226226
"""
227227
raise NotImplementedError
228228

229-
def get_related_model_query_base(
230-
self,
231-
related_model: Type[TypeModel],
232-
):
233-
"""
234-
Prepare query for the related model
235-
236-
:param related_model: Related ORM model class (not instance)
237-
:return:
238-
"""
239-
raise NotImplementedError
240-
241-
def get_related_object_query(
242-
self,
243-
related_model: Type[TypeModel],
244-
related_id_field: str,
245-
id_value: str,
246-
):
247-
"""
248-
Prepare query to get related object
249-
250-
:param related_model:
251-
:param related_id_field:
252-
:param id_value:
253-
:return:
254-
"""
255-
raise NotImplementedError
256-
257-
def get_related_objects_list_query(
258-
self,
259-
related_model: Type[TypeModel],
260-
related_id_field: str,
261-
ids: list[str],
262-
):
263-
"""
264-
Prepare query to get related objects list
265-
266-
:param related_model:
267-
:param related_id_field:
268-
:param ids:
269-
:return:
270-
"""
271-
raise NotImplementedError
272-
273-
# async def get_related_object_query(self):
274-
async def get_related_object(
275-
self,
276-
related_model: Type[TypeModel],
277-
related_id_field: str,
278-
id_value: str,
279-
) -> TypeModel:
280-
"""
281-
Get related object.
282-
283-
:param related_model: Related ORM model class (not instance)
284-
:param related_id_field: id field of the related model (usually it's `id`)
285-
:param id_value: related object id value
286-
:return: an ORM object
287-
"""
288-
raise NotImplementedError
289-
290-
async def get_related_objects_list(
229+
async def get_related_objects(
291230
self,
292231
related_model: Type[TypeModel],
293232
related_id_field: str,
@@ -303,14 +242,6 @@ async def get_related_objects_list(
303242
"""
304243
raise NotImplementedError
305244

306-
def query(self, view_kwargs):
307-
"""
308-
Construct the base query to retrieve wanted data
309-
310-
:param view_kwargs: kwargs from the resource view
311-
"""
312-
raise NotImplementedError
313-
314245
async def before_create_object(self, data, view_kwargs):
315246
"""
316247
Provide additional data before object creation

fastapi_jsonapi/data_layers/sqla/base_model.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,11 @@ def _check_field_exists(
3636
def _fill(
3737
cls,
3838
model: TypeModel,
39-
relationships: list[tuple[str, TypeModel]],
4039
**kwargs,
4140
) -> None:
4241
for key, value in kwargs.items():
4342
cls._check_field_exists(model, key)
4443
setattr(model, key, value)
45-
for relation_name, related_data in relationships:
46-
cls._check_field_exists(model, relation_name)
47-
setattr(model, relation_name, related_data)
4844

4945
@classmethod
5046
async def _save(
@@ -111,12 +107,11 @@ async def create(
111107
session: AsyncSession,
112108
model: TypeModel,
113109
resource_type: str,
114-
relationships: list[tuple[str, TypeModel]],
115110
commit: bool = True,
116111
id_: Optional[str] = None,
117112
**kwargs,
118113
) -> TypeModel:
119-
cls._fill(model, relationships, **kwargs)
114+
cls._fill(model, **kwargs)
120115
session.add(model)
121116
return await cls._save(
122117
session=session,
@@ -219,12 +214,11 @@ async def update(
219214
session: AsyncSession,
220215
model: TypeModel,
221216
resource_type: str,
222-
relationships: list[tuple[str, TypeModel]],
223217
commit: bool = True,
224218
id_: Optional[str] = None,
225219
**kwargs,
226220
) -> TypeModel:
227-
cls._fill(model, relationships, **kwargs)
221+
cls._fill(model, **kwargs)
228222
session.add(model)
229223
return await cls._save(
230224
session=session,

0 commit comments

Comments
 (0)