1- from  typing  import  Any 
2- 
31from  fastapi  import  APIRouter , status 
42from  fastapi .responses  import  JSONResponse 
53
6- from  app .controllers .network_info  import  NetworkInfo 
7- from  app .controllers .network_to_smt  import  NetworkToSMT 
8- from  app .controllers .operations  import  (FilterConfigs , MaximizeImpact ,
9-                                         MinimizeImpact , NumberOfProducts ,
10-                                         ValidModel )
4+ from  flamapy .metamodels .dn_metamodel .operations  import  NetworkInfo 
5+ from  flamapy .metamodels .smt_metamodel .transformations  import  NetworkToSMT 
6+ from  flamapy .metamodels .smt_metamodel .operations  import  (
7+     FilterConfigs ,
8+     MaximizeImpact ,
9+     MinimizeImpact ,
10+     NumberOfProducts ,
11+     ValidModel 
12+ )
1113from  app .controllers .serialize_controller  import  serialize_network 
1214from  app .services .version_service  import  get_release_by_values 
1315from  app .utils .json_encoder  import  json_encoder 
@@ -32,25 +34,25 @@ async def valid_file(network_id: str, file_name: str, agregator: str) -> JSONRes
3234    smt_transform  =  NetworkToSMT (dependency_network , agregator )
3335    smt_transform .transform ()
3436    smt_model  =  smt_transform .destination_model 
35-     operation  =  ValidModel ()
36-     operation .execute (smt_model ,  file_name )
37+     operation  =  ValidModel (file_name )
38+     operation .execute (smt_model )
3739    result  =  {'is_valid' : operation .get_result ()}
3840    return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder (result ))
3941
4042
41- @router .post ( 
42-     '/operation/number_of_products/{network_id}' , 
43-     response_description = 'Number of products operation'  
44- ) 
45- async  def  number_of_products (network_id : str , file_name : str , agregator : str ) ->  JSONResponse :
46-     dependency_network  =  await  serialize_network (network_id )
47-     smt_transform  =  NetworkToSMT (dependency_network , agregator )
48-     smt_transform .transform ()
49-     smt_model  =  smt_transform .destination_model 
50-     operation  =  NumberOfProducts ()
51-     operation .execute (smt_model ,  file_name )
52-     result  =  {'number_of_products' : operation .get_result ()}
53-     return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder (result ))
43+ #  @router.post(
44+ #      '/operation/number_of_products/{network_id}',
45+ #      response_description='Number of products operation'
46+ #  )
47+ #  async def number_of_products(network_id: str, file_name: str, agregator: str) -> JSONResponse:
48+ #      dependency_network = await serialize_network(network_id)
49+ #      smt_transform = NetworkToSMT(dependency_network, agregator)
50+ #      smt_transform.transform()
51+ #      smt_model = smt_transform.destination_model
52+ #       operation = NumberOfProducts(file_name )
53+ #       operation.execute(smt_model)
54+ #      result = {'number_of_products': operation.get_result()}
55+ #      return JSONResponse(status_code=status.HTTP_200_OK, content=json_encoder(result))
5456
5557
5658@router .post ( 
@@ -59,16 +61,16 @@ async def number_of_products(network_id: str, file_name: str, agregator: str) ->
5961) 
6062async  def  minimize_impact (
6163    network_id : str ,
62-     file_name : str ,
6364    agregator : str ,
64-     op_configs : dict [str , int ] =  {'limit' : 10 }
65+     file_name : str ,
66+     limit : int 
6567) ->  JSONResponse :
6668    dependency_network  =  await  serialize_network (network_id )
6769    smt_transform  =  NetworkToSMT (dependency_network , agregator )
6870    smt_transform .transform ()
6971    smt_model  =  smt_transform .destination_model 
70-     operation  =  MinimizeImpact (** op_configs )
71-     operation .execute (smt_model ,  file_name )
72+     operation  =  MinimizeImpact (file_name ,  limit )
73+     operation .execute (smt_model )
7274    result  =  await  get_release_by_values (operation .get_result ())
7375    return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder ({'result' : result }))
7476
@@ -79,16 +81,16 @@ async def minimize_impact(
7981) 
8082async  def  maximize_impact (
8183    network_id : str ,
82-     file_name : str ,
8384    agregator : str ,
84-     op_configs : dict [str , int ] =  {'limit' : 10 }
85+     file_name : str ,
86+     limit : int 
8587) ->  JSONResponse :
8688    dependency_network  =  await  serialize_network (network_id )
8789    smt_transform  =  NetworkToSMT (dependency_network , agregator )
8890    smt_transform .transform ()
8991    smt_model  =  smt_transform .destination_model 
90-     operation  =  MaximizeImpact (** op_configs )
91-     operation .execute (smt_model ,  file_name )
92+     operation  =  MaximizeImpact (file_name ,  limit )
93+     operation .execute (smt_model )
9294    result  =  await  get_release_by_values (operation .get_result ())
9395    return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder ({'result' : result }))
9496
@@ -99,19 +101,17 @@ async def maximize_impact(
99101) 
100102async  def  filter_configs (
101103    network_id : str ,
102-     file_name : str ,
103104    agregator : str ,
104-     op_configs : dict [str , Any ] =  {
105-         'max_threshold' : 10. ,
106-         'min_threshold' : 0. ,
107-         'limit' : 10 
108-     }
105+     file_name : str ,
106+     max_threshold : float ,
107+     min_threshold : float ,
108+     limit : int 
109109) ->  JSONResponse :
110110    dependency_network  =  await  serialize_network (network_id )
111111    smt_transform  =  NetworkToSMT (dependency_network , agregator )
112112    smt_transform .transform ()
113113    smt_model  =  smt_transform .destination_model 
114-     operation  =  FilterConfigs (** op_configs )
115-     operation .execute (smt_model ,  file_name )
114+     operation  =  FilterConfigs (file_name ,  max_threshold ,  min_threshold ,  limit )
115+     operation .execute (smt_model )
116116    result  =  await  get_release_by_values (operation .get_result ())
117117    return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder ({'result' : result }))
0 commit comments