-
Notifications
You must be signed in to change notification settings - Fork 0
feat: restapi #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
⏳ I'm reviewing this pull request for security vulnerabilities and code quality issues. I'll provide an update when I'm done |
""" WalkthroughThis update introduces a comprehensive set of new REST API endpoints and schema definitions to the OpenAPI specification, enabling retrieval of sports-related entities such as associations, seasons, leagues, groups, clubs, teams, gyms, persons, and matchdays. Additionally, the search index data in the documentation assets is refreshed by replacing its encoded data string. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant API
Client->>API: GET /associations
API-->>Client: 200 OK (List of Association objects)
Client->>API: GET /leagues/{id}
API-->>Client: 200 OK (League object)
Client->>API: GET /clubs/{clubId}/teams
API-->>Client: 200 OK (List of Team objects)
Client->>API: GET /persons/{personId}
API-->>Client: 200 OK (Person object)
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
✅ I finished the code review, and didn't find any security or code quality issues. |
Signed-off-by: github-actions <github-actions@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (1)
rest.yaml (1)
253-266
: Trailing spaces & indentation warnings flood the linter.
yamllint
reports >100 issues (trailing spaces, wrong indentation, excessive blank lines).
While they don’t break the spec, they:• make diffs noisy
• slow down reviewers
• can cause CI failures if formatting checks are later enforcedRun a formatter (
prettier-plugin-yaml
,yamlfmt
, etc.) once and commit the cleaned file.Also applies to: 260-266
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/generated/rest.model.generated.ts
is excluded by!**/generated/**
📒 Files selected for processing (2)
docs/assets/search.js
(1 hunks)rest.yaml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
rest.yaml
[error] 253-253: trailing spaces
(trailing-spaces)
[error] 260-260: trailing spaces
(trailing-spaces)
[warning] 261-261: wrong indentation: expected 12 but found 14
(indentation)
[error] 299-299: trailing spaces
(trailing-spaces)
[warning] 300-300: wrong indentation: expected 12 but found 14
(indentation)
[error] 327-327: trailing spaces
(trailing-spaces)
[warning] 329-329: wrong indentation: expected 8 but found 6
(indentation)
[error] 338-338: trailing spaces
(trailing-spaces)
[warning] 339-339: wrong indentation: expected 12 but found 14
(indentation)
[warning] 349-349: wrong indentation: expected 8 but found 6
(indentation)
[error] 364-364: trailing spaces
(trailing-spaces)
[warning] 365-365: wrong indentation: expected 12 but found 14
(indentation)
[warning] 374-374: wrong indentation: expected 8 but found 6
(indentation)
[error] 383-383: trailing spaces
(trailing-spaces)
[warning] 384-384: wrong indentation: expected 12 but found 14
(indentation)
[warning] 395-395: wrong indentation: expected 8 but found 6
(indentation)
[error] 410-410: trailing spaces
(trailing-spaces)
[error] 413-413: trailing spaces
(trailing-spaces)
[warning] 420-420: wrong indentation: expected 8 but found 6
(indentation)
[error] 423-423: trailing spaces
(trailing-spaces)
[warning] 447-447: wrong indentation: expected 8 but found 6
(indentation)
[error] 450-450: trailing spaces
(trailing-spaces)
[error] 480-480: trailing spaces
(trailing-spaces)
[error] 486-486: trailing spaces
(trailing-spaces)
[error] 495-495: trailing spaces
(trailing-spaces)
[warning] 504-504: wrong indentation: expected 16 but found 18
(indentation)
[error] 514-514: trailing spaces
(trailing-spaces)
[error] 526-526: trailing spaces
(trailing-spaces)
[error] 527-527: trailing spaces
(trailing-spaces)
[error] 548-548: trailing spaces
(trailing-spaces)
[error] 569-569: trailing spaces
(trailing-spaces)
[error] 591-591: trailing spaces
(trailing-spaces)
[warning] 650-650: too many spaces after colon
(colons)
[error] 655-655: trailing spaces
(trailing-spaces)
[error] 666-666: trailing spaces
(trailing-spaces)
[error] 685-685: trailing spaces
(trailing-spaces)
[warning] 689-689: wrong indentation: expected 6 but found 5
(indentation)
[warning] 692-692: wrong indentation: expected 7 but found 8
(indentation)
[error] 699-699: trailing spaces
(trailing-spaces)
[warning] 702-702: wrong indentation: expected 4 but found 5
(indentation)
[warning] 703-703: wrong indentation: expected 7 but found 6
(indentation)
[error] 718-718: trailing spaces
(trailing-spaces)
[warning] 721-721: wrong indentation: expected 4 but found 5
(indentation)
[warning] 722-722: wrong indentation: expected 7 but found 6
(indentation)
[error] 764-764: trailing spaces
(trailing-spaces)
[error] 765-765: trailing spaces
(trailing-spaces)
[warning] 767-767: wrong indentation: expected 4 but found 5
(indentation)
[warning] 768-768: wrong indentation: expected 7 but found 6
(indentation)
[error] 784-784: trailing spaces
(trailing-spaces)
[warning] 789-789: too many blank lines
(5 > 2) (empty-lines)
[error] 790-790: trailing spaces
(trailing-spaces)
[warning] 793-793: too many blank lines
(3 > 2) (empty-lines)
[error] 802-802: trailing spaces
(trailing-spaces)
[error] 804-804: trailing spaces
(trailing-spaces)
[error] 806-806: trailing spaces
(trailing-spaces)
[error] 808-808: trailing spaces
(trailing-spaces)
[error] 815-815: trailing spaces
(trailing-spaces)
[error] 818-818: trailing spaces
(trailing-spaces)
[error] 821-821: trailing spaces
(trailing-spaces)
[error] 823-823: trailing spaces
(trailing-spaces)
[error] 825-825: trailing spaces
(trailing-spaces)
[error] 827-827: trailing spaces
(trailing-spaces)
[error] 830-830: trailing spaces
(trailing-spaces)
[error] 832-832: trailing spaces
(trailing-spaces)
[error] 834-834: trailing spaces
(trailing-spaces)
[error] 838-838: trailing spaces
(trailing-spaces)
[error] 849-849: trailing spaces
(trailing-spaces)
[error] 852-852: trailing spaces
(trailing-spaces)
[error] 854-854: trailing spaces
(trailing-spaces)
[error] 856-856: trailing spaces
(trailing-spaces)
[error] 859-859: trailing spaces
(trailing-spaces)
[error] 861-861: trailing spaces
(trailing-spaces)
[error] 863-863: trailing spaces
(trailing-spaces)
[error] 866-866: trailing spaces
(trailing-spaces)
[error] 869-869: trailing spaces
(trailing-spaces)
[error] 871-871: trailing spaces
(trailing-spaces)
[error] 874-874: trailing spaces
(trailing-spaces)
[error] 876-876: trailing spaces
(trailing-spaces)
[error] 882-882: trailing spaces
(trailing-spaces)
[error] 884-884: trailing spaces
(trailing-spaces)
[error] 885-885: trailing spaces
(trailing-spaces)
[error] 894-894: trailing spaces
(trailing-spaces)
[error] 896-896: trailing spaces
(trailing-spaces)
[error] 899-899: trailing spaces
(trailing-spaces)
[error] 904-904: trailing spaces
(trailing-spaces)
[error] 908-908: trailing spaces
(trailing-spaces)
[error] 910-910: trailing spaces
(trailing-spaces)
[error] 912-912: trailing spaces
(trailing-spaces)
[error] 928-928: trailing spaces
(trailing-spaces)
[error] 931-931: trailing spaces
(trailing-spaces)
[error] 933-933: trailing spaces
(trailing-spaces)
[error] 935-935: trailing spaces
(trailing-spaces)
[error] 939-939: trailing spaces
(trailing-spaces)
[error] 941-941: trailing spaces
(trailing-spaces)
[error] 943-943: trailing spaces
(trailing-spaces)
[error] 945-945: trailing spaces
(trailing-spaces)
[error] 947-947: trailing spaces
(trailing-spaces)
[error] 949-949: trailing spaces
(trailing-spaces)
[error] 960-960: trailing spaces
(trailing-spaces)
[error] 962-962: trailing spaces
(trailing-spaces)
[error] 965-965: trailing spaces
(trailing-spaces)
[error] 968-968: trailing spaces
(trailing-spaces)
[error] 971-971: trailing spaces
(trailing-spaces)
[error] 974-974: trailing spaces
(trailing-spaces)
[error] 989-989: trailing spaces
(trailing-spaces)
[error] 992-992: trailing spaces
(trailing-spaces)
[error] 994-994: trailing spaces
(trailing-spaces)
[error] 996-996: trailing spaces
(trailing-spaces)
[error] 998-998: trailing spaces
(trailing-spaces)
[error] 1002-1002: trailing spaces
(trailing-spaces)
[error] 1004-1004: trailing spaces
(trailing-spaces)
[error] 1006-1006: trailing spaces
(trailing-spaces)
[error] 1008-1008: trailing spaces
(trailing-spaces)
[error] 1010-1010: trailing spaces
(trailing-spaces)
[error] 1020-1020: trailing spaces
(trailing-spaces)
[error] 1023-1023: trailing spaces
(trailing-spaces)
[error] 1025-1025: trailing spaces
(trailing-spaces)
[error] 1027-1027: trailing spaces
(trailing-spaces)
[error] 1029-1029: trailing spaces
(trailing-spaces)
[error] 1031-1031: trailing spaces
(trailing-spaces)
[error] 1033-1033: trailing spaces
(trailing-spaces)
[error] 1037-1037: trailing spaces
(trailing-spaces)
[error] 1050-1050: trailing spaces
(trailing-spaces)
[error] 1051-1051: trailing spaces
(trailing-spaces)
[error] 1079-1079: trailing spaces
(trailing-spaces)
[error] 1090-1090: trailing spaces
(trailing-spaces)
[error] 1093-1093: trailing spaces
(trailing-spaces)
[warning] 1105-1105: wrong indentation: expected 8 but found 7
(indentation)
[error] 1110-1110: trailing spaces
(trailing-spaces)
[error] 1133-1133: trailing spaces
(trailing-spaces)
[error] 1137-1137: trailing spaces
(trailing-spaces)
[error] 1169-1169: trailing spaces
(trailing-spaces)
[error] 1175-1175: trailing spaces
(trailing-spaces)
🔇 Additional comments (1)
docs/assets/search.js (1)
1-1
: Blob only update acknowledged.File contains a single assignment with a regenerated search index. No code issues detected.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: github-actions <github-actions@github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: github-actions <github-actions@github.com>
Signed-off-by: github-actions <github-actions@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/generated/rest.model.generated.ts
is excluded by!**/generated/**
📒 Files selected for processing (1)
rest.yaml
(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
rest.yaml
[error] 253-253: trailing spaces
(trailing-spaces)
[error] 260-260: trailing spaces
(trailing-spaces)
[warning] 261-261: wrong indentation: expected 12 but found 14
(indentation)
[error] 299-299: trailing spaces
(trailing-spaces)
[warning] 300-300: wrong indentation: expected 12 but found 14
(indentation)
[error] 327-327: trailing spaces
(trailing-spaces)
[warning] 329-329: wrong indentation: expected 8 but found 6
(indentation)
[error] 338-338: trailing spaces
(trailing-spaces)
[warning] 339-339: wrong indentation: expected 12 but found 14
(indentation)
[warning] 349-349: wrong indentation: expected 8 but found 6
(indentation)
[error] 364-364: trailing spaces
(trailing-spaces)
[warning] 365-365: wrong indentation: expected 12 but found 14
(indentation)
[warning] 374-374: wrong indentation: expected 8 but found 6
(indentation)
[error] 383-383: trailing spaces
(trailing-spaces)
[warning] 384-384: wrong indentation: expected 12 but found 14
(indentation)
[warning] 395-395: wrong indentation: expected 8 but found 6
(indentation)
[error] 410-410: trailing spaces
(trailing-spaces)
[error] 413-413: trailing spaces
(trailing-spaces)
[warning] 420-420: wrong indentation: expected 8 but found 6
(indentation)
[error] 423-423: trailing spaces
(trailing-spaces)
[warning] 447-447: wrong indentation: expected 8 but found 6
(indentation)
[error] 450-450: trailing spaces
(trailing-spaces)
[error] 480-480: trailing spaces
(trailing-spaces)
[error] 486-486: trailing spaces
(trailing-spaces)
[error] 495-495: trailing spaces
(trailing-spaces)
[warning] 504-504: wrong indentation: expected 16 but found 18
(indentation)
[error] 526-526: trailing spaces
(trailing-spaces)
[error] 547-547: trailing spaces
(trailing-spaces)
[error] 568-568: trailing spaces
(trailing-spaces)
[error] 590-590: trailing spaces
(trailing-spaces)
[warning] 649-649: too many spaces after colon
(colons)
[error] 654-654: trailing spaces
(trailing-spaces)
[error] 665-665: trailing spaces
(trailing-spaces)
[error] 684-684: trailing spaces
(trailing-spaces)
[warning] 688-688: wrong indentation: expected 6 but found 5
(indentation)
[warning] 691-691: wrong indentation: expected 7 but found 8
(indentation)
[error] 698-698: trailing spaces
(trailing-spaces)
[warning] 701-701: wrong indentation: expected 4 but found 5
(indentation)
[warning] 702-702: wrong indentation: expected 7 but found 6
(indentation)
[error] 717-717: trailing spaces
(trailing-spaces)
[warning] 720-720: wrong indentation: expected 4 but found 5
(indentation)
[warning] 721-721: wrong indentation: expected 7 but found 6
(indentation)
[error] 763-763: trailing spaces
(trailing-spaces)
[error] 764-764: trailing spaces
(trailing-spaces)
[warning] 766-766: wrong indentation: expected 4 but found 5
(indentation)
[warning] 767-767: wrong indentation: expected 7 but found 6
(indentation)
[error] 783-783: trailing spaces
(trailing-spaces)
[warning] 788-788: too many blank lines
(5 > 2) (empty-lines)
[error] 789-789: trailing spaces
(trailing-spaces)
[warning] 792-792: too many blank lines
(3 > 2) (empty-lines)
[error] 801-801: trailing spaces
(trailing-spaces)
[error] 803-803: trailing spaces
(trailing-spaces)
[error] 805-805: trailing spaces
(trailing-spaces)
[error] 807-807: trailing spaces
(trailing-spaces)
[error] 814-814: trailing spaces
(trailing-spaces)
[error] 817-817: trailing spaces
(trailing-spaces)
[error] 820-820: trailing spaces
(trailing-spaces)
[error] 822-822: trailing spaces
(trailing-spaces)
[error] 824-824: trailing spaces
(trailing-spaces)
[error] 829-829: trailing spaces
(trailing-spaces)
[error] 831-831: trailing spaces
(trailing-spaces)
[error] 833-833: trailing spaces
(trailing-spaces)
[error] 837-837: trailing spaces
(trailing-spaces)
[error] 848-848: trailing spaces
(trailing-spaces)
[error] 851-851: trailing spaces
(trailing-spaces)
[error] 853-853: trailing spaces
(trailing-spaces)
[error] 855-855: trailing spaces
(trailing-spaces)
[error] 858-858: trailing spaces
(trailing-spaces)
[error] 860-860: trailing spaces
(trailing-spaces)
[error] 862-862: trailing spaces
(trailing-spaces)
[error] 865-865: trailing spaces
(trailing-spaces)
[error] 868-868: trailing spaces
(trailing-spaces)
[error] 870-870: trailing spaces
(trailing-spaces)
[error] 873-873: trailing spaces
(trailing-spaces)
[error] 875-875: trailing spaces
(trailing-spaces)
[error] 881-881: trailing spaces
(trailing-spaces)
[error] 883-883: trailing spaces
(trailing-spaces)
[error] 884-884: trailing spaces
(trailing-spaces)
[error] 893-893: trailing spaces
(trailing-spaces)
[error] 895-895: trailing spaces
(trailing-spaces)
[error] 898-898: trailing spaces
(trailing-spaces)
[error] 903-903: trailing spaces
(trailing-spaces)
[error] 907-907: trailing spaces
(trailing-spaces)
[error] 909-909: trailing spaces
(trailing-spaces)
[error] 911-911: trailing spaces
(trailing-spaces)
[error] 927-927: trailing spaces
(trailing-spaces)
[error] 930-930: trailing spaces
(trailing-spaces)
[error] 932-932: trailing spaces
(trailing-spaces)
[error] 934-934: trailing spaces
(trailing-spaces)
[error] 938-938: trailing spaces
(trailing-spaces)
[error] 940-940: trailing spaces
(trailing-spaces)
[error] 942-942: trailing spaces
(trailing-spaces)
[error] 944-944: trailing spaces
(trailing-spaces)
[error] 946-946: trailing spaces
(trailing-spaces)
[error] 948-948: trailing spaces
(trailing-spaces)
[error] 959-959: trailing spaces
(trailing-spaces)
[error] 961-961: trailing spaces
(trailing-spaces)
[error] 964-964: trailing spaces
(trailing-spaces)
[error] 967-967: trailing spaces
(trailing-spaces)
[error] 970-970: trailing spaces
(trailing-spaces)
[error] 988-988: trailing spaces
(trailing-spaces)
[error] 991-991: trailing spaces
(trailing-spaces)
[error] 993-993: trailing spaces
(trailing-spaces)
[error] 995-995: trailing spaces
(trailing-spaces)
[error] 997-997: trailing spaces
(trailing-spaces)
[error] 1001-1001: trailing spaces
(trailing-spaces)
[error] 1003-1003: trailing spaces
(trailing-spaces)
[error] 1005-1005: trailing spaces
(trailing-spaces)
[error] 1007-1007: trailing spaces
(trailing-spaces)
[error] 1009-1009: trailing spaces
(trailing-spaces)
[error] 1019-1019: trailing spaces
(trailing-spaces)
[error] 1022-1022: trailing spaces
(trailing-spaces)
[error] 1024-1024: trailing spaces
(trailing-spaces)
[error] 1026-1026: trailing spaces
(trailing-spaces)
[error] 1028-1028: trailing spaces
(trailing-spaces)
[error] 1030-1030: trailing spaces
(trailing-spaces)
[error] 1032-1032: trailing spaces
(trailing-spaces)
[error] 1036-1036: trailing spaces
(trailing-spaces)
[error] 1049-1049: trailing spaces
(trailing-spaces)
[error] 1050-1050: trailing spaces
(trailing-spaces)
[error] 1078-1078: trailing spaces
(trailing-spaces)
[error] 1089-1089: trailing spaces
(trailing-spaces)
[error] 1092-1092: trailing spaces
(trailing-spaces)
[warning] 1104-1104: wrong indentation: expected 8 but found 7
(indentation)
[error] 1109-1109: trailing spaces
(trailing-spaces)
[error] 1132-1132: trailing spaces
(trailing-spaces)
[error] 1136-1136: trailing spaces
(trailing-spaces)
[error] 1168-1168: trailing spaces
(trailing-spaces)
[error] 1174-1174: trailing spaces
(trailing-spaces)
🔇 Additional comments (1)
rest.yaml (1)
970-975
: Self-reference issue fixed – great catch
Season.association
now correctly referencesAssociation
, removing the infinite-loop problem flagged earlier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (2)
rest.yaml (2)
888-890
: Use the standarduri
format for URLsOpenAPI recognises
uri
, noturl
. Keeping the non-standard value drops client-side validation support.- website: - type: "string" - format: "url" + website: + type: "string" + format: "uri"
1058-1063
: Plural fields declared as single objects – array wrapper missing
teams
,games
, andcommissioners
are plural but reference a single object, recreating the modeling bug noted earlier. Code generators will emit the wrong types.- teams: - $ref: "#/components/schemas/MatchDayTeam" + teams: + type: "array" + items: + $ref: "#/components/schemas/MatchDayTeam" - games: - $ref: "#/components/schemas/Game" + games: + type: "array" + items: + $ref: "#/components/schemas/Game" - commissioners: - $ref: "#/components/schemas/RefereeInfo" + commissioners: + type: "array" + items: + $ref: "#/components/schemas/RefereeInfo"Remember to keep these three keys in the
required
list.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: github-actions <github-actions@github.com>
Signed-off-by: github-actions <github-actions@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
rest.yaml (1)
1062-1067
: Still unresolved:MatchDay
plural fields are defined as single objects
teams
,games
, andcommissioners
are plural by name and business meaning but are still declared as singular$ref
objects. Most generators will produce non-iterable properties, breaking client code.- teams: - $ref: "#/components/schemas/MatchDayTeam" - games: - $ref: "#/components/schemas/Game" - commissioners: - $ref: "#/components/schemas/RefereeInfo" + teams: + type: array + items: + $ref: "#/components/schemas/MatchDayTeam" + games: + type: array + items: + $ref: "#/components/schemas/Game" + commissioners: + type: array + items: + $ref: "#/components/schemas/RefereeInfo"Remember to adjust the
required
list accordingly (teams
,games
,commissioners
).
🧹 Nitpick comments (2)
rest.yaml (2)
284-296
: Path design is non-RESTful and hampers cacheability
/seasons?associationId=...
mixes collection context (seasons) with filtering by another resource (association). A hierarchical path communicates intent better and avoids query-param proliferation:
/associations/{associationId}/seasons
Consider introducing this nested path and deprecating the query version.
851-852
: Add explicit enum forPerson.gender
Currently
gender
is an unconstrained string. Down-stream systems will benefit from a fixed vocabulary:- gender: - type: "string" + gender: + type: "string" + enum: ["männlich", "weiblich", "divers"]
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/generated/rest.model.generated.ts
is excluded by!**/generated/**
📒 Files selected for processing (1)
rest.yaml
(15 hunks)
🔇 Additional comments (1)
rest.yaml (1)
958-975
:registrationStart
is optional but probably should be required
registrationEnd
is in therequired
list whileregistrationStart
is not. Double-check business rules; missing a start date may yield ambiguous registration windows.
Signed-off-by: github-actions <github-actions@github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (2)
rest.yaml (2)
1021-1023
:LeagueGroup.number
should beinteger
notnumber
Ordinal identifiers rarely require floating-point precision.
- number: - type: "number" + number: + type: "integer"
1-1175
: Minor consistency nit – mixed quoting & scalar stylesThe file alternates between quoted (
"uuid"
) and bare scalars (uuid
) for identical
values. Pick one style to avoid noisy diffs in future.
No functional impact.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/generated/rest.model.generated.ts
is excluded by!**/generated/**
📒 Files selected for processing (1)
rest.yaml
(15 hunks)
🔇 Additional comments (2)
rest.yaml (2)
1161-1168
:chiefReferee
should be required
RefereeInfo
listsadditionalReferees
as required but leaveschiefReferee
optional,
which feels backwards – a match without a chief referee is unusual.required: - - additionalReferees + - chiefReferee + - additionalReferees
964-966
: ✅ Self-reference fixed – good catch
Season.association
now correctly referencesAssociation
; the infinite recursion issue
raised earlier is resolved.
- name: "associationId" | ||
in: "query" | ||
required: true | ||
schema: | ||
type: "string" | ||
format: "uuid" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Redundant associationId
query parameter – consider dropping it
/leagues/{id}
already uniquely identifies a league. For read-only endpoints an additional
mandatory associationId
in the query string:
- adds no information,
- prevents efficient HTTP caching (path + query string differ),
- complicates client usage.
Unless you have a compelling security/partitioning reason, remove the extra parameter.
🤖 Prompt for AI Agents
In rest.yaml around lines 355 to 360, the query parameter "associationId" is
redundant for the /leagues/{id} endpoint since the path parameter already
uniquely identifies the league. Remove the entire "associationId" query
parameter block including its name, location, requirement, and schema to
simplify the API, improve caching efficiency, and reduce client complexity.
uciCode: | ||
type: "string" | ||
format: "uuid" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UCI code is not a UUID – wrong format
will break validation
A UCI-ID is a numeric string (usually 11 digits) and not a RFC-4122 UUID.
Clients generated from this spec will therefore reject perfectly valid data.
- uciCode:
- type: "string"
- format: "uuid"
+ uciCode:
+ type: "string"
+ pattern: '^\d{1,20}$' # adjust length if necessary
🤖 Prompt for AI Agents
In rest.yaml around lines 855 to 857, the uciCode field is incorrectly marked
with the format "uuid", which will cause validation errors because UCI codes are
numeric strings, not UUIDs. Remove the "format: uuid" line and instead specify
the type as "string" with a pattern or length constraint that matches the
numeric string format of UCI codes, such as a regex pattern for digits or a
maxLength of 11.
gameNumber: | ||
type: number | ||
team1: | ||
$ref: "#/components/schemas/MatchDayTeam" | ||
team2: | ||
$ref: "#/components/schemas/MatchDayTeam" | ||
halftimeGoalsTeam1: | ||
type: number | ||
halftimeGoalsTeam2: | ||
type: number | ||
finalGoalsTeam1: | ||
type: number | ||
finalGoalsTeam2: | ||
type: number |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Goal & point counters should be integers
All scoring fields (halftimeGoals*
, finalGoals*
, points*
) are counts and should be
declared as integer
to avoid IEEE-754 quirks in some generators.
- halftimeGoalsTeam1:
- type: number
+ halftimeGoalsTeam1:
+ type: integer
# replicate for all six numeric fields
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In rest.yaml around lines 1131 to 1144, the scoring fields halftimeGoalsTeam1,
halftimeGoalsTeam2, finalGoalsTeam1, and finalGoalsTeam2 are currently typed as
number, which can cause precision issues. Change their type from number to
integer to correctly represent these count values and avoid IEEE-754 floating
point quirks in code generators.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
rest.yaml (2)
324-335
: Rename operationId for consistency (“League” → “Leagues”).
operationId: getListOfLeagueInSeason
is the only list endpoint that keeps the resource name singular.
Every other list endpoint uses the plural (getListOfClubs
,getListOfTeamsByLeague
, …). The mismatch is tiny but becomes annoying in generated SDKs.- operationId: getListOfLeagueInSeason + operationId: getListOfLeaguesInSeason
345-361
: Re-evaluate mandatoryassociationId
query parameter – it is redundant.
/leagues/{id}
already uniquely identifies a league. Requiring an additionalassociationId
:
- Bloats every client call with an unused value.
- Introduces risk of conflicting data (
leagueId
from one association,associationId
from another).Unless you have a multi-tenant security constraint that truly needs it, drop the extra parameter:
- - name: "associationId" - in: "query" - required: true - schema: - type: "string" - format: "uuid"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/generated/rest.model.generated.ts
is excluded by!**/generated/**
📒 Files selected for processing (1)
rest.yaml
(15 hunks)
🔇 Additional comments (1)
rest.yaml (1)
783-914
: Kudos – prior review issues are fully addressed.Great to see:
• Self-reference loop in
Season.association
fixed
•Club.website
&Association.website
now useuri
• Arrays (Team.players
,MatchDay.teams/games/commissioners
) correctly typed
• Missingtype: object
added across schemasThis iteration cleans up validation errors flagged earlier.
type: "string" | ||
dateOfBirth: | ||
type: "string" | ||
format: "date" | ||
uciCode: | ||
type: "string" | ||
format: "uuid" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Person.uciCode
is not a UUID – wrong format hampers validation.
UCI codes are 11-digit numeric identifiers (e.g. 10012345678
). Declaring them as format: uuid
causes schema validators to reject perfectly valid codes and misleads generated clients.
- uciCode:
- type: "string"
- format: "uuid"
+ uciCode:
+ type: "string"
+ pattern: "^[0-9]{11}$"
+ description: "11-digit UCI rider code"
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
type: "string" | |
dateOfBirth: | |
type: "string" | |
format: "date" | |
uciCode: | |
type: "string" | |
format: "uuid" | |
dateOfBirth: | |
type: "string" | |
format: "date" | |
uciCode: | |
type: "string" | |
pattern: "^[0-9]{11}$" | |
description: "11-digit UCI rider code" |
🤖 Prompt for AI Agents
In rest.yaml around lines 851 to 857, the uciCode field is incorrectly declared
with format "uuid" which causes validation errors because UCI codes are 11-digit
numeric strings, not UUIDs. Remove the format "uuid" from uciCode and ensure its
type remains "string" without any format to correctly represent the UCI code and
allow proper validation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
hinzufügen von Lesezugriffen auf das Datenmodell
Summary by CodeRabbit