Référence des utils serveur BrainCloud
Carte générale
| Fichier/dossier | Responsabilité |
|---|---|
utils.js | Helpers transversaux, UIDs, calculs simples, copie/merge, équipes/étudiants, rôles, CRC, logging. |
utils_documents.js | Lecture, query, création, sauvegarde, suppression, increments et versioning des Custom Entities. |
utils_message.js | Envoi de messages RTT à user/team/sim/activity et messages spécialisés. |
utils_eval.js | Stubs et scores d'évaluation communs. |
utils_rankings.js | Scores, tops et mise à jour des rankings. |
utils_RNG.js | Random déterministe utilisé par la génération serveur. |
utils_redis.js | Helpers d'accès Redis lorsque la feature l'utilise. |
utils_game_specific_base.js | Base des utils game-specific et accès aux static data/chunks. |
utils_by_module.js | Charge/initialise le socle By Module. |
utils_by_year.js | Cycle annuel, jobs, bots et transitions By Year. |
by_module/ | Moteurs Accounting : création data, bills, answer key, grading, results, inventory. |
command/ | Implémentations réutilisables appelées par les wrappers command. |
factory/ | Sélection game-specific des utils, évaluations et générateurs de résultats. |
version/ | Migrations par type de document. |
utils.js — fonctions structurantes
Parmi les helpers importants : getTeamActUid, getActUid, dates/mois/années, deleteTeam, getDisplayName, getActEvalTeamData, getTeamDecisionsData, getTeamsOfActivity, getStudentsOfActivity, hasRole, getUserUid, mergeObjects, copyOf/deepCopyOf, logging Discord et validation CRC avant sauvegarde équipe.
command/
utils_create_activity.js: logique partagée de création d'activité;utils_create_team.js: création/initialisation d'équipe;utils_custom_command_by_module.js: routeur By Module;utils_custom_command_by_year.js: routeur By Year;utils_join_simulation.js: logique de join simulation;utils_reopen_module.js: rollback/réouverture By Module;utils_reopen_year.js: rollback/réouverture By Year;utils_start_next_activity.js: transition d'activité.
factory/
utils_factory_game_specific_utils.js: instancieutilsByGameUid;utils_factory_generate_results.js: moteur de résultats par jeu;utils_factory_eval.js: moteur d'évaluation par jeu.
Principe de placement
Un wrapper sous _command doit rester mince. Dès qu'une logique est partagée entre plusieurs entrées, elle doit être placée dans _utils ou dans la famille métier adéquate. Les règles propres à ENT1/MK1/etc. restent dans leurs dossiers game-specific.
No comments to display
No comments to display