Skip to content
Snippets Groups Projects
Verified Commit dc35e3d8 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

feat: add example requests & responses for create schedule view

parent 7d1d94a8
No related branches found
No related tags found
No related merge requests found
Pipeline #8497 passed
......@@ -771,10 +771,74 @@ class APIRRuleViewSet(viewsets.ModelViewSet):
@extend_schema_view(
create=extend_schema(
examples=[
OpenApiExample(
"Request to create a new schedule",
request_only=True,
value={
"schedule": {
"endTime": "09:00:00",
"startTime": "08:00:00",
"rruleId": 1,
"showId": 10,
"firstDate": "2024-08-12",
}
},
),
OpenApiExample(
"Request to simulate the creation of a new schedule",
request_only=True,
value={
"schedule": {
"endTime": "09:00:00",
"dryrun": True,
"startTime": "08:00:00",
"rruleId": 1,
"showId": 10,
"firstDate": "2024-08-12",
}
},
),
OpenApiExample(
"Request to create a new schedule and solve a collision",
request_only=True,
value={
"schedule": {
"endTime": "09:00:00",
"dryrun": True,
"startTime": "08:00:00",
"rruleId": 1,
"showId": 10,
"firstDate": "2024-08-12",
},
"solutions": {"2024081211000004002024081212000004001": "ours"},
},
),
],
summary="Create a new schedule.",
request=ScheduleCreateUpdateRequestSerializer,
responses={
status.HTTP_201_CREATED: OpenApiResponse(
examples=[
OpenApiExample(
"Successful creation if a new schedule",
response_only=True,
value={
"addBusinessDaysOnly": False,
"addDaysNo": None,
"byWeekday": None,
"defaultPlaylistId": None,
"endTime": "09:00:00",
"firstDate": "2024-08-12",
"id": 11,
"isRepetition": False,
"lastDate": None,
"rruleId": 1,
"showId": 10,
"startTime": "08:00:00",
},
)
],
response=ScheduleResponseSerializer,
description=(
"Signals the successful creation of the schedule and of the projected "
......@@ -782,6 +846,29 @@ class APIRRuleViewSet(viewsets.ModelViewSet):
),
),
status.HTTP_202_ACCEPTED: OpenApiResponse(
examples=[
OpenApiExample(
"Simulated creation of a new schedule",
response_only=True,
value={
"create": [
{
"end": "2024-08-12T09:00:00-04:00",
"id": None,
"memo": "",
"noteId": None,
"playlistId": None,
"repetitionOfId": None,
"scheduleId": None,
"showId": 10,
"start": "2024-08-12T08:00:00-04:00",
}
],
"delete": [],
"update": [],
},
)
],
response=ScheduleDryRunResponseSerializer,
description=(
"Returns the list of timeslots that would be created, updated and deleted if "
......@@ -817,6 +904,59 @@ class APIRRuleViewSet(viewsets.ModelViewSet):
),
),
status.HTTP_409_CONFLICT: OpenApiResponse(
examples=[
OpenApiExample(
"Creation of a new schedule would create in a collision",
response_only=True,
value={
"notes": {},
"playlists": {},
"projected": [
{
"collisions": [
{
"end": "2024-08-12 17:00:00+00:00",
"memo": "",
"noteId": 694,
"playlistId": None,
"scheduleId": 7,
"showId": 6,
"showName": "EINS",
"start": "2024-08-12 14:00:00+00:00",
"timeslotId": 694,
}
],
"end": "2024-08-12 12:00:00-04:00",
"error": None,
"hash": "2024081211000004002024081212000004001",
"solutionChoices": [
"ours-end",
"theirs",
"ours-start",
"ours",
"ours-both",
],
"start": "2024-08-12 11:00:00-04:00",
}
],
"schedule": {
"addBusinessDaysOnly": False,
"addDaysNo": None,
"byWeekday": None,
"defaultPlaylistId": None,
"endTime": "12:00:00",
"firstDate": "2024-08-12",
"id": None,
"isRepetition": False,
"lastDate": None,
"rruleId": 1,
"showId": 10,
"startTime": "11:00:00",
},
"solutions": {"2024081211000004002024081212000004001": ""},
},
)
],
response=ScheduleConflictResponseSerializer,
description=dedent(
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment