Coverage for mindsdb / api / http / namespaces / projects.py: 100%
26 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
1from http import HTTPStatus
3from flask_restx import Resource
5from mindsdb.metrics.metrics import api_endpoint_metrics
6from mindsdb.api.http.utils import http_error
7from mindsdb.api.http.namespaces.configs.projects import ns_conf
8from mindsdb.api.executor.controllers.session_controller import SessionController
9from mindsdb.utilities.exception import EntityNotExistsError
12@ns_conf.route("/")
13class ProjectsList(Resource):
14 @ns_conf.doc("list_projects")
15 @api_endpoint_metrics("GET", "/projects")
16 def get(self):
17 """List all projects"""
18 session = SessionController()
20 projects = [{"name": i} for i in session.datahub.get_projects_names()]
21 return projects
24@ns_conf.route("/<project_name>")
25class ProjectsGet(Resource):
26 @ns_conf.doc("get_project")
27 @api_endpoint_metrics("GET", "/projects/project")
28 def get(self, project_name):
29 """Gets a project by name"""
30 session = SessionController()
32 try:
33 project = session.database_controller.get_project(project_name)
34 except EntityNotExistsError:
35 return http_error(HTTPStatus.NOT_FOUND, "Project not exists", f"Project name {project_name} does not exist")
37 return {"name": project.name}