diff --git a/api/openapi.json b/api/openapi.json index bfb66f4..855127d 100644 --- a/api/openapi.json +++ b/api/openapi.json @@ -580,6 +580,37 @@ "type": "integer", "format": "int64" } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -640,8 +671,16 @@ } }, "responses": { - "200": { + "201": { "description": "Successful response", + "headers": { + "Location": { + "description": "Relative URL of the created resource", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -740,6 +779,17 @@ "format": "int64" } }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, { "in": "query", "name": "limit", @@ -748,7 +798,9 @@ "format": "int64", "minimum": 1, "maximum": 100 - } + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -1072,8 +1124,16 @@ } }, "responses": { - "200": { + "201": { "description": "Successful response", + "headers": { + "Location": { + "description": "Relative URL of the created resource", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -1169,20 +1229,12 @@ "/api/mcp": { "get": { "operationId": "listMcp", - "summary": "Open an MCP Streamable HTTP transport session", + "summary": "Standalone GET streams are disabled for the stateless MCP transport", "tags": [ "Api" ], - "security": [ - { - "mcpBearerAuth": [] - } - ], "responses": { - "200": { - "description": "Response 200" - }, - "401": { + "403": { "description": "Error response", "content": { "application/json": { @@ -1192,7 +1244,7 @@ } } }, - "403": { + "405": { "description": "Error response", "content": { "application/json": { @@ -1361,35 +1413,6 @@ } } }, - "/api/metrics": { - "get": { - "operationId": "listMetrics", - "summary": "Export internal runtime metrics", - "tags": [ - "Api" - ], - "security": [ - { - "internalBearerAuth": [] - } - ], - "responses": { - "200": { - "description": "Text response", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "404": { - "description": "Response 404" - } - } - } - }, "/api/openapi": { "get": { "operationId": "getOpenApiSpec", @@ -1411,45 +1434,6 @@ } } }, - "/api/readiness": { - "get": { - "operationId": "listReadiness", - "summary": "Check internal dependency readiness", - "tags": [ - "Api" - ], - "security": [ - { - "internalBearerAuth": [] - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/readinessResponseSchema" - } - } - } - }, - "404": { - "description": "Response 404" - }, - "503": { - "description": "Error response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/readinessResponseSchema" - } - } - } - } - } - } - }, "/api/schedules": { "get": { "operationId": "listSchedules", @@ -1550,6 +1534,17 @@ "format": "int64" } }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, { "in": "query", "name": "limit", @@ -1558,7 +1553,9 @@ "format": "int64", "minimum": 1, "maximum": 100 - } + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -1686,6 +1683,17 @@ "format": "int64" } }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, { "in": "query", "name": "limit", @@ -1694,7 +1702,9 @@ "format": "int64", "minimum": 1, "maximum": 100 - } + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -1737,6 +1747,17 @@ "format": "int64" } }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, { "in": "query", "name": "limit", @@ -1745,7 +1766,9 @@ "format": "int64", "minimum": 1, "maximum": 100 - } + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -1803,6 +1826,17 @@ "format": "int64" } }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, { "in": "query", "name": "limit", @@ -1811,7 +1845,9 @@ "format": "int64", "minimum": 1, "maximum": 100 - } + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -1964,8 +2000,16 @@ } }, "responses": { - "200": { + "201": { "description": "Successful response", + "headers": { + "Location": { + "description": "Relative URL of the created resource", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -2012,6 +2056,39 @@ "sessionCookie": [] } ], + "parameters": [ + { + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." + } + ], "responses": { "200": { "description": "Successful response", @@ -2023,6 +2100,16 @@ } } }, + "400": { + "description": "Error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/openApiErrorSchema" + } + } + } + }, "401": { "description": "Error response", "content": { @@ -2143,11 +2230,34 @@ }, { "in": "query", - "name": "limit", + "name": "page", "schema": { "type": "integer", "format": "int64" } + }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 200 + }, + "description": "Number of items per page." + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 200 + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -2233,11 +2343,34 @@ }, { "in": "query", - "name": "limit", + "name": "page", "schema": { "type": "integer", "format": "int64" } + }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 200 + }, + "description": "Number of items per page." + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 200 + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -2309,11 +2442,34 @@ }, { "in": "query", - "name": "limit", + "name": "page", "schema": { "type": "integer", "format": "int64" } + }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 200 + }, + "description": "Number of items per page." + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 200 + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -2409,8 +2565,16 @@ } }, "responses": { - "200": { + "201": { "description": "Successful response", + "headers": { + "Location": { + "description": "Relative URL of the created resource", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -2491,13 +2655,28 @@ "format": "int64" } }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "integer", + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "description": "Number of items per page." + }, { "in": "query", "name": "limit", "schema": { "type": "integer", - "format": "int64" - } + "format": "int64", + "minimum": 1, + "maximum": 100 + }, + "deprecated": true, + "description": "Deprecated alias for pageSize. pageSize takes precedence when both are supplied." } ], "responses": { @@ -2547,7 +2726,8 @@ "name": "originCampusId", "schema": { "type": "integer", - "format": "int64" + "format": "int64", + "minimum": 1 }, "required": true }, @@ -2556,7 +2736,8 @@ "name": "destinationCampusId", "schema": { "type": "integer", - "format": "int64" + "format": "int64", + "minimum": 1 }, "required": true }, @@ -2565,7 +2746,8 @@ "name": "atTime", "schema": { "type": "string", - "minLength": 1 + "minLength": 1, + "description": "YYYY-MM-DD or ISO date/time accepted by parseDateInput" } }, { @@ -2764,7 +2946,8 @@ "name": "originCampusId", "schema": { "type": "integer", - "format": "int64" + "format": "int64", + "minimum": 1 } }, { @@ -2772,7 +2955,8 @@ "name": "destinationCampusId", "schema": { "type": "integer", - "format": "int64" + "format": "int64", + "minimum": 1 } }, { @@ -3785,7 +3969,8 @@ "name": "atTime", "schema": { "type": "string", - "minLength": 1 + "minLength": 1, + "description": "YYYY-MM-DD or ISO date/time accepted by parseDateInput" } }, { @@ -9307,224 +9492,266 @@ "commentsListResponseSchema": { "type": "object", "properties": { - "comments": { + "data": { "type": "array", "items": { "$ref": "#/components/schemas/__schema1" } }, - "hiddenCount": { - "type": "integer", - "minimum": 0, - "maximum": 9007199254740991 - }, - "viewer": { + "pagination": { "type": "object", "properties": { - "userId": { - "nullable": true, - "type": "string" - }, - "name": { - "nullable": true, - "type": "string" - }, - "image": { - "nullable": true, - "type": "string" - }, - "isAdmin": { - "type": "boolean" - }, - "isAuthenticated": { - "type": "boolean" + "page": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 }, - "isSuspended": { - "type": "boolean" + "pageSize": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 }, - "suspensionReason": { - "nullable": true, - "type": "string" + "total": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 }, - "suspensionExpiresAt": { - "nullable": true, - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" + "totalPages": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 } }, "required": [ - "userId", - "name", - "image", - "isAdmin", - "isAuthenticated", - "isSuspended", - "suspensionReason", - "suspensionExpiresAt" + "page", + "pageSize", + "total", + "totalPages" ], "additionalProperties": false }, - "target": { + "meta": { "type": "object", "properties": { - "type": { - "type": "string" + "hiddenCount": { + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 }, - "targetId": { - "anyOf": [ - { + "viewer": { + "type": "object", + "properties": { + "userId": { + "nullable": true, + "type": "string" + }, + "name": { + "nullable": true, + "type": "string" + }, + "image": { + "nullable": true, + "type": "string" + }, + "isAdmin": { + "type": "boolean" + }, + "isAuthenticated": { + "type": "boolean" + }, + "isSuspended": { + "type": "boolean" + }, + "suspensionReason": { + "nullable": true, + "type": "string" + }, + "suspensionExpiresAt": { + "nullable": true, + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" + } + }, + "required": [ + "userId", + "name", + "image", + "isAdmin", + "isAuthenticated", + "isSuspended", + "suspensionReason", + "suspensionExpiresAt" + ], + "additionalProperties": false + }, + "target": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "targetId": { + "anyOf": [ + { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + { + "type": "string" + }, + { + "type": "string", + "nullable": true, + "enum": [ + null + ] + } + ] + }, + "courseId": { + "nullable": true, "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, - { + "sectionId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "teacherId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "sectionTeacherId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "homeworkId": { + "nullable": true, "type": "string" }, - { - "type": "string", + "sectionTeacherSectionId": { "nullable": true, - "enum": [ - null - ] + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "sectionTeacherTeacherId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "sectionTeacherSectionJwId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "sectionTeacherSectionCode": { + "nullable": true, + "type": "string" + }, + "sectionTeacherTeacherName": { + "nullable": true, + "type": "string" + }, + "sectionTeacherCourseJwId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "sectionTeacherCourseName": { + "nullable": true, + "type": "string" + }, + "homeworkTitle": { + "nullable": true, + "type": "string" + }, + "homeworkSectionJwId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "homeworkSectionCode": { + "nullable": true, + "type": "string" + }, + "sectionJwId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "sectionCode": { + "nullable": true, + "type": "string" + }, + "courseJwId": { + "nullable": true, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "courseName": { + "nullable": true, + "type": "string" + }, + "teacherName": { + "nullable": true, + "type": "string" } - ] - }, - "courseId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "teacherId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionTeacherId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "homeworkId": { - "nullable": true, - "type": "string" - }, - "sectionTeacherSectionId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionTeacherTeacherId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionTeacherSectionJwId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionTeacherSectionCode": { - "nullable": true, - "type": "string" - }, - "sectionTeacherTeacherName": { - "nullable": true, - "type": "string" - }, - "sectionTeacherCourseJwId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionTeacherCourseName": { - "nullable": true, - "type": "string" - }, - "homeworkTitle": { - "nullable": true, - "type": "string" - }, - "homeworkSectionJwId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "homeworkSectionCode": { - "nullable": true, - "type": "string" - }, - "sectionJwId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sectionCode": { - "nullable": true, - "type": "string" - }, - "courseJwId": { - "nullable": true, - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "courseName": { - "nullable": true, - "type": "string" - }, - "teacherName": { - "nullable": true, - "type": "string" + }, + "required": [ + "type", + "targetId", + "courseId", + "sectionId", + "teacherId", + "sectionTeacherId", + "homeworkId", + "sectionTeacherSectionId", + "sectionTeacherTeacherId", + "sectionTeacherSectionJwId", + "sectionTeacherSectionCode", + "sectionTeacherTeacherName", + "sectionTeacherCourseJwId", + "sectionTeacherCourseName", + "homeworkTitle", + "homeworkSectionJwId", + "homeworkSectionCode", + "sectionJwId", + "sectionCode", + "courseJwId", + "courseName", + "teacherName" + ], + "additionalProperties": false } }, "required": [ - "type", - "targetId", - "courseId", - "sectionId", - "teacherId", - "sectionTeacherId", - "homeworkId", - "sectionTeacherSectionId", - "sectionTeacherTeacherId", - "sectionTeacherSectionJwId", - "sectionTeacherSectionCode", - "sectionTeacherTeacherName", - "sectionTeacherCourseJwId", - "sectionTeacherCourseName", - "homeworkTitle", - "homeworkSectionJwId", - "homeworkSectionCode", - "sectionJwId", - "sectionCode", - "courseJwId", - "courseName", - "teacherName" + "hiddenCount", + "viewer", + "target" ], "additionalProperties": false } }, "required": [ - "comments", - "hiddenCount", - "viewer", - "target" + "data", + "pagination", + "meta" ], "additionalProperties": false }, @@ -12147,78 +12374,6 @@ ], "additionalProperties": false }, - "readinessResponseSchema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "ok", - "degraded" - ] - }, - "uptimeSeconds": { - "type": "number", - "minimum": 0 - }, - "checks": { - "type": "object", - "properties": { - "database": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "ok", - "error" - ] - }, - "durationMs": { - "type": "number", - "minimum": 0 - } - }, - "required": [ - "status", - "durationMs" - ], - "additionalProperties": false - }, - "storage": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "binding": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "required": [ - "status", - "binding" - ], - "additionalProperties": false - } - }, - "required": [ - "database", - "storage" - ], - "additionalProperties": false - } - }, - "required": [ - "status", - "uptimeSeconds", - "checks" - ], - "additionalProperties": false - }, "paginatedScheduleResponseSchema": { "type": "object", "properties": { @@ -13776,17 +13931,7 @@ "uploadsListResponseSchema": { "type": "object", "properties": { - "maxFileSizeBytes": { - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "quotaBytes": { - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "uploads": { + "data": { "type": "array", "items": { "type": "object", @@ -13821,17 +13966,69 @@ "additionalProperties": false } }, - "usedBytes": { - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 + "pagination": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pageSize": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "total": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "totalPages": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + } + }, + "required": [ + "page", + "pageSize", + "total", + "totalPages" + ], + "additionalProperties": false + }, + "meta": { + "type": "object", + "properties": { + "maxFileSizeBytes": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "quotaBytes": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "usedBytes": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + } + }, + "required": [ + "maxFileSizeBytes", + "quotaBytes", + "usedBytes" + ], + "additionalProperties": false } }, "required": [ - "maxFileSizeBytes", - "quotaBytes", - "uploads", - "usedBytes" + "data", + "pagination", + "meta" ], "additionalProperties": false }, @@ -13899,7 +14096,7 @@ "adminCommentsResponseSchema": { "type": "object", "properties": { - "comments": { + "data": { "type": "array", "items": { "type": "object", @@ -14225,17 +14422,50 @@ ], "additionalProperties": false } + }, + "pagination": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pageSize": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "total": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "totalPages": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + } + }, + "required": [ + "page", + "pageSize", + "total", + "totalPages" + ], + "additionalProperties": false } }, "required": [ - "comments" + "data", + "pagination" ], "additionalProperties": false }, "adminDescriptionsResponseSchema": { "type": "object", "properties": { - "descriptions": { + "data": { "type": "array", "items": { "type": "object", @@ -14486,17 +14716,50 @@ ], "additionalProperties": false } + }, + "pagination": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pageSize": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "total": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "totalPages": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + } + }, + "required": [ + "page", + "pageSize", + "total", + "totalPages" + ], + "additionalProperties": false } }, "required": [ - "descriptions" + "data", + "pagination" ], "additionalProperties": false }, "adminHomeworksResponseSchema": { "type": "object", "properties": { - "homeworks": { + "data": { "type": "array", "items": { "type": "object", @@ -14678,17 +14941,50 @@ ], "additionalProperties": false } + }, + "pagination": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pageSize": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "total": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "totalPages": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + } + }, + "required": [ + "page", + "pageSize", + "total", + "totalPages" + ], + "additionalProperties": false } }, "required": [ - "homeworks" + "data", + "pagination" ], "additionalProperties": false }, "adminSuspensionsResponseSchema": { "type": "object", "properties": { - "suspensions": { + "data": { "type": "array", "items": { "type": "object", @@ -14767,7 +15063,7 @@ } }, "required": [ - "suspensions" + "data" ], "additionalProperties": false }, @@ -31094,11 +31390,6 @@ "bearerFormat": "JWT", "description": "OAuth bearer token for /api/mcp. MCP requires a bearer token with the MCP resource audience and does not accept session cookies." }, - "internalBearerAuth": { - "type": "http", - "scheme": "bearer", - "description": "Configured internal bearer token for operational endpoints. Localhost requests may also be accepted by the server-side access policy." - }, "calendarFeedToken": { "type": "apiKey", "in": "query", diff --git a/internal/cmd/apicmd/api_paths_gen.go b/internal/cmd/apicmd/api_paths_gen.go index 58db7cf..e7304ae 100644 --- a/internal/cmd/apicmd/api_paths_gen.go +++ b/internal/cmd/apicmd/api_paths_gen.go @@ -56,9 +56,7 @@ var generatedAPIPaths = []string{ "/api/me/subscriptions/homeworks", "/api/me/subscriptions/schedules", "/api/metadata", - "/api/metrics", "/api/openapi", - "/api/readiness", "/api/schedules", "/api/sections", "/api/sections/calendar.ics", diff --git a/internal/cmd/school/school.go b/internal/cmd/school/school.go index c87440c..08cffbe 100644 --- a/internal/cmd/school/school.go +++ b/internal/cmd/school/school.go @@ -51,6 +51,16 @@ func newMatchSectionCodesBody(codes []string, semesterID string) openapi.MatchSe } } +func newSemesterScopedSubscriptionSetBody(sectionIDs []int, semesterID string) openapi.BatchUpdateCalendarSubscriptionJSONRequestBody { + semesterIDUnion := openapi.CalendarSubscriptionBatchRequestSchema_SemesterId{} + _ = semesterIDUnion.FromCalendarSubscriptionBatchRequestSchemaSemesterId0(semesterID) + return openapi.BatchUpdateCalendarSubscriptionJSONRequestBody{ + Action: openapi.CalendarSubscriptionBatchRequestSchemaActionSet, + SectionIds: §ionIDs, + SemesterId: &semesterIDUnion, + } +} + func NewCmdSchool() *cobra.Command { cmd := &cobra.Command{ Use: "school", @@ -485,6 +495,7 @@ func newCmdSchoolSync() *cobra.Command { } allSectionIDs := map[int]struct{}{} + sectionIDsBySemester := map[string]map[int]struct{}{} var allCurriculum []ustcschool.CurriculumItem var allCodes []string var matchedCodes []any @@ -511,8 +522,14 @@ func newCmdSchoolSync() *cobra.Command { return err } matchMap := cmdutil.AsMap(matchRaw) + semesterSectionIDs := sectionIDsBySemester[lifeSemesterID] + if semesterSectionIDs == nil { + semesterSectionIDs = map[int]struct{}{} + sectionIDsBySemester[lifeSemesterID] = semesterSectionIDs + } for _, sectionID := range extractSectionIDs(matchMap["sections"]) { allSectionIDs[sectionID] = struct{}{} + semesterSectionIDs[sectionID] = struct{}{} } allCurriculum = append(allCurriculum, curriculum.Items...) allCodes = append(allCodes, codes...) @@ -545,14 +562,22 @@ func newCmdSchoolSync() *cobra.Command { } if !dryRun && len(sectionIDs) > 0 { - subscribeRaw, err := api.ParseResponseRaw(apiClient.BatchUpdateCalendarSubscription(cmd.Context(), openapi.BatchUpdateCalendarSubscriptionJSONRequestBody{ - Action: openapi.CalendarSubscriptionBatchRequestSchemaActionSet, - SectionIds: §ionIDs, - })) - if err != nil { - return err + semesterIDs := make([]string, 0, len(sectionIDsBySemester)) + for lifeSemesterID := range sectionIDsBySemester { + semesterIDs = append(semesterIDs, lifeSemesterID) + } + slices.Sort(semesterIDs) + for _, lifeSemesterID := range semesterIDs { + semesterSectionIDs := sortedIntsFromSet(sectionIDsBySemester[lifeSemesterID]) + if len(semesterSectionIDs) == 0 { + continue + } + subscribeRaw, err := api.ParseResponseRaw(apiClient.BatchUpdateCalendarSubscription(cmd.Context(), newSemesterScopedSubscriptionSetBody(semesterSectionIDs, lifeSemesterID))) + if err != nil { + return err + } + result["subscription"] = subscribeRaw } - result["subscription"] = subscribeRaw } if output.IsJSON() { diff --git a/internal/cmd/school/school_test.go b/internal/cmd/school/school_test.go index bc0407c..1b47775 100644 --- a/internal/cmd/school/school_test.go +++ b/internal/cmd/school/school_test.go @@ -1,8 +1,10 @@ package school import ( + "slices" "testing" + "github.com/Life-USTC/CLI/internal/openapi" ustcschool "github.com/Life-USTC/CLI/internal/school" ) @@ -67,6 +69,29 @@ func TestResolveLifeSemesterReturnsFalseWithoutMatch(t *testing.T) { } } +func TestNewSemesterScopedSubscriptionSetBody(t *testing.T) { + t.Parallel() + + sectionIDs := []int{11, 12} + body := newSemesterScopedSubscriptionSetBody(sectionIDs, "77") + if body.Action != openapi.CalendarSubscriptionBatchRequestSchemaActionSet { + t.Fatalf("body.Action = %q, want set", body.Action) + } + if body.SectionIds == nil || !slices.Equal(*body.SectionIds, sectionIDs) { + t.Fatalf("body.SectionIds = %v, want %v", body.SectionIds, sectionIDs) + } + if body.SemesterId == nil { + t.Fatal("body.SemesterId is nil") + } + value, err := body.SemesterId.AsCalendarSubscriptionBatchRequestSchemaSemesterId0() + if err != nil { + t.Fatalf("semester ID is not a string: %v", err) + } + if value != "77" { + t.Fatalf("semester ID = %q, want 77", value) + } +} + func TestSchoolHomeworkCompleted(t *testing.T) { t.Parallel() diff --git a/internal/cmd/upload/upload.go b/internal/cmd/upload/upload.go index cda1697..cbbd923 100644 --- a/internal/cmd/upload/upload.go +++ b/internal/cmd/upload/upload.go @@ -39,7 +39,7 @@ func runUploadList(cmd *cobra.Command) error { if err != nil { return err } - data, err := api.ParseResponseRaw(c.ListUploads(api.Ctx())) + data, err := api.ParseResponseRaw(c.ListUploads(api.Ctx(), nil)) if err != nil { return err } @@ -286,7 +286,7 @@ func promptUploadPick(cmd *cobra.Command, prompt string) (map[string]any, error) if err != nil { return nil, err } - data, err := api.ParseResponseRaw(c.ListUploads(api.Ctx())) + data, err := api.ParseResponseRaw(c.ListUploads(api.Ctx(), nil)) if err != nil { return nil, err } diff --git a/internal/openapi/client.gen.go b/internal/openapi/client.gen.go index ddfa59b..c059c8a 100644 --- a/internal/openapi/client.gen.go +++ b/internal/openapi/client.gen.go @@ -23,39 +23,39 @@ const ( SessionCookieScopes = "sessionCookie.Scopes" ) -// Defines values for AdminCommentsResponseSchemaCommentsStatus. +// Defines values for AdminCommentsResponseSchemaDataStatus. const ( - AdminCommentsResponseSchemaCommentsStatusActive AdminCommentsResponseSchemaCommentsStatus = "active" - AdminCommentsResponseSchemaCommentsStatusDeleted AdminCommentsResponseSchemaCommentsStatus = "deleted" - AdminCommentsResponseSchemaCommentsStatusSoftbanned AdminCommentsResponseSchemaCommentsStatus = "softbanned" + AdminCommentsResponseSchemaDataStatusActive AdminCommentsResponseSchemaDataStatus = "active" + AdminCommentsResponseSchemaDataStatusDeleted AdminCommentsResponseSchemaDataStatus = "deleted" + AdminCommentsResponseSchemaDataStatusSoftbanned AdminCommentsResponseSchemaDataStatus = "softbanned" ) -// Valid indicates whether the value is a known member of the AdminCommentsResponseSchemaCommentsStatus enum. -func (e AdminCommentsResponseSchemaCommentsStatus) Valid() bool { +// Valid indicates whether the value is a known member of the AdminCommentsResponseSchemaDataStatus enum. +func (e AdminCommentsResponseSchemaDataStatus) Valid() bool { switch e { - case AdminCommentsResponseSchemaCommentsStatusActive: + case AdminCommentsResponseSchemaDataStatusActive: return true - case AdminCommentsResponseSchemaCommentsStatusDeleted: + case AdminCommentsResponseSchemaDataStatusDeleted: return true - case AdminCommentsResponseSchemaCommentsStatusSoftbanned: + case AdminCommentsResponseSchemaDataStatusSoftbanned: return true default: return false } } -// Defines values for AdminCommentsResponseSchemaCommentsVisibility. +// Defines values for AdminCommentsResponseSchemaDataVisibility. const ( - AdminCommentsResponseSchemaCommentsVisibilityLoggedInOnly AdminCommentsResponseSchemaCommentsVisibility = "logged_in_only" - AdminCommentsResponseSchemaCommentsVisibilityPublic AdminCommentsResponseSchemaCommentsVisibility = "public" + AdminCommentsResponseSchemaDataVisibilityLoggedInOnly AdminCommentsResponseSchemaDataVisibility = "logged_in_only" + AdminCommentsResponseSchemaDataVisibilityPublic AdminCommentsResponseSchemaDataVisibility = "public" ) -// Valid indicates whether the value is a known member of the AdminCommentsResponseSchemaCommentsVisibility enum. -func (e AdminCommentsResponseSchemaCommentsVisibility) Valid() bool { +// Valid indicates whether the value is a known member of the AdminCommentsResponseSchemaDataVisibility enum. +func (e AdminCommentsResponseSchemaDataVisibility) Valid() bool { switch e { - case AdminCommentsResponseSchemaCommentsVisibilityLoggedInOnly: + case AdminCommentsResponseSchemaDataVisibilityLoggedInOnly: return true - case AdminCommentsResponseSchemaCommentsVisibilityPublic: + case AdminCommentsResponseSchemaDataVisibilityPublic: return true default: return false @@ -485,15 +485,15 @@ func (e CommentUpdateRequestSchemaVisibility) Valid() bool { } } -// Defines values for CommentsListResponseSchemaTargetTargetId2. +// Defines values for CommentsListResponseSchemaMetaTargetTargetId2. const ( - CommentsListResponseSchemaTargetTargetId2LessThannil CommentsListResponseSchemaTargetTargetId2 = "" + CommentsListResponseSchemaMetaTargetTargetId2LessThannil CommentsListResponseSchemaMetaTargetTargetId2 = "" ) -// Valid indicates whether the value is a known member of the CommentsListResponseSchemaTargetTargetId2 enum. -func (e CommentsListResponseSchemaTargetTargetId2) Valid() bool { +// Valid indicates whether the value is a known member of the CommentsListResponseSchemaMetaTargetTargetId2 enum. +func (e CommentsListResponseSchemaMetaTargetTargetId2) Valid() bool { switch e { - case CommentsListResponseSchemaTargetTargetId2LessThannil: + case CommentsListResponseSchemaMetaTargetTargetId2LessThannil: return true default: return false @@ -896,42 +896,6 @@ func (e OauthTokenResponseSchemaTokenType) Valid() bool { } } -// Defines values for ReadinessResponseSchemaChecksDatabaseStatus. -const ( - ReadinessResponseSchemaChecksDatabaseStatusError ReadinessResponseSchemaChecksDatabaseStatus = "error" - ReadinessResponseSchemaChecksDatabaseStatusOk ReadinessResponseSchemaChecksDatabaseStatus = "ok" -) - -// Valid indicates whether the value is a known member of the ReadinessResponseSchemaChecksDatabaseStatus enum. -func (e ReadinessResponseSchemaChecksDatabaseStatus) Valid() bool { - switch e { - case ReadinessResponseSchemaChecksDatabaseStatusError: - return true - case ReadinessResponseSchemaChecksDatabaseStatusOk: - return true - default: - return false - } -} - -// Defines values for ReadinessResponseSchemaStatus. -const ( - ReadinessResponseSchemaStatusDegraded ReadinessResponseSchemaStatus = "degraded" - ReadinessResponseSchemaStatusOk ReadinessResponseSchemaStatus = "ok" -) - -// Valid indicates whether the value is a known member of the ReadinessResponseSchemaStatus enum. -func (e ReadinessResponseSchemaStatus) Valid() bool { - switch e { - case ReadinessResponseSchemaStatusDegraded: - return true - case ReadinessResponseSchemaStatusOk: - return true - default: - return false - } -} - // Defines values for SubscribedHomeworksResponseSchemaAuditLogsAction. const ( SubscribedHomeworksResponseSchemaAuditLogsActionCreated SubscribedHomeworksResponseSchemaAuditLogsAction = "created" @@ -1618,7 +1582,7 @@ type UnderscoreUnderscoreSchema1 struct { // AdminCommentsResponseSchema defines model for adminCommentsResponseSchema. type AdminCommentsResponseSchema struct { - Comments []struct { + Data []struct { AuthorName *string `json:"authorName"` Body string `json:"body"` Course *struct { @@ -1668,8 +1632,8 @@ type AdminCommentsResponseSchema struct { NameCn string `json:"nameCn"` } `json:"teacher"` } `json:"sectionTeacher"` - SectionTeacherId *int `json:"sectionTeacherId"` - Status AdminCommentsResponseSchemaCommentsStatus `json:"status"` + SectionTeacherId *int `json:"sectionTeacherId"` + Status AdminCommentsResponseSchemaDataStatus `json:"status"` Teacher *struct { Id int `json:"id"` NameCn string `json:"nameCn"` @@ -1679,16 +1643,22 @@ type AdminCommentsResponseSchema struct { User *struct { Name *string `json:"name"` } `json:"user"` - UserId *string `json:"userId"` - Visibility AdminCommentsResponseSchemaCommentsVisibility `json:"visibility"` - } `json:"comments"` + UserId *string `json:"userId"` + Visibility AdminCommentsResponseSchemaDataVisibility `json:"visibility"` + } `json:"data"` + Pagination struct { + Page int `json:"page"` + PageSize int `json:"pageSize"` + Total int `json:"total"` + TotalPages int `json:"totalPages"` + } `json:"pagination"` } -// AdminCommentsResponseSchemaCommentsStatus defines model for AdminCommentsResponseSchema.Comments.Status. -type AdminCommentsResponseSchemaCommentsStatus string +// AdminCommentsResponseSchemaDataStatus defines model for AdminCommentsResponseSchema.Data.Status. +type AdminCommentsResponseSchemaDataStatus string -// AdminCommentsResponseSchemaCommentsVisibility defines model for AdminCommentsResponseSchema.Comments.Visibility. -type AdminCommentsResponseSchemaCommentsVisibility string +// AdminCommentsResponseSchemaDataVisibility defines model for AdminCommentsResponseSchema.Data.Visibility. +type AdminCommentsResponseSchemaDataVisibility string // AdminCreateSuspensionRequestSchema defines model for adminCreateSuspensionRequestSchema. type AdminCreateSuspensionRequestSchema struct { @@ -1711,7 +1681,7 @@ type AdminCreateSuspensionRequestSchema_ExpiresAt struct { // AdminDescriptionsResponseSchema defines model for adminDescriptionsResponseSchema. type AdminDescriptionsResponseSchema struct { - Descriptions []struct { + Data []struct { Content string `json:"content"` Course *struct { Code string `json:"code"` @@ -1759,12 +1729,18 @@ type AdminDescriptionsResponseSchema struct { } `json:"teacher"` TeacherId *int `json:"teacherId"` UpdatedAt time.Time `json:"updatedAt"` - } `json:"descriptions"` + } `json:"data"` + Pagination struct { + Page int `json:"page"` + PageSize int `json:"pageSize"` + Total int `json:"total"` + TotalPages int `json:"totalPages"` + } `json:"pagination"` } // AdminHomeworksResponseSchema defines model for adminHomeworksResponseSchema. type AdminHomeworksResponseSchema struct { - Homeworks []struct { + Data []struct { CreatedAt time.Time `json:"createdAt"` CreatedBy *struct { Id string `json:"id"` @@ -1799,7 +1775,13 @@ type AdminHomeworksResponseSchema struct { Name *string `json:"name"` Username *string `json:"username"` } `json:"updatedBy"` - } `json:"homeworks"` + } `json:"data"` + Pagination struct { + Page int `json:"page"` + PageSize int `json:"pageSize"` + Total int `json:"total"` + TotalPages int `json:"totalPages"` + } `json:"pagination"` } // AdminModerateCommentRequestSchema defines model for adminModerateCommentRequestSchema. @@ -1922,7 +1904,7 @@ type AdminSuspensionResponseSchema struct { // AdminSuspensionsResponseSchema defines model for adminSuspensionsResponseSchema. type AdminSuspensionsResponseSchema struct { - Suspensions []struct { + Data []struct { CreatedAt time.Time `json:"createdAt"` CreatedById *string `json:"createdById"` ExpiresAt *time.Time `json:"expiresAt"` @@ -1936,7 +1918,7 @@ type AdminSuspensionsResponseSchema struct { Name *string `json:"name"` } `json:"user,omitempty"` UserId string `json:"userId"` - } `json:"suspensions"` + } `json:"data"` } // AdminUpdateUserRequestSchema defines model for adminUpdateUserRequestSchema. @@ -3827,55 +3809,63 @@ type CommentUpdateResponseSchema struct { // CommentsListResponseSchema defines model for commentsListResponseSchema. type CommentsListResponseSchema struct { - Comments []UnderscoreUnderscoreSchema1 `json:"comments"` - HiddenCount int `json:"hiddenCount"` - Target struct { - CourseId *int `json:"courseId"` - CourseJwId *int `json:"courseJwId"` - CourseName *string `json:"courseName"` - HomeworkId *string `json:"homeworkId"` - HomeworkSectionCode *string `json:"homeworkSectionCode"` - HomeworkSectionJwId *int `json:"homeworkSectionJwId"` - HomeworkTitle *string `json:"homeworkTitle"` - SectionCode *string `json:"sectionCode"` - SectionId *int `json:"sectionId"` - SectionJwId *int `json:"sectionJwId"` - SectionTeacherCourseJwId *int `json:"sectionTeacherCourseJwId"` - SectionTeacherCourseName *string `json:"sectionTeacherCourseName"` - SectionTeacherId *int `json:"sectionTeacherId"` - SectionTeacherSectionCode *string `json:"sectionTeacherSectionCode"` - SectionTeacherSectionId *int `json:"sectionTeacherSectionId"` - SectionTeacherSectionJwId *int `json:"sectionTeacherSectionJwId"` - SectionTeacherTeacherId *int `json:"sectionTeacherTeacherId"` - SectionTeacherTeacherName *string `json:"sectionTeacherTeacherName"` - TargetId CommentsListResponseSchema_Target_TargetId `json:"targetId"` - TeacherId *int `json:"teacherId"` - TeacherName *string `json:"teacherName"` - Type string `json:"type"` - } `json:"target"` - Viewer struct { - Image *string `json:"image"` - IsAdmin bool `json:"isAdmin"` - IsAuthenticated bool `json:"isAuthenticated"` - IsSuspended bool `json:"isSuspended"` - Name *string `json:"name"` - SuspensionExpiresAt *time.Time `json:"suspensionExpiresAt"` - SuspensionReason *string `json:"suspensionReason"` - UserId *string `json:"userId"` - } `json:"viewer"` + Data []UnderscoreUnderscoreSchema1 `json:"data"` + Meta struct { + HiddenCount int `json:"hiddenCount"` + Target struct { + CourseId *int `json:"courseId"` + CourseJwId *int `json:"courseJwId"` + CourseName *string `json:"courseName"` + HomeworkId *string `json:"homeworkId"` + HomeworkSectionCode *string `json:"homeworkSectionCode"` + HomeworkSectionJwId *int `json:"homeworkSectionJwId"` + HomeworkTitle *string `json:"homeworkTitle"` + SectionCode *string `json:"sectionCode"` + SectionId *int `json:"sectionId"` + SectionJwId *int `json:"sectionJwId"` + SectionTeacherCourseJwId *int `json:"sectionTeacherCourseJwId"` + SectionTeacherCourseName *string `json:"sectionTeacherCourseName"` + SectionTeacherId *int `json:"sectionTeacherId"` + SectionTeacherSectionCode *string `json:"sectionTeacherSectionCode"` + SectionTeacherSectionId *int `json:"sectionTeacherSectionId"` + SectionTeacherSectionJwId *int `json:"sectionTeacherSectionJwId"` + SectionTeacherTeacherId *int `json:"sectionTeacherTeacherId"` + SectionTeacherTeacherName *string `json:"sectionTeacherTeacherName"` + TargetId CommentsListResponseSchema_Meta_Target_TargetId `json:"targetId"` + TeacherId *int `json:"teacherId"` + TeacherName *string `json:"teacherName"` + Type string `json:"type"` + } `json:"target"` + Viewer struct { + Image *string `json:"image"` + IsAdmin bool `json:"isAdmin"` + IsAuthenticated bool `json:"isAuthenticated"` + IsSuspended bool `json:"isSuspended"` + Name *string `json:"name"` + SuspensionExpiresAt *time.Time `json:"suspensionExpiresAt"` + SuspensionReason *string `json:"suspensionReason"` + UserId *string `json:"userId"` + } `json:"viewer"` + } `json:"meta"` + Pagination struct { + Page int `json:"page"` + PageSize int `json:"pageSize"` + Total int `json:"total"` + TotalPages int `json:"totalPages"` + } `json:"pagination"` } -// CommentsListResponseSchemaTargetTargetId0 defines model for . -type CommentsListResponseSchemaTargetTargetId0 = int +// CommentsListResponseSchemaMetaTargetTargetId0 defines model for . +type CommentsListResponseSchemaMetaTargetTargetId0 = int -// CommentsListResponseSchemaTargetTargetId1 defines model for . -type CommentsListResponseSchemaTargetTargetId1 = string +// CommentsListResponseSchemaMetaTargetTargetId1 defines model for . +type CommentsListResponseSchemaMetaTargetTargetId1 = string -// CommentsListResponseSchemaTargetTargetId2 defines model for CommentsListResponseSchema.Target.TargetId.2. -type CommentsListResponseSchemaTargetTargetId2 string +// CommentsListResponseSchemaMetaTargetTargetId2 defines model for CommentsListResponseSchema.Meta.Target.TargetId.2. +type CommentsListResponseSchemaMetaTargetTargetId2 string -// CommentsListResponseSchema_Target_TargetId defines model for CommentsListResponseSchema.Target.TargetId. -type CommentsListResponseSchema_Target_TargetId struct { +// CommentsListResponseSchema_Meta_Target_TargetId defines model for CommentsListResponseSchema.Meta.Target.TargetId. +type CommentsListResponseSchema_Meta_Target_TargetId struct { union json.RawMessage } @@ -5951,29 +5941,6 @@ type PublicUserProfileResponseSchema struct { } `json:"weeks"` } -// ReadinessResponseSchema defines model for readinessResponseSchema. -type ReadinessResponseSchema struct { - Checks struct { - Database struct { - DurationMs float32 `json:"durationMs"` - Status ReadinessResponseSchemaChecksDatabaseStatus `json:"status"` - } `json:"database"` - Storage struct { - Binding string `json:"binding"` - Reason *string `json:"reason,omitempty"` - Status string `json:"status"` - } `json:"storage"` - } `json:"checks"` - Status ReadinessResponseSchemaStatus `json:"status"` - UptimeSeconds float32 `json:"uptimeSeconds"` -} - -// ReadinessResponseSchemaChecksDatabaseStatus defines model for ReadinessResponseSchema.Checks.Database.Status. -type ReadinessResponseSchemaChecksDatabaseStatus string - -// ReadinessResponseSchemaStatus defines model for ReadinessResponseSchema.Status. -type ReadinessResponseSchemaStatus string - // SectionDetailSchema defines model for sectionDetailSchema. type SectionDetailSchema struct { ActualPeriods *int `json:"actualPeriods"` @@ -6900,22 +6867,36 @@ type UploadRenameResponseSchema struct { // UploadsListResponseSchema defines model for uploadsListResponseSchema. type UploadsListResponseSchema struct { - MaxFileSizeBytes int `json:"maxFileSizeBytes"` - QuotaBytes int `json:"quotaBytes"` - Uploads []struct { + Data []struct { CreatedAt time.Time `json:"createdAt"` Filename string `json:"filename"` Id string `json:"id"` Key string `json:"key"` Size int `json:"size"` - } `json:"uploads"` - UsedBytes int `json:"usedBytes"` + } `json:"data"` + Meta struct { + MaxFileSizeBytes int `json:"maxFileSizeBytes"` + QuotaBytes int `json:"quotaBytes"` + UsedBytes int `json:"usedBytes"` + } `json:"meta"` + Pagination struct { + Page int `json:"page"` + PageSize int `json:"pageSize"` + Total int `json:"total"` + TotalPages int `json:"totalPages"` + } `json:"pagination"` } // ListAdminCommentsParams defines parameters for ListAdminComments. type ListAdminCommentsParams struct { Status *ListAdminCommentsParamsStatus `form:"status,omitempty" json:"status,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + Page *int64 `form:"page,omitempty" json:"page,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // ListAdminCommentsParamsStatus defines parameters for ListAdminComments. @@ -6926,7 +6907,13 @@ type ListAdminDescriptionsParams struct { TargetType *ListAdminDescriptionsParamsTargetType `form:"targetType,omitempty" json:"targetType,omitempty"` HasContent *ListAdminDescriptionsParamsHasContent `form:"hasContent,omitempty" json:"hasContent,omitempty"` Search *string `form:"search,omitempty" json:"search,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + Page *int64 `form:"page,omitempty" json:"page,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // ListAdminDescriptionsParamsTargetType defines parameters for ListAdminDescriptions. @@ -6939,7 +6926,13 @@ type ListAdminDescriptionsParamsHasContent string type ListAdminHomeworksParams struct { Status *ListAdminHomeworksParamsStatus `form:"status,omitempty" json:"status,omitempty"` Search *string `form:"search,omitempty" json:"search,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + Page *int64 `form:"page,omitempty" json:"page,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // ListAdminHomeworksParamsStatus defines parameters for ListAdminHomeworks. @@ -6949,7 +6942,12 @@ type ListAdminHomeworksParamsStatus string type ListAdminUsersParams struct { Search *string `form:"search,omitempty" json:"search,omitempty"` Page *int64 `form:"page,omitempty" json:"page,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // QueryBusParams defines parameters for QueryBus. @@ -6999,6 +6997,13 @@ type ListCommentsParams struct { TeacherId *int64 `form:"teacherId,omitempty" json:"teacherId,omitempty"` HomeworkId *string `form:"homeworkId,omitempty" json:"homeworkId,omitempty"` SectionTeacherId *int64 `form:"sectionTeacherId,omitempty" json:"sectionTeacherId,omitempty"` + Page *int64 `form:"page,omitempty" json:"page,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // ListCommentsParamsTargetType defines parameters for ListComments. @@ -7019,7 +7024,12 @@ type ListCoursesParams struct { CategoryId *int64 `form:"categoryId,omitempty" json:"categoryId,omitempty"` ClassTypeId *int64 `form:"classTypeId,omitempty" json:"classTypeId,omitempty"` Page *int64 `form:"page,omitempty" json:"page,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // VisitDashboardLinkParams defines parameters for VisitDashboardLink. @@ -7087,7 +7097,12 @@ type ListSchedulesParams struct { DateFrom *string `form:"dateFrom,omitempty" json:"dateFrom,omitempty"` DateTo *string `form:"dateTo,omitempty" json:"dateTo,omitempty"` Page *int64 `form:"page,omitempty" json:"page,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // ListSectionsParams defines parameters for ListSections. @@ -7104,7 +7119,12 @@ type ListSectionsParams struct { Ids *string `form:"ids,omitempty" json:"ids,omitempty"` JwIds *string `form:"jwIds,omitempty" json:"jwIds,omitempty"` Page *int64 `form:"page,omitempty" json:"page,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // GetSectionsCalendarParams defines parameters for GetSectionsCalendar. @@ -7121,7 +7141,12 @@ type GetSectionSchedulesParams struct { // ListSemestersParams defines parameters for ListSemesters. type ListSemestersParams struct { - Page *int64 `form:"page,omitempty" json:"page,omitempty"` + Page *int64 `form:"page,omitempty" json:"page,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } @@ -7130,7 +7155,12 @@ type ListTeachersParams struct { DepartmentId *int64 `form:"departmentId,omitempty" json:"departmentId,omitempty"` Search *string `form:"search,omitempty" json:"search,omitempty"` Page *int64 `form:"page,omitempty" json:"page,omitempty"` - Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` } // ListTodosParams defines parameters for ListTodos. @@ -7148,6 +7178,17 @@ type ListTodosParamsCompleted string // ListTodosParamsPriority defines parameters for ListTodos. type ListTodosParamsPriority string +// ListUploadsParams defines parameters for ListUploads. +type ListUploadsParams struct { + Page *int64 `form:"page,omitempty" json:"page,omitempty"` + + // PageSize Number of items per page. + PageSize *int64 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + + // Limit Deprecated alias for pageSize. pageSize takes precedence when both are supplied. + Limit *int64 `form:"limit,omitempty" json:"limit,omitempty"` +} + // PutApiUploadsObjectParams defines parameters for PutApiUploadsObject. type PutApiUploadsObjectParams struct { Key string `form:"key" json:"key"` @@ -7999,22 +8040,22 @@ func (t *CommentCreateRequestSchema_TeacherId) UnmarshalJSON(b []byte) error { return err } -// AsCommentsListResponseSchemaTargetTargetId0 returns the union data inside the CommentsListResponseSchema_Target_TargetId as a CommentsListResponseSchemaTargetTargetId0 -func (t CommentsListResponseSchema_Target_TargetId) AsCommentsListResponseSchemaTargetTargetId0() (CommentsListResponseSchemaTargetTargetId0, error) { - var body CommentsListResponseSchemaTargetTargetId0 +// AsCommentsListResponseSchemaMetaTargetTargetId0 returns the union data inside the CommentsListResponseSchema_Meta_Target_TargetId as a CommentsListResponseSchemaMetaTargetTargetId0 +func (t CommentsListResponseSchema_Meta_Target_TargetId) AsCommentsListResponseSchemaMetaTargetTargetId0() (CommentsListResponseSchemaMetaTargetTargetId0, error) { + var body CommentsListResponseSchemaMetaTargetTargetId0 err := json.Unmarshal(t.union, &body) return body, err } -// FromCommentsListResponseSchemaTargetTargetId0 overwrites any union data inside the CommentsListResponseSchema_Target_TargetId as the provided CommentsListResponseSchemaTargetTargetId0 -func (t *CommentsListResponseSchema_Target_TargetId) FromCommentsListResponseSchemaTargetTargetId0(v CommentsListResponseSchemaTargetTargetId0) error { +// FromCommentsListResponseSchemaMetaTargetTargetId0 overwrites any union data inside the CommentsListResponseSchema_Meta_Target_TargetId as the provided CommentsListResponseSchemaMetaTargetTargetId0 +func (t *CommentsListResponseSchema_Meta_Target_TargetId) FromCommentsListResponseSchemaMetaTargetTargetId0(v CommentsListResponseSchemaMetaTargetTargetId0) error { b, err := json.Marshal(v) t.union = b return err } -// MergeCommentsListResponseSchemaTargetTargetId0 performs a merge with any union data inside the CommentsListResponseSchema_Target_TargetId, using the provided CommentsListResponseSchemaTargetTargetId0 -func (t *CommentsListResponseSchema_Target_TargetId) MergeCommentsListResponseSchemaTargetTargetId0(v CommentsListResponseSchemaTargetTargetId0) error { +// MergeCommentsListResponseSchemaMetaTargetTargetId0 performs a merge with any union data inside the CommentsListResponseSchema_Meta_Target_TargetId, using the provided CommentsListResponseSchemaMetaTargetTargetId0 +func (t *CommentsListResponseSchema_Meta_Target_TargetId) MergeCommentsListResponseSchemaMetaTargetTargetId0(v CommentsListResponseSchemaMetaTargetTargetId0) error { b, err := json.Marshal(v) if err != nil { return err @@ -8025,22 +8066,22 @@ func (t *CommentsListResponseSchema_Target_TargetId) MergeCommentsListResponseSc return err } -// AsCommentsListResponseSchemaTargetTargetId1 returns the union data inside the CommentsListResponseSchema_Target_TargetId as a CommentsListResponseSchemaTargetTargetId1 -func (t CommentsListResponseSchema_Target_TargetId) AsCommentsListResponseSchemaTargetTargetId1() (CommentsListResponseSchemaTargetTargetId1, error) { - var body CommentsListResponseSchemaTargetTargetId1 +// AsCommentsListResponseSchemaMetaTargetTargetId1 returns the union data inside the CommentsListResponseSchema_Meta_Target_TargetId as a CommentsListResponseSchemaMetaTargetTargetId1 +func (t CommentsListResponseSchema_Meta_Target_TargetId) AsCommentsListResponseSchemaMetaTargetTargetId1() (CommentsListResponseSchemaMetaTargetTargetId1, error) { + var body CommentsListResponseSchemaMetaTargetTargetId1 err := json.Unmarshal(t.union, &body) return body, err } -// FromCommentsListResponseSchemaTargetTargetId1 overwrites any union data inside the CommentsListResponseSchema_Target_TargetId as the provided CommentsListResponseSchemaTargetTargetId1 -func (t *CommentsListResponseSchema_Target_TargetId) FromCommentsListResponseSchemaTargetTargetId1(v CommentsListResponseSchemaTargetTargetId1) error { +// FromCommentsListResponseSchemaMetaTargetTargetId1 overwrites any union data inside the CommentsListResponseSchema_Meta_Target_TargetId as the provided CommentsListResponseSchemaMetaTargetTargetId1 +func (t *CommentsListResponseSchema_Meta_Target_TargetId) FromCommentsListResponseSchemaMetaTargetTargetId1(v CommentsListResponseSchemaMetaTargetTargetId1) error { b, err := json.Marshal(v) t.union = b return err } -// MergeCommentsListResponseSchemaTargetTargetId1 performs a merge with any union data inside the CommentsListResponseSchema_Target_TargetId, using the provided CommentsListResponseSchemaTargetTargetId1 -func (t *CommentsListResponseSchema_Target_TargetId) MergeCommentsListResponseSchemaTargetTargetId1(v CommentsListResponseSchemaTargetTargetId1) error { +// MergeCommentsListResponseSchemaMetaTargetTargetId1 performs a merge with any union data inside the CommentsListResponseSchema_Meta_Target_TargetId, using the provided CommentsListResponseSchemaMetaTargetTargetId1 +func (t *CommentsListResponseSchema_Meta_Target_TargetId) MergeCommentsListResponseSchemaMetaTargetTargetId1(v CommentsListResponseSchemaMetaTargetTargetId1) error { b, err := json.Marshal(v) if err != nil { return err @@ -8051,22 +8092,22 @@ func (t *CommentsListResponseSchema_Target_TargetId) MergeCommentsListResponseSc return err } -// AsCommentsListResponseSchemaTargetTargetId2 returns the union data inside the CommentsListResponseSchema_Target_TargetId as a CommentsListResponseSchemaTargetTargetId2 -func (t CommentsListResponseSchema_Target_TargetId) AsCommentsListResponseSchemaTargetTargetId2() (CommentsListResponseSchemaTargetTargetId2, error) { - var body CommentsListResponseSchemaTargetTargetId2 +// AsCommentsListResponseSchemaMetaTargetTargetId2 returns the union data inside the CommentsListResponseSchema_Meta_Target_TargetId as a CommentsListResponseSchemaMetaTargetTargetId2 +func (t CommentsListResponseSchema_Meta_Target_TargetId) AsCommentsListResponseSchemaMetaTargetTargetId2() (CommentsListResponseSchemaMetaTargetTargetId2, error) { + var body CommentsListResponseSchemaMetaTargetTargetId2 err := json.Unmarshal(t.union, &body) return body, err } -// FromCommentsListResponseSchemaTargetTargetId2 overwrites any union data inside the CommentsListResponseSchema_Target_TargetId as the provided CommentsListResponseSchemaTargetTargetId2 -func (t *CommentsListResponseSchema_Target_TargetId) FromCommentsListResponseSchemaTargetTargetId2(v CommentsListResponseSchemaTargetTargetId2) error { +// FromCommentsListResponseSchemaMetaTargetTargetId2 overwrites any union data inside the CommentsListResponseSchema_Meta_Target_TargetId as the provided CommentsListResponseSchemaMetaTargetTargetId2 +func (t *CommentsListResponseSchema_Meta_Target_TargetId) FromCommentsListResponseSchemaMetaTargetTargetId2(v CommentsListResponseSchemaMetaTargetTargetId2) error { b, err := json.Marshal(v) t.union = b return err } -// MergeCommentsListResponseSchemaTargetTargetId2 performs a merge with any union data inside the CommentsListResponseSchema_Target_TargetId, using the provided CommentsListResponseSchemaTargetTargetId2 -func (t *CommentsListResponseSchema_Target_TargetId) MergeCommentsListResponseSchemaTargetTargetId2(v CommentsListResponseSchemaTargetTargetId2) error { +// MergeCommentsListResponseSchemaMetaTargetTargetId2 performs a merge with any union data inside the CommentsListResponseSchema_Meta_Target_TargetId, using the provided CommentsListResponseSchemaMetaTargetTargetId2 +func (t *CommentsListResponseSchema_Meta_Target_TargetId) MergeCommentsListResponseSchemaMetaTargetTargetId2(v CommentsListResponseSchemaMetaTargetTargetId2) error { b, err := json.Marshal(v) if err != nil { return err @@ -8077,12 +8118,12 @@ func (t *CommentsListResponseSchema_Target_TargetId) MergeCommentsListResponseSc return err } -func (t CommentsListResponseSchema_Target_TargetId) MarshalJSON() ([]byte, error) { +func (t CommentsListResponseSchema_Meta_Target_TargetId) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } -func (t *CommentsListResponseSchema_Target_TargetId) UnmarshalJSON(b []byte) error { +func (t *CommentsListResponseSchema_Meta_Target_TargetId) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } @@ -10357,7 +10398,7 @@ type ClientInterface interface { UpdateTodo(ctx context.Context, id string, body UpdateTodoJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) // ListUploads request - ListUploads(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + ListUploads(ctx context.Context, params *ListUploadsParams, reqEditors ...RequestEditorFn) (*http.Response, error) // CreateUploadWithBody request with any body CreateUploadWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -11575,8 +11616,8 @@ func (c *Client) UpdateTodo(ctx context.Context, id string, body UpdateTodoJSONR return c.Client.Do(req) } -func (c *Client) ListUploads(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewListUploadsRequest(c.Server) +func (c *Client) ListUploads(ctx context.Context, params *ListUploadsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewListUploadsRequest(c.Server, params) if err != nil { return nil, err } @@ -11745,6 +11786,38 @@ func NewListAdminCommentsRequest(server string, params *ListAdminCommentsParams) } + if params.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -11889,6 +11962,38 @@ func NewListAdminDescriptionsRequest(server string, params *ListAdminDescription } + if params.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -12017,6 +12122,38 @@ func NewListAdminHomeworksRequest(server string, params *ListAdminHomeworksParam } + if params.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -12233,6 +12370,22 @@ func NewListAdminUsersRequest(server string, params *ListAdminUsersParams) (*htt } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -13086,6 +13239,54 @@ func NewListCommentsRequest(server string, params *ListCommentsParams) (*http.Re } + if params.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + queryURL.RawQuery = queryValues.Encode() } @@ -13493,6 +13694,22 @@ func NewListCoursesRequest(server string, params *ListCoursesParams) (*http.Requ } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -14745,6 +14962,22 @@ func NewListSchedulesRequest(server string, params *ListSchedulesParams) (*http. } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -14986,6 +15219,22 @@ func NewListSectionsRequest(server string, params *ListSectionsParams) (*http.Re } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -15326,6 +15575,22 @@ func NewListSemestersRequest(server string, params *ListSemestersParams) (*http. } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -15450,6 +15715,22 @@ func NewListTeachersRequest(server string, params *ListTeachersParams) (*http.Re } + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + if params.Limit != nil { if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { @@ -15826,7 +16107,7 @@ func NewUpdateTodoRequestWithBody(server string, id string, contentType string, } // NewListUploadsRequest generates requests for ListUploads -func NewListUploadsRequest(server string) (*http.Request, error) { +func NewListUploadsRequest(server string, params *ListUploadsParams) (*http.Request, error) { var err error serverURL, err := url.Parse(server) @@ -15844,6 +16125,60 @@ func NewListUploadsRequest(server string) (*http.Request, error) { return nil, err } + if params != nil { + queryValues := queryURL.Query() + + if params.Page != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "page", *params.Page, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "pageSize", *params.PageSize, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "limit", *params.Limit, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "integer", Format: "int64"}); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + } + req, err := http.NewRequest("GET", queryURL.String(), nil) if err != nil { return nil, err @@ -16462,7 +16797,7 @@ type ClientWithResponsesInterface interface { UpdateTodoWithResponse(ctx context.Context, id string, body UpdateTodoJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateTodoResponse, error) // ListUploadsWithResponse request - ListUploadsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListUploadsResponse, error) + ListUploadsWithResponse(ctx context.Context, params *ListUploadsParams, reqEditors ...RequestEditorFn) (*ListUploadsResponse, error) // CreateUploadWithBodyWithResponse request with any body CreateUploadWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateUploadResponse, error) @@ -16667,7 +17002,7 @@ func (r ListAdminSuspensionsResponse) StatusCode() int { type CreateAdminSuspensionResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *AdminSuspensionResponseSchema + JSON201 *AdminSuspensionResponseSchema JSON400 *OpenApiErrorSchema JSON401 *OpenApiErrorSchema JSON403 *OpenApiErrorSchema @@ -17082,7 +17417,7 @@ func (r ListCommentsResponse) StatusCode() int { type CreateCommentResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *IdResponseSchema + JSON201 *IdResponseSchema JSON400 *OpenApiErrorSchema JSON401 *OpenApiErrorSchema JSON403 *OpenApiErrorSchema @@ -17472,7 +17807,7 @@ func (r ListHomeworksResponse) StatusCode() int { type CreateHomeworkResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *HomeworkCreateResponseSchema + JSON201 *HomeworkCreateResponseSchema JSON400 *OpenApiErrorSchema JSON401 *OpenApiErrorSchema JSON403 *OpenApiErrorSchema @@ -18061,7 +18396,7 @@ func (r ListTodosResponse) StatusCode() int { type CreateTodoResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *IdResponseSchema + JSON201 *IdResponseSchema JSON400 *OpenApiErrorSchema JSON401 *OpenApiErrorSchema } @@ -18185,6 +18520,7 @@ type ListUploadsResponse struct { Body []byte HTTPResponse *http.Response JSON200 *UploadsListResponseSchema + JSON400 *OpenApiErrorSchema JSON401 *OpenApiErrorSchema } @@ -19243,8 +19579,8 @@ func (c *ClientWithResponses) UpdateTodoWithResponse(ctx context.Context, id str } // ListUploadsWithResponse request returning *ListUploadsResponse -func (c *ClientWithResponses) ListUploadsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListUploadsResponse, error) { - rsp, err := c.ListUploads(ctx, reqEditors...) +func (c *ClientWithResponses) ListUploadsWithResponse(ctx context.Context, params *ListUploadsParams, reqEditors ...RequestEditorFn) (*ListUploadsResponse, error) { + rsp, err := c.ListUploads(ctx, params, reqEditors...) if err != nil { return nil, err } @@ -19660,12 +19996,12 @@ func ParseCreateAdminSuspensionResponse(rsp *http.Response) (*CreateAdminSuspens } switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: var dest AdminSuspensionResponseSchema if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON200 = &dest + response.JSON201 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: var dest OpenApiErrorSchema @@ -20389,12 +20725,12 @@ func ParseCreateCommentResponse(rsp *http.Response) (*CreateCommentResponse, err } switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: var dest IdResponseSchema if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON200 = &dest + response.JSON201 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: var dest OpenApiErrorSchema @@ -21065,12 +21401,12 @@ func ParseCreateHomeworkResponse(rsp *http.Response) (*CreateHomeworkResponse, e } switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: var dest HomeworkCreateResponseSchema if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON200 = &dest + response.JSON201 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: var dest OpenApiErrorSchema @@ -21988,12 +22324,12 @@ func ParseCreateTodoResponse(rsp *http.Response) (*CreateTodoResponse, error) { } switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: var dest IdResponseSchema if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON200 = &dest + response.JSON201 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: var dest OpenApiErrorSchema @@ -22216,6 +22552,13 @@ func ParseListUploadsResponse(rsp *http.Response) (*ListUploadsResponse, error) } response.JSON200 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest OpenApiErrorSchema + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: var dest OpenApiErrorSchema if err := json.Unmarshal(bodyBytes, &dest); err != nil {