generated from coulomb/repo-seed
Combined approved and candidate view with actions
This commit is contained in:
@@ -504,6 +504,131 @@ class RegistryStore:
|
||||
(status, repository_id, analysis_run_id),
|
||||
)
|
||||
|
||||
def mark_candidate_ability_status(
|
||||
self,
|
||||
repository_id: int,
|
||||
analysis_run_id: int,
|
||||
candidate_ability_id: int,
|
||||
status: str,
|
||||
) -> None:
|
||||
with self.connect() as connection:
|
||||
cursor = connection.execute(
|
||||
"""
|
||||
UPDATE candidate_abilities
|
||||
SET status = ?
|
||||
WHERE id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(status, candidate_ability_id, repository_id, analysis_run_id),
|
||||
)
|
||||
if cursor.rowcount == 0:
|
||||
raise NotFoundError(
|
||||
"candidate ability "
|
||||
f"{candidate_ability_id} was not found for repository "
|
||||
f"{repository_id} analysis run {analysis_run_id}"
|
||||
)
|
||||
capability_rows = connection.execute(
|
||||
"""
|
||||
SELECT id FROM candidate_capabilities
|
||||
WHERE ability_id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(candidate_ability_id, repository_id, analysis_run_id),
|
||||
).fetchall()
|
||||
capability_ids = [row["id"] for row in capability_rows]
|
||||
connection.execute(
|
||||
"""
|
||||
UPDATE candidate_capabilities
|
||||
SET status = ?
|
||||
WHERE ability_id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(status, candidate_ability_id, repository_id, analysis_run_id),
|
||||
)
|
||||
for capability_id in capability_ids:
|
||||
self._mark_candidate_children_status(
|
||||
connection,
|
||||
repository_id,
|
||||
analysis_run_id,
|
||||
capability_id,
|
||||
status,
|
||||
)
|
||||
|
||||
def mark_candidate_capability_status(
|
||||
self,
|
||||
repository_id: int,
|
||||
analysis_run_id: int,
|
||||
candidate_capability_id: int,
|
||||
status: str,
|
||||
) -> None:
|
||||
with self.connect() as connection:
|
||||
cursor = connection.execute(
|
||||
"""
|
||||
UPDATE candidate_capabilities
|
||||
SET status = ?
|
||||
WHERE id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(status, candidate_capability_id, repository_id, analysis_run_id),
|
||||
)
|
||||
if cursor.rowcount == 0:
|
||||
raise NotFoundError(
|
||||
"candidate capability "
|
||||
f"{candidate_capability_id} was not found for repository "
|
||||
f"{repository_id} analysis run {analysis_run_id}"
|
||||
)
|
||||
self._mark_candidate_children_status(
|
||||
connection,
|
||||
repository_id,
|
||||
analysis_run_id,
|
||||
candidate_capability_id,
|
||||
status,
|
||||
)
|
||||
|
||||
def mark_candidate_feature_status(
|
||||
self,
|
||||
repository_id: int,
|
||||
analysis_run_id: int,
|
||||
candidate_feature_id: int,
|
||||
status: str,
|
||||
) -> None:
|
||||
with self.connect() as connection:
|
||||
cursor = connection.execute(
|
||||
"""
|
||||
UPDATE candidate_features
|
||||
SET status = ?
|
||||
WHERE id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(status, candidate_feature_id, repository_id, analysis_run_id),
|
||||
)
|
||||
if cursor.rowcount == 0:
|
||||
raise NotFoundError(
|
||||
"candidate feature "
|
||||
f"{candidate_feature_id} was not found for repository "
|
||||
f"{repository_id} analysis run {analysis_run_id}"
|
||||
)
|
||||
|
||||
def _mark_candidate_children_status(
|
||||
self,
|
||||
connection: sqlite3.Connection,
|
||||
repository_id: int,
|
||||
analysis_run_id: int,
|
||||
candidate_capability_id: int,
|
||||
status: str,
|
||||
) -> None:
|
||||
connection.execute(
|
||||
"""
|
||||
UPDATE candidate_features
|
||||
SET status = ?
|
||||
WHERE capability_id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(status, candidate_capability_id, repository_id, analysis_run_id),
|
||||
)
|
||||
connection.execute(
|
||||
"""
|
||||
UPDATE candidate_evidence
|
||||
SET status = ?
|
||||
WHERE capability_id = ? AND repository_id = ? AND analysis_run_id = ?
|
||||
""",
|
||||
(status, candidate_capability_id, repository_id, analysis_run_id),
|
||||
)
|
||||
|
||||
def reject_candidate_ability(
|
||||
self,
|
||||
repository_id: int,
|
||||
|
||||
Reference in New Issue
Block a user