Skip to content

Commit 3683895

Browse files
committed
add action attr to providers
* Inform the provider what action is going to be performed, currently either 'render' or 'export'. The action is not used by default, but future commits to the osf provider will make use of it.
1 parent cadecfe commit 3683895

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

mfr/core/provider.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class BaseProvider(metaclass=abc.ABCMeta):
1414
`mfr.server.settings.ALLOWED_PROVIDER_DOMAINS`.
1515
"""
1616

17-
def __init__(self, request, url):
17+
def __init__(self, request, url, action=None):
1818
self.request = request
1919
url_netloc = furl.furl(url).netloc
2020
if url_netloc not in settings.ALLOWED_PROVIDER_NETLOCS:
@@ -25,6 +25,7 @@ def __init__(self, request, url):
2525
code=400
2626
)
2727
self.url = url
28+
self.action = action
2829
self.provider_metrics = MetricsRecord('provider')
2930
self.metrics = self.provider_metrics.new_subrecord(self.NAME)
3031

mfr/core/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from mfr.core import exceptions
55

66

7-
def make_provider(name, request, url):
7+
def make_provider(name, request, url, action=None):
88
"""Returns an instance of :class:`mfr.core.provider.BaseProvider`
99
1010
:param str name: The name of the provider to instantiate. (osf)
@@ -19,6 +19,7 @@ def make_provider(name, request, url):
1919
name=name.lower(),
2020
invoke_on_load=True,
2121
invoke_args=(request, url, ),
22+
invoke_kwds={'action': action},
2223
).driver
2324
except RuntimeError:
2425
raise exceptions.MakeProviderError(

mfr/providers/osf/provider.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ class OsfProvider(provider.BaseProvider):
3030
UNNEEDED_URL_PARAMS = ('_', 'token', 'action', 'mode', 'displayName')
3131
NAME = 'osf'
3232

33-
def __init__(self, request, url):
34-
super().__init__(request, url)
33+
def __init__(self, request, url, action=None):
34+
super().__init__(request, url, action)
3535
self.download_url = None
3636
self.headers = {}
3737

mfr/server/handlers/core.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ async def prepare(self):
114114
self.provider = utils.make_provider(
115115
settings.PROVIDER_NAME,
116116
self.request,
117-
self.url
117+
self.url,
118+
action=self.NAME,
118119
)
119120

120121
self.metadata = await self.provider.metadata()

0 commit comments

Comments
 (0)