Skip to content

Commit

Permalink
Merge pull request #5 from LeJeko/temp2
Browse files Browse the repository at this point in the history
fix owner comments
  • Loading branch information
LeJeko committed Jan 16, 2024
2 parents 11e0273 + 5bf55a4 commit 9cd9b90
Showing 1 changed file with 10 additions and 14 deletions.
24 changes: 10 additions & 14 deletions fmrest/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ def _get_api_path(self, resource: str,
path.format_map(PlaceholderDict(database=self.database,
layout=request_layout)))

def _date_format_for_keyword(self, keyword: str) -> Optional[str]:
return next((format[1] for format in API_DATE_FORMATS if format[0] == keyword), None)

def _with_auto_relogin(f):
@wraps(f)
def wrapper(self, *args, **kwargs):
Expand Down Expand Up @@ -421,7 +424,7 @@ def get_record(self, record_id: int, portals: Optional[List[Dict]] = None,

params = build_portal_params(portals, True) if portals else {}

params['dateformats'] = next((format[1] for format in API_DATE_FORMATS if format[0] == date_format), None)
params['dateformats'] = self._date_format_for_keyword(date_format)

# set response layout; layout param is only handled for backward-
# compatibility
Expand Down Expand Up @@ -557,7 +560,7 @@ def get_records(self, offset: int = 1, limit: int = 100,
params['_offset'] = offset
params['_limit'] = limit

params['dateformats'] = next((format[1] for format in API_DATE_FORMATS if format[0] == date_format), None)
params['dateformats'] = self._date_format_for_keyword(date_format)

# set response layout; layout param is only handled for backward-
# compatibility
Expand Down Expand Up @@ -645,7 +648,7 @@ def find(self, query: List[Dict[str, Any]],
'sort': sort,
'limit': str(limit),
'offset': str(offset),
'dateformats': next((format[1] for format in API_DATE_FORMATS if format[0] == date_format), None),
'dateformats': self._date_format_for_keyword(date_format),
# "layout" param is only handled for backwards-compatibility
'layout.response': layout if layout else response_layout
}
Expand Down Expand Up @@ -853,8 +856,9 @@ def get_layout(self, layout: Optional[str] = None, metadata: Optional[str] = Non
return response.get('fieldMetaData', None)

@_with_auto_relogin
def get_value_list_values(self, name: str, layout: Optional[str] = None, output: Optional[str] = None) -> List[Tuple[str, str]]:
"""Retrieves layout metadata and returns a list of tuple of (value, display value) a named FileMaker value list.
def get_value_list_values(self, name: str, layout: Optional[str] = None) -> List[Tuple[str, str]]:
"""Retrieves layout metadata and returns a list of tuple of (value, display value) of a named FileMaker value list
in the format [('a','A'), ('b','B'), ('c','C')]
Parameters
-----------
Expand All @@ -863,11 +867,6 @@ def get_value_list_values(self, name: str, layout: Optional[str] = None, output:
layout : str, optional
Sets the layout name for this request. This takes precedence over
the value stored in the Server instance's layout attribute
output : str, optional
Type to output the tupled values. Default to 'list'
Choices are
'list': [('a','A'), ('b','B'), ('c','C')]
'tuple': (('a','A'), ('b','B'), ('c','C'))
"""
target_layout = layout if layout else self.layout
value_lists = self.get_layout(layout=target_layout, metadata='value_lists')
Expand All @@ -879,10 +878,7 @@ def get_value_list_values(self, name: str, layout: Optional[str] = None, output:
values += [(v['value'], v['displayValue']) for v in vlist['values']]
break

if output == 'tuple':
return tuple(values)
else:
return values
return values

def _call_filemaker(self, method: str, path: str,
data: Optional[Dict] = None,
Expand Down

0 comments on commit 9cd9b90

Please sign in to comment.