Skip to content

Commit 2814145

Browse files
authored
Merge pull request #61 from mts-ai/feature/pass_request_to_data_layer
pass request to data layer
2 parents bdeceb9 + 6314491 commit 2814145

File tree

2 files changed

+7
-36
lines changed

2 files changed

+7
-36
lines changed

fastapi_jsonapi/data_layers/base.py

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
you must inherit from this base class
55
"""
66

7-
import types
87
from typing import Dict, List, Optional, Tuple, Type
98

9+
from fastapi import Request
10+
1011
from fastapi_jsonapi.data_typing import TypeModel, TypeSchema
1112
from fastapi_jsonapi.querystring import QueryStringManager
1213
from fastapi_jsonapi.schema import BaseJSONAPIItemInSchema
@@ -16,31 +17,9 @@
1617
class BaseDataLayer:
1718
"""Base class of a data layer"""
1819

19-
REWRITABLE_METHODS = (
20-
"query",
21-
"before_create_object",
22-
"after_create_object",
23-
"before_get_object",
24-
"after_get_object",
25-
"before_get_collection",
26-
"after_get_collection",
27-
"before_update_object",
28-
"after_update_object",
29-
"before_delete_object",
30-
"after_delete_object",
31-
"before_create_relationship",
32-
"after_create_relationship",
33-
"before_get_relationship",
34-
"after_get_relationship",
35-
"before_update_relationship",
36-
"after_update_relationship",
37-
"before_delete_relationship",
38-
"after_delete_relationship",
39-
"retrieve_object_query",
40-
)
41-
4220
def __init__(
4321
self,
22+
request: Request,
4423
schema: Type[TypeSchema],
4524
model: Type[TypeModel],
4625
url_id_field: str,
@@ -51,7 +30,7 @@ def __init__(
5130
**kwargs,
5231
):
5332
"""
54-
33+
:param request:
5534
:param schema:
5635
:param model:
5736
:param url_id_field:
@@ -61,8 +40,9 @@ def __init__(
6140
:param type_: resource type
6241
:param kwargs:
6342
"""
64-
self.model = model
43+
self.request = request
6544
self.schema = schema
45+
self.model = model
6646
self.url_id_field = url_id_field
6747
self.id_name_field = id_name_field
6848
self.disable_collection_count: bool = disable_collection_count
@@ -561,13 +541,3 @@ async def after_delete_relationship(
561541
:param view_kwargs: kwargs from the resource view
562542
"""
563543
raise NotImplementedError
564-
565-
def bound_rewritable_methods(self, methods):
566-
"""
567-
Bound additional methods to current instance
568-
569-
:param class methods: methods
570-
"""
571-
for key, value in methods.items():
572-
if key in self.REWRITABLE_METHODS:
573-
setattr(self, key, types.MethodType(value, self))

fastapi_jsonapi/views/view_base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(self, *, request: Request, jsonapi: RoutersJSONAPI, **options):
6464

6565
def _get_data_layer(self, schema: Type[BaseModel], **dl_kwargs):
6666
return self.data_layer_cls(
67+
request=self.request,
6768
schema=schema,
6869
model=self.jsonapi.model,
6970
type_=self.jsonapi.type_,

0 commit comments

Comments
 (0)