66from  fastapi .responses  import  JSONResponse 
77from  app .services  import  (
88    create_repository ,
9-     read_graph_by_repository_id ,
9+     read_graphs_by_owner_name_for_sigma ,
1010    read_repositories ,
1111    read_repositories_moment ,
1212    read_requirement_files_by_repository ,
2727router  =  APIRouter ()
2828
2929@router .get ( 
30-     '/graph/{repository_id }' , 
31-     summary = 'Get a  graph by a repository id ' , 
30+     '/graph/{owner}/{name }' , 
31+     summary = 'Get each package manager  graph by the owner and name of  a repository' , 
3232    response_description = 'Return a graph'  
3333) 
34- async  def  get_graph ( repository_id : str ) ->  JSONResponse :
34+ async  def  get_graphs ( owner :  str ,  name : str ) ->  JSONResponse :
3535    ''' 
36-     Return a graph by a given repository id. If attribute is_complete is True 
37-     the graph is wholly built: 
36+     Get each package manager graph by the owner and name of a repository: 
3837
39-     - **repository_id**: the id of a repository 
38+     - **owner**: the owner of a repository 
39+     - **name**: the name of a repository 
4040    ''' 
41-     graph  =  await  read_graph_by_repository_id (repository_id , '_' )
42-     return  JSONResponse (status_code = status .HTTP_200_OK , content = graph )
41+     # TODO: Hacer un servicio que devuelva todos los grafos por owner y name para mostrarlos en el FrontEnd 
42+     # TODO: Añadir a Neo4J owner y name como un índice 
43+     # TODO: Cambiar en los servicios la palabra relationships por edges 
44+     graphs  =  await  read_graphs_by_owner_name_for_sigma (owner , name )
45+     return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder (graphs ))
4346
4447
4548@router .post ( 
@@ -69,6 +72,9 @@ async def init_graph(repository: RepositoryModel) -> JSONResponse:
6972                    await  update_repository_is_complete (repository_id , False , package_manager )
7073                    await  replace_repository (raw_requirement_files , repository_id , package_manager )
7174                await  update_repository_is_complete (repository_id , True , package_manager )
75+         else :
76+             # TODO: Devolver el grafo actual de la misma forma que en get_graphs 
77+             pass 
7278    return  JSONResponse (status_code = status .HTTP_200_OK , content = json_encoder ({'message' : 'initializing' }))
7379
7480
@@ -114,7 +120,7 @@ async def select_manager(package_manager: str, name: str, file: dict[str, Any],
114120    match  package_manager :
115121        case  'PIP' :
116122            await  pip_extract_graph (name , file , repository_id )
117-         #  case 'NPM':
118-         #       await npm_extract_graph(name, file, repository_json , repository_id)
119-         #  case 'MVN':
120-         #       await mvn_extract_graph(name, file, repository_json , repository_id)
123+         case  'NPM' :
124+             await  npm_extract_graph (name , file , repository_id )
125+         case  'MVN' :
126+             await  mvn_extract_graph (name , file , repository_id )
0 commit comments