Skip to content

Commit

Permalink
More flexible request retrieval for fields
Browse files Browse the repository at this point in the history
  • Loading branch information
joamag committed Jun 27, 2019
1 parent bae213b commit 712f133
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions src/appier/base.py
Expand Up @@ -3017,7 +3017,8 @@ def field(
mandatory = False,
not_empty = False,
validation = None,
message = None
message = None,
request = None
):
return self.get_field(
name,
Expand All @@ -3029,7 +3030,8 @@ def field(
mandatory = mandatory,
not_empty = not_empty,
validation = validation,
message = message
message = message,
request = request
)

def get_field(
Expand All @@ -3043,10 +3045,12 @@ def get_field(
mandatory = False,
not_empty = False,
validation = None,
message = None
message = None,
request = None
):
request = request or self.request
value = default
args = self.request.args
args = request.args
exists = name in args
if mandatory and not exists: raise exceptions.OperationalError(
message = message or "Mandatory field '%s' not found in request" % name,
Expand All @@ -3072,12 +3076,21 @@ def get_field(
if cast and not value in (None, ""): value = cast(value)
return value

def set_field(self, name, value):
self.request.args[name] = [value]
def set_field(self, name, value, request = None):
request = request or self.request
request.args[name] = [value]

def get_fields(self, name, default = None, cast = None, mandatory = False):
def get_fields(
self,
name,
default = None,
cast = None,
mandatory = False,
request = None
):
request = request or self.request
values = default
args = self.request.args
args = request.args
exists = name in args
if mandatory and not exists: raise exceptions.OperationalError(
message = "Mandatory field '%s' not found in request" % name
Expand All @@ -3089,8 +3102,9 @@ def get_fields(self, name, default = None, cast = None, mandatory = False):
_values.append(value)
return _values

def set_fields(self, name, values):
self.request.args[name] = values
def set_fields(self, name, values, request = None):
request = request or self.request
request.args[name] = values

def get_cache_d(self):
return self.cache_d
Expand Down

0 comments on commit 712f133

Please sign in to comment.