1
- from typing import List , Sequence
1
+ from typing import List
2
2
3
3
from fastapi import APIRouter , Depends , Path , Query
4
- from pydantic import BaseModel
5
4
6
5
from primary .auth .auth_helper import AuthHelper
7
6
from primary .services .sumo_access .case_inspector import CaseInspector
8
7
from primary .services .sumo_access .sumo_inspector import SumoInspector
9
8
from primary .services .utils .authenticated_user import AuthenticatedUser
10
9
11
- router = APIRouter ()
12
-
13
-
14
- class FieldInfo (BaseModel ):
15
- field_identifier : str
16
-
17
-
18
- class CaseInfo (BaseModel ):
19
- uuid : str
20
- name : str
21
- status : str
22
- user : str
10
+ from . import schemas
23
11
24
-
25
- class EnsembleInfo (BaseModel ):
26
- name : str
27
- realization_count : int
28
-
29
-
30
- class EnsembleDetails (BaseModel ):
31
- name : str
32
- field_identifier : str
33
- stratigraphic_column_identifier : str
34
- case_name : str
35
- case_uuid : str
36
- realizations : Sequence [int ]
12
+ router = APIRouter ()
37
13
38
14
39
15
@router .get ("/fields" )
40
16
async def get_fields (
41
17
authenticated_user : AuthenticatedUser = Depends (AuthHelper .get_authenticated_user ),
42
- ) -> List [FieldInfo ]:
18
+ ) -> List [schemas . FieldInfo ]:
43
19
"""
44
20
Get list of fields
45
21
"""
46
22
sumo_inspector = SumoInspector (authenticated_user .get_sumo_access_token ())
47
23
field_ident_arr = await sumo_inspector .get_fields_async ()
48
- ret_arr = [FieldInfo (field_identifier = field_ident .identifier ) for field_ident in field_ident_arr ]
24
+ ret_arr = [schemas . FieldInfo (field_identifier = field_ident .identifier ) for field_ident in field_ident_arr ]
49
25
50
26
return ret_arr
51
27
@@ -54,14 +30,14 @@ async def get_fields(
54
30
async def get_cases (
55
31
authenticated_user : AuthenticatedUser = Depends (AuthHelper .get_authenticated_user ),
56
32
field_identifier : str = Query (description = "Field identifier" ),
57
- ) -> List [CaseInfo ]:
33
+ ) -> List [schemas . CaseInfo ]:
58
34
"""Get list of cases for specified field"""
59
35
sumo_inspector = SumoInspector (authenticated_user .get_sumo_access_token ())
60
36
case_info_arr = await sumo_inspector .get_cases_async (field_identifier = field_identifier )
61
37
62
- ret_arr : List [CaseInfo ] = []
38
+ ret_arr : List [schemas . CaseInfo ] = []
63
39
64
- ret_arr = [CaseInfo (uuid = ci .uuid , name = ci .name , status = ci .status , user = ci .user ) for ci in case_info_arr ]
40
+ ret_arr = [schemas . CaseInfo (uuid = ci .uuid , name = ci .name , status = ci .status , user = ci .user ) for ci in case_info_arr ]
65
41
66
42
return ret_arr
67
43
@@ -70,22 +46,20 @@ async def get_cases(
70
46
async def get_ensembles (
71
47
authenticated_user : AuthenticatedUser = Depends (AuthHelper .get_authenticated_user ),
72
48
case_uuid : str = Path (description = "Sumo case uuid" ),
73
- ) -> List [EnsembleInfo ]:
49
+ ) -> List [schemas . EnsembleInfo ]:
74
50
"""Get list of ensembles for a case"""
75
51
case_inspector = CaseInspector .from_case_uuid (authenticated_user .get_sumo_access_token (), case_uuid )
76
52
iteration_info_arr = await case_inspector .get_iterations_async ()
77
53
78
- print (iteration_info_arr )
79
-
80
- return [EnsembleInfo (name = it .name , realization_count = it .realization_count ) for it in iteration_info_arr ]
54
+ return [schemas .EnsembleInfo (name = it .name , realization_count = it .realization_count ) for it in iteration_info_arr ]
81
55
82
56
83
57
@router .get ("/cases/{case_uuid}/ensembles/{ensemble_name}" )
84
58
async def get_ensemble_details (
85
59
authenticated_user : AuthenticatedUser = Depends (AuthHelper .get_authenticated_user ),
86
60
case_uuid : str = Path (description = "Sumo case uuid" ),
87
61
ensemble_name : str = Path (description = "Ensemble name" ),
88
- ) -> EnsembleDetails :
62
+ ) -> schemas . EnsembleDetails :
89
63
"""Get more detailed information for an ensemble"""
90
64
91
65
case_inspector = CaseInspector .from_case_uuid (authenticated_user .get_sumo_access_token (), case_uuid )
@@ -97,7 +71,7 @@ async def get_ensemble_details(
97
71
if len (field_identifiers ) != 1 :
98
72
raise NotImplementedError ("Multiple field identifiers not supported" )
99
73
100
- return EnsembleDetails (
74
+ return schemas . EnsembleDetails (
101
75
name = ensemble_name ,
102
76
case_name = case_name ,
103
77
case_uuid = case_uuid ,
0 commit comments