CyberArena / app /services /__init__.py
Hussien Haider
H
04fc815
Raw
History Blame Contribute Delete
2.93 kB
"""Service layer: business logic and external I/O.
Modules in this package talk to Supabase, AI providers, and the file
system. They never import from :mod:`app.api` (the routers depend on
them, not the other way around).
"""
from . import (
supabase_service,
challenge_loader,
scenario_service,
evaluator,
completion_service,
certificate_service,
file_storage,
)
from .supabase_service import (
supabase_headers,
scenario_table,
get_supabase_scenario_count,
fetch_scenario_by_id,
fetch_random_scenario_from_supabase,
delete_scenario_from_supabase,
insert_scenario_to_supabase,
)
from .challenge_loader import (
map_encryption_row_to_training,
map_code_fixing_row_to_training,
map_log_analysis_row_to_training,
map_vuln_hunter_row_to_training,
)
from .scenario_service import (
generate_scenario_from_groq,
generate_challenge_from_scenario,
generate_challenge_from_groq,
generate_and_store_scenario,
handle_background_replacement,
map_scenario_to_list_item,
attach_scenario_metadata,
)
from .evaluator import (
evaluate_training,
evaluate_code_fix,
evaluate_log_analysis,
evaluate_vuln_hunter,
ai_evaluate_code_fix,
)
from .completion_service import (
record_user_completion,
count_completions,
)
from .certificate_service import (
handle_certificates,
download_certificate_pdf,
verify_certificate,
cert_progress,
make_verify_code,
build_cert_title,
category_label,
)
from .file_storage import (
upload_challenge_file,
)
__all__ = [
# modules
"supabase_service",
"challenge_loader",
"scenario_service",
"evaluator",
"completion_service",
"certificate_service",
"file_storage",
# supabase
"supabase_headers",
"scenario_table",
"get_supabase_scenario_count",
"fetch_scenario_by_id",
"fetch_random_scenario_from_supabase",
"delete_scenario_from_supabase",
"insert_scenario_to_supabase",
# challenge_loader
"map_encryption_row_to_training",
"map_code_fixing_row_to_training",
"map_log_analysis_row_to_training",
"map_vuln_hunter_row_to_training",
# scenario_service
"generate_scenario_from_groq",
"generate_challenge_from_scenario",
"generate_challenge_from_groq",
"generate_and_store_scenario",
"handle_background_replacement",
"map_scenario_to_list_item",
"attach_scenario_metadata",
# evaluator
"evaluate_training",
"evaluate_code_fix",
"evaluate_log_analysis",
"evaluate_vuln_hunter",
"ai_evaluate_code_fix",
# completion
"record_user_completion",
"count_completions",
# certificate
"handle_certificates",
"download_certificate_pdf",
"verify_certificate",
"cert_progress",
"make_verify_code",
"build_cert_title",
"category_label",
# file_storage
"upload_challenge_file",
]