Files
MyClub/diagrams/frontend-api-map.mmd
T
Tomas Dvorak c941313fd5 dev day #92
2025-11-14 15:53:12 +01:00

109 lines
3.4 KiB
Plaintext

%%{init: {
'theme': 'forest',
'flowchart': { 'curve': 'linear' },
'themeCSS': '.edgePath path { stroke-dasharray: 6 4; animation: dash 16s linear infinite; } @keyframes dash { to { stroke-dashoffset: -1000; } }'
}}%%
flowchart LR
classDef svc fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e;
classDef admin fill:#dcfce7,stroke:#16a34a,color:#065f46;
classDef pub fill:#f1f5f9,stroke:#334155,color:#0f172a;
classDef core fill:#ede9fe,stroke:#7c3aed,color:#4c1d95;
api_core["services/api.ts (Axios core)"]:::core
subgraph Services
direction TB
s_settings[settings.ts]:::svc
s_page_elements[pageElements.ts]:::svc
s_articles[articles.ts]:::svc
s_players[players.ts]:::svc
s_sponsors[sponsors.ts]:::svc
s_banners[banners.ts]:::svc
s_comp_alias[competitionAliases.ts]:::svc
s_events[eventService.ts]:::svc
s_setup[setup.ts]:::svc
s_engagement[engagement.ts]:::svc
s_action[actionLog.ts]:::svc
s_facr[facr/facrApi.ts]:::svc
s_files[files.ts]:::svc
s_image[imageProcessing.ts]:::svc
s_shortlinks[shortlinks.ts]:::svc
s_scoreboard[scoreboard.ts]:::svc
s_youtube[youtube.ts]:::svc
s_zonerama[zonerama.ts]:::svc
s_errors[errors.ts]:::svc
s_contactInfo[contactInfo.ts]:::svc
s_public[public.ts]:::svc
s_editor[editorController.ts]:::svc
end
subgraph AdminAPIs
direction TB
s_admin_comments[admin/comments.ts]:::admin
s_admin_msgs[admin/contactMessages.ts]:::admin
s_admin_eng[admin/engagement.ts]:::admin
s_admin_news[admin/newsletter.ts]:::admin
s_admin_prefetch[admin/prefetch.ts]:::admin
s_admin_matches[adminMatches.ts]:::admin
end
api_core --> Services
api_core --> AdminAPIs
subgraph PublicEndpoints["Representative public endpoints"]
direction TB
e_articles["/articles, /articles/slug/:slug, /articles/:id"]:::pub
e_featured["/articles/featured"]:::pub
e_players["/players, /players/:id"]:::pub
e_teams["/teams, /teams/:id"]:::pub
e_scores["/matches, /standings, /matches/history"]:::pub
e_gallery["/gallery/albums, /gallery/albums/:id"]:::pub
e_youtube["/youtube/videos"]:::pub
e_settings["/settings"]:::pub
e_scoreboard_pub["/scoreboard, /scoreboard/sponsors, /scoreboard/qr"]:::pub
e_contact["/contact"]:::pub
e_short_pub["/shortlinks/public"]:::pub
e_polls["/polls, /polls/:id, /polls/:id/vote, /polls/:id/results"]:::pub
end
%% Map key services to endpoints
s_articles --> e_articles
s_articles --> e_featured
s_players --> e_players
s_settings --> e_settings
s_page_elements --> e_settings
s_comp_alias --> e_scores
s_events --> e_scores
s_zonerama --> e_gallery
s_youtube --> e_youtube
s_scoreboard --> e_scoreboard_pub
s_contactInfo --> e_contact
s_shortlinks --> e_short_pub
s_public --> e_settings
subgraph AdminEndpoints["Representative admin endpoints"]
direction TB
a_settings["/admin/settings"]:::admin
a_files["/admin/files"]:::admin
a_nav["/admin/navigation, /admin/social-links"]:::admin
a_comments["/admin/comments"]:::admin
a_msgs["/admin/contact-messages"]:::admin
a_news["/admin/newsletter"]:::admin
a_matches["/admin/matches"]:::admin
a_sweep["/admin/sweepstakes"]:::admin
a_scoreboard["/admin/scoreboard"]:::admin
a_shortlinks["/admin/shortlinks"]:::admin
end
s_admin_comments --> a_comments
s_admin_msgs --> a_msgs
s_admin_eng --> a_settings
s_admin_news --> a_news
s_admin_prefetch --> a_settings
s_admin_matches --> a_matches
s_files --> a_files
s_navigation[navigation.ts]:::svc --> a_nav
s_shortlinks --> a_shortlinks
s_scoreboard --> a_scoreboard