File tree Expand file tree Collapse file tree 2 files changed +33
-2
lines changed
python_fm_dapi_weaver/controllers Expand file tree Collapse file tree 2 files changed +33
-2
lines changed Original file line number Diff line number Diff line change 66 find_record ,
77 update_record ,
88 delete_record ,
9- upload_container
9+ upload_container ,
10+ fetch_layouts
1011)
1112
1213# List of method names that do not require token/session validation.
2223 "deleteRecord" : delete_record ,
2324 "signin" : signin ,
2425 "signout" : signout ,
25- "uploadContainer" :upload_container
26+ "uploadContainer" :upload_container ,
27+ "fetchLayouts" : fetch_layouts
2628
2729}
2830
Original file line number Diff line number Diff line change @@ -318,3 +318,32 @@ async def upload_container(req: Request):
318318
319319 raise HTTPException (status_code = 500 , detail = f"Unexpected error: { str (e )} " )
320320
321+ async def fetch_layouts (req : Request ):
322+ data = req .state .body
323+ token = req .state .fmSessionToken
324+ fm_server = data .get ("fmServer" )
325+ database = data .get ("database" )
326+
327+ validate_required_params ({
328+ "fmSessionToken" : token ,
329+ "fmServer" : fm_server ,
330+ "database" : database
331+ })
332+
333+ apiUrl = f"https://{ fm_server } /fmi/data/vLatest/databases/{ database } /layouts"
334+
335+ headers = {
336+ "Authorization" : f"Bearer { token } "
337+ }
338+
339+ try :
340+ response = requests .get (apiUrl , headers = headers , verify = False )
341+ response .raise_for_status ()
342+ json_data = response .json ()
343+ return {
344+ "layouts" : json_data ["response" ]["layouts" ],
345+ "session" : token
346+ }
347+
348+ except requests .HTTPError as e :
349+ raise handle_api_error (e ,"An error occurred while fetching the layouts." )
You can’t perform that action at this time.
0 commit comments