diff --git a/polylan_submitter/noita/api.py b/polylan_submitter/noita/api.py index 69544ef..5fa154b 100644 --- a/polylan_submitter/noita/api.py +++ b/polylan_submitter/noita/api.py @@ -239,7 +239,9 @@ def get_leaderboard(request: HttpRequest, event_path: str): return data -@router.post(f"{PREFIX}/submit", response={200: NoitaSubmissionOut, 400: dict}) +@router.post( + f"{PREFIX}/submit", response={200: NoitaSubmissionOut, 400: dict, 500: dict} +) @decorate_view(require_game_enabled(NOITA_APP_ID)) def submit_log_file( request: HttpRequest, event_path: str, file: UploadedFile = File(...) diff --git a/polylan_submitter/opus_magnum/api.py b/polylan_submitter/opus_magnum/api.py index 0f8dd5d..1a613b3 100644 --- a/polylan_submitter/opus_magnum/api.py +++ b/polylan_submitter/opus_magnum/api.py @@ -73,7 +73,9 @@ def get_submission(request, event_path: str, submission_id: str): ) -@router.post(f"{PREFIX}/submissions", response=SubmissionOut) +@router.post( + f"{PREFIX}/submissions", response={200: SubmissionOut, 400: dict, 500: dict} +) @decorate_view(require_game_enabled(OPUS_MAGNUM_APP_ID)) def create_submission( request, event_path: str, data: SubmissionIn, files: List[UploadedFile] = File(...) @@ -211,7 +213,10 @@ def create_submission( return 500, {"detail": f"Error creating submission: {str(e)}"} -@router.put(f"{PREFIX}/responses/{{response_id}}/validate", response=PuzzleResponseOut) +@router.put( + f"{PREFIX}/responses/{{response_id}}/validate", + response={200: PuzzleResponseOut, 403: dict}, +) @decorate_view(require_game_enabled(OPUS_MAGNUM_APP_ID)) def validate_response(request, event_path: str, response_id: int, data: ValidationIn): """Manually validate a puzzle response""" @@ -252,7 +257,8 @@ def validate_response(request, event_path: str, response_id: int, data: Validati @router.put( - f"{PREFIX}/responses/{{response_id}}/validate/auto", response=PuzzleResponseOut + f"{PREFIX}/responses/{{response_id}}/validate/auto", + response={200: PuzzleResponseOut, 403: dict}, ) @decorate_view(require_game_enabled(OPUS_MAGNUM_APP_ID)) def validate_auto(request, event_path: str, response_id: int): @@ -271,7 +277,10 @@ def validate_auto(request, event_path: str, response_id: int): return response -@router.get(f"{PREFIX}/responses/needs-validation", response=List[PuzzleResponseOut]) +@router.get( + f"{PREFIX}/responses/needs-validation", + response={200: List[PuzzleResponseOut], 403: dict}, +) @decorate_view(require_game_enabled(OPUS_MAGNUM_APP_ID)) def list_responses_needing_validation(request, event_path: str): """Get all responses that need manual validation""" @@ -289,7 +298,10 @@ def list_responses_needing_validation(request, event_path: str): ) -@router.post(f"{PREFIX}/submissions/{{submission_id}}/validate", response=SubmissionOut) +@router.post( + f"{PREFIX}/submissions/{{submission_id}}/validate", + response={200: SubmissionOut, 403: dict}, +) @decorate_view(require_game_enabled(OPUS_MAGNUM_APP_ID)) def validate_submission(request, event_path: str, submission_id: str): """Mark entire submission as validated""" @@ -318,7 +330,9 @@ def validate_submission(request, event_path: str, submission_id: str): return submission -@router.delete(f"{PREFIX}/submissions/{{submission_id}}") +@router.delete( + f"{PREFIX}/submissions/{{submission_id}}", response={200: dict, 403: dict} +) @decorate_view(require_game_enabled(OPUS_MAGNUM_APP_ID)) def delete_submission(request, event_path: str, submission_id: str): """Delete a submission (admin only)""" diff --git a/polylan_submitter/polylan_submitter/api.py b/polylan_submitter/polylan_submitter/api.py index f749036..d88815b 100644 --- a/polylan_submitter/polylan_submitter/api.py +++ b/polylan_submitter/polylan_submitter/api.py @@ -57,14 +57,14 @@ api.add_router("", market_router, tags=["market"]) # Health check endpoint -@api.get("/health") +@api.get("/health", response=dict) def health_check(request): """Health check endpoint""" return {"status": "healthy", "service": "polylan-submitter-api"} # Cache management endpoint -@api.post("/cache/clear") +@api.post("/cache/clear", response={200: dict, 403: dict}) def clear_cache(request: HttpRequest, event_path: str | None = None): """Clear API caches (admin only). Pass event_path to clear just that event's keys.""" if not request.user.is_authenticated or not request.user.is_staff: diff --git a/polylan_submitter/src/api/@tanstack/vue-query.gen.ts b/polylan_submitter/src/api/@tanstack/vue-query.gen.ts index 330faf9..41c950a 100644 --- a/polylan_submitter/src/api/@tanstack/vue-query.gen.ts +++ b/polylan_submitter/src/api/@tanstack/vue-query.gen.ts @@ -4,7 +4,7 @@ import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOption import { client } from '../client.gen'; import { animationsApiPuzzleResults, animationsApiResults, animationsApiTopSubmissions, clockApiCurrentState, clockApiMyStats, gamesApiListEventGames, gamesApiListEventSteamGames, gamesApiListGames, marketApiBetHistory, marketApiCloseMarket, marketApiCreateBet, marketApiGetUserPoints, marketApiListMarkets, marketApiListUserBets, marketApiResolveMarket, noitaApiGetLeaderboard, noitaApiGetResults, noitaApiSubmitLogFile, type Options, opusMagnumApiCreateSubmission, opusMagnumApiDeleteSubmission, opusMagnumApiGetCollection, opusMagnumApiGetStats, opusMagnumApiGetSubmission, opusMagnumApiListPuzzles, opusMagnumApiListResponsesNeedingValidation, opusMagnumApiListSubmissions, opusMagnumApiValidateAuto, opusMagnumApiValidateResponse, opusMagnumApiValidateSubmission, placeApiCanvas, placeApiEvolutionGif, polylanSubmitterApiClearCache, polylanSubmitterApiGetUserInfo, polylanSubmitterApiHealthCheck, submissionsApiCreateImageCrop, submissionsApiCreateSubmission, submissionsApiDeleteImageCrop, submissionsApiGetSubmission, submissionsApiListAvailableScopes, submissionsApiListMyScopes, submissionsApiListSubmissionsByGame, submissionsApiListUserSubmissions, submissionsApiProcessCropOcr, submissionsApiProcessFileOcr, submissionsApiStopSyncScopes, submissionsApiSyncScopes, submissionsApiSyncScopesStatus } from '../sdk.gen'; -import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponse, AnimationsApiResultsData, AnimationsApiResultsResponse, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponse, ClockApiCurrentStateData, ClockApiCurrentStateResponse, ClockApiMyStatsData, ClockApiMyStatsResponse, GamesApiListEventGamesData, GamesApiListEventGamesResponse, GamesApiListEventSteamGamesData, GamesApiListEventSteamGamesResponse, GamesApiListGamesData, GamesApiListGamesResponse, MarketApiBetHistoryData, MarketApiBetHistoryResponse, MarketApiCloseMarketData, MarketApiCreateBetData, MarketApiCreateBetResponse, MarketApiGetUserPointsData, MarketApiGetUserPointsResponse, MarketApiListMarketsData, MarketApiListMarketsResponse, MarketApiListUserBetsData, MarketApiListUserBetsResponse, MarketApiResolveMarketData, MarketApiResolveMarketResponse, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponse, NoitaApiGetResultsData, NoitaApiGetResultsResponse, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileError, NoitaApiSubmitLogFileResponse, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponse, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponse, OpusMagnumApiGetStatsData, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponse, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponse, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponse, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponse, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponse, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponse, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponse, PlaceApiCanvasData, PlaceApiEvolutionGifData, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponse, PolylanSubmitterApiHealthCheckData, SubmissionsApiCreateImageCropData, SubmissionsApiCreateImageCropResponse, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionError, SubmissionsApiCreateSubmissionResponse, SubmissionsApiDeleteImageCropData, SubmissionsApiDeleteImageCropResponse, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionResponse, SubmissionsApiListAvailableScopesData, SubmissionsApiListAvailableScopesError, SubmissionsApiListAvailableScopesResponse, SubmissionsApiListMyScopesData, SubmissionsApiListMyScopesError, SubmissionsApiListMyScopesResponse, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameResponse, SubmissionsApiListUserSubmissionsData, SubmissionsApiListUserSubmissionsError, SubmissionsApiListUserSubmissionsResponse, SubmissionsApiProcessCropOcrData, SubmissionsApiProcessCropOcrResponse, SubmissionsApiProcessFileOcrData, SubmissionsApiProcessFileOcrResponse, SubmissionsApiStopSyncScopesData, SubmissionsApiStopSyncScopesError, SubmissionsApiStopSyncScopesResponse, SubmissionsApiSyncScopesData, SubmissionsApiSyncScopesError, SubmissionsApiSyncScopesResponse, SubmissionsApiSyncScopesStatusData, SubmissionsApiSyncScopesStatusError, SubmissionsApiSyncScopesStatusResponse } from '../types.gen'; +import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponse, AnimationsApiResultsData, AnimationsApiResultsResponse, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponse, ClockApiCurrentStateData, ClockApiCurrentStateResponse, ClockApiMyStatsData, ClockApiMyStatsResponse, GamesApiListEventGamesData, GamesApiListEventGamesResponse, GamesApiListEventSteamGamesData, GamesApiListEventSteamGamesResponse, GamesApiListGamesData, GamesApiListGamesResponse, MarketApiBetHistoryData, MarketApiBetHistoryResponse, MarketApiCloseMarketData, MarketApiCreateBetData, MarketApiCreateBetResponse, MarketApiGetUserPointsData, MarketApiGetUserPointsResponse, MarketApiListMarketsData, MarketApiListMarketsResponse, MarketApiListUserBetsData, MarketApiListUserBetsResponse, MarketApiResolveMarketData, MarketApiResolveMarketResponse, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponse, NoitaApiGetResultsData, NoitaApiGetResultsResponse, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileError, NoitaApiSubmitLogFileResponse, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionError, OpusMagnumApiCreateSubmissionResponse, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionError, OpusMagnumApiDeleteSubmissionResponse, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponse, OpusMagnumApiGetStatsData, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponse, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponse, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationError, OpusMagnumApiListResponsesNeedingValidationResponse, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponse, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoError, OpusMagnumApiValidateAutoResponse, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseError, OpusMagnumApiValidateResponseResponse, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionError, OpusMagnumApiValidateSubmissionResponse, PlaceApiCanvasData, PlaceApiEvolutionGifData, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheError, PolylanSubmitterApiClearCacheResponse, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponse, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponse, SubmissionsApiCreateImageCropData, SubmissionsApiCreateImageCropError, SubmissionsApiCreateImageCropResponse, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionError, SubmissionsApiCreateSubmissionResponse, SubmissionsApiDeleteImageCropData, SubmissionsApiDeleteImageCropError, SubmissionsApiDeleteImageCropResponse, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionError, SubmissionsApiGetSubmissionResponse, SubmissionsApiListAvailableScopesData, SubmissionsApiListAvailableScopesError, SubmissionsApiListAvailableScopesResponse, SubmissionsApiListMyScopesData, SubmissionsApiListMyScopesError, SubmissionsApiListMyScopesResponse, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameError, SubmissionsApiListSubmissionsByGameResponse, SubmissionsApiListUserSubmissionsData, SubmissionsApiListUserSubmissionsError, SubmissionsApiListUserSubmissionsResponse, SubmissionsApiProcessCropOcrData, SubmissionsApiProcessCropOcrError, SubmissionsApiProcessCropOcrResponse, SubmissionsApiProcessFileOcrData, SubmissionsApiProcessFileOcrError, SubmissionsApiProcessFileOcrResponse, SubmissionsApiStopSyncScopesData, SubmissionsApiStopSyncScopesError, SubmissionsApiStopSyncScopesResponse, SubmissionsApiSyncScopesData, SubmissionsApiSyncScopesError, SubmissionsApiSyncScopesResponse, SubmissionsApiSyncScopesStatusData, SubmissionsApiSyncScopesStatusError, SubmissionsApiSyncScopesStatusResponse } from '../types.gen'; export type QueryKey = [ Pick & { @@ -46,7 +46,7 @@ export const polylanSubmitterApiHealthCheckQueryKey = (options?: Options) => queryOptions>({ +export const polylanSubmitterApiHealthCheckOptions = (options?: Options) => queryOptions>({ queryFn: async ({ queryKey, signal }) => { const { data } = await polylanSubmitterApiHealthCheck({ ...options, @@ -64,8 +64,8 @@ export const polylanSubmitterApiHealthCheckOptions = (options?: Options>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const polylanSubmitterApiClearCacheMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await polylanSubmitterApiClearCache({ ...options, @@ -239,8 +239,8 @@ export const opusMagnumApiListSubmissionsInfiniteOptions = (options: Options>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const opusMagnumApiCreateSubmissionMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await opusMagnumApiCreateSubmission({ ...options, @@ -258,8 +258,8 @@ export const opusMagnumApiCreateSubmissionMutation = (options?: Partial>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const opusMagnumApiDeleteSubmissionMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await opusMagnumApiDeleteSubmission({ ...options, @@ -297,8 +297,8 @@ export const opusMagnumApiGetSubmissionOptions = (options: Options>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const opusMagnumApiValidateResponseMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await opusMagnumApiValidateResponse({ ...options, @@ -316,8 +316,8 @@ export const opusMagnumApiValidateResponseMutation = (options?: Partial>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const opusMagnumApiValidateAutoMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await opusMagnumApiValidateAuto({ ...options, @@ -337,7 +337,7 @@ export const opusMagnumApiListResponsesNeedingValidationQueryKey = (options: Opt * * Get all responses that need manual validation */ -export const opusMagnumApiListResponsesNeedingValidationOptions = (options: Options) => queryOptions>({ +export const opusMagnumApiListResponsesNeedingValidationOptions = (options: Options) => queryOptions>({ queryFn: async ({ queryKey, signal }) => { const { data } = await opusMagnumApiListResponsesNeedingValidation({ ...options, @@ -355,8 +355,8 @@ export const opusMagnumApiListResponsesNeedingValidationOptions = (options: Opti * * Mark entire submission as validated */ -export const opusMagnumApiValidateSubmissionMutation = (options?: Partial>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const opusMagnumApiValidateSubmissionMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await opusMagnumApiValidateSubmission({ ...options, @@ -695,7 +695,7 @@ export const submissionsApiListSubmissionsByGameQueryKey = (options: Options) => queryOptions>({ +export const submissionsApiListSubmissionsByGameOptions = (options: Options) => queryOptions>({ queryFn: async ({ queryKey, signal }) => { const { data } = await submissionsApiListSubmissionsByGame({ ...options, @@ -713,7 +713,7 @@ export const submissionsApiGetSubmissionQueryKey = (options: Options) => queryOptions>({ +export const submissionsApiGetSubmissionOptions = (options: Options) => queryOptions>({ queryFn: async ({ queryKey, signal }) => { const { data } = await submissionsApiGetSubmission({ ...options, @@ -729,8 +729,8 @@ export const submissionsApiGetSubmissionOptions = (options: Options>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const submissionsApiCreateImageCropMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await submissionsApiCreateImageCrop({ ...options, @@ -746,8 +746,8 @@ export const submissionsApiCreateImageCropMutation = (options?: Partial>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const submissionsApiDeleteImageCropMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await submissionsApiDeleteImageCrop({ ...options, @@ -763,8 +763,8 @@ export const submissionsApiDeleteImageCropMutation = (options?: Partial>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const submissionsApiProcessFileOcrMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await submissionsApiProcessFileOcr({ ...options, @@ -780,8 +780,8 @@ export const submissionsApiProcessFileOcrMutation = (options?: Partial>): UseMutationOptions> => { - const mutationOptions: UseMutationOptions> = { +export const submissionsApiProcessCropOcrMutation = (options?: Partial>): UseMutationOptions> => { + const mutationOptions: UseMutationOptions> = { mutationFn: async (fnOptions) => { const { data } = await submissionsApiProcessCropOcr({ ...options, diff --git a/polylan_submitter/src/api/index.ts b/polylan_submitter/src/api/index.ts index 1536eea..d862635 100644 --- a/polylan_submitter/src/api/index.ts +++ b/polylan_submitter/src/api/index.ts @@ -1,4 +1,4 @@ // This file is auto-generated by @hey-api/openapi-ts export { animationsApiPuzzleResults, animationsApiResults, animationsApiTopSubmissions, clockApiCurrentState, clockApiMyStats, gamesApiListEventGames, gamesApiListEventSteamGames, gamesApiListGames, marketApiBetHistory, marketApiCloseMarket, marketApiCreateBet, marketApiGetUserPoints, marketApiListMarkets, marketApiListUserBets, marketApiResolveMarket, noitaApiGetLeaderboard, noitaApiGetResults, noitaApiSubmitLogFile, type Options, opusMagnumApiCreateSubmission, opusMagnumApiDeleteSubmission, opusMagnumApiGetCollection, opusMagnumApiGetStats, opusMagnumApiGetSubmission, opusMagnumApiListPuzzles, opusMagnumApiListResponsesNeedingValidation, opusMagnumApiListSubmissions, opusMagnumApiValidateAuto, opusMagnumApiValidateResponse, opusMagnumApiValidateSubmission, placeApiCanvas, placeApiEvolutionGif, polylanSubmitterApiClearCache, polylanSubmitterApiGetUserInfo, polylanSubmitterApiHealthCheck, submissionsApiCreateImageCrop, submissionsApiCreateSubmission, submissionsApiDeleteImageCrop, submissionsApiGetSubmission, submissionsApiListAvailableScopes, submissionsApiListMyScopes, submissionsApiListSubmissionsByGame, submissionsApiListUserSubmissions, submissionsApiProcessCropOcr, submissionsApiProcessFileOcr, submissionsApiStopSyncScopes, submissionsApiSyncScopes, submissionsApiSyncScopesStatus } from './sdk.gen'; -export type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponse, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponse, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponse, AnimationsApiTopSubmissionsResponses, BetHistoryPointSchema, ClientOptions, ClockApiCurrentStateData, ClockApiCurrentStateResponse, ClockApiCurrentStateResponses, ClockApiMyStatsData, ClockApiMyStatsResponse, ClockApiMyStatsResponses, ClockStateOut, GameOut, GamesApiListEventGamesData, GamesApiListEventGamesResponse, GamesApiListEventGamesResponses, GamesApiListEventSteamGamesData, GamesApiListEventSteamGamesResponse, GamesApiListEventSteamGamesResponses, GamesApiListGamesData, GamesApiListGamesResponse, GamesApiListGamesResponses, ImageCropIn, ImageCropOut, Input, LeaderboardEntryOut, LeaderboardOut, MarketApiBetHistoryData, MarketApiBetHistoryResponse, MarketApiBetHistoryResponses, MarketApiCloseMarketData, MarketApiCloseMarketResponses, MarketApiCreateBetData, MarketApiCreateBetResponse, MarketApiCreateBetResponses, MarketApiGetUserPointsData, MarketApiGetUserPointsResponse, MarketApiGetUserPointsResponses, MarketApiListMarketsData, MarketApiListMarketsResponse, MarketApiListMarketsResponses, MarketApiListUserBetsData, MarketApiListUserBetsResponse, MarketApiListUserBetsResponses, MarketApiResolveMarketData, MarketApiResolveMarketResponse, MarketApiResolveMarketResponses, MarketListSchema, MarketOptionSchema, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponse, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponse, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileError, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponse, NoitaApiSubmitLogFileResponses, NoitaSubmissionOut, ObjectivResultOut, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponse, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponse, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponse, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponse, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponse, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponse, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponse, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponse, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponse, OpusMagnumApiValidateSubmissionResponses, PagedSubmissionOut, PlaceApiCanvasData, PlaceApiCanvasResponses, PlaceApiEvolutionGifData, PlaceApiEvolutionGifResponses, PlayerStatsOut, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponse, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses, PuzzlePointsFactorOut, PuzzleResponseIn, PuzzleResponseOut, PuzzleResponseRankingOut, PuzzleResultsOut, PuzzleSubmissionsOut, PuzzleSubmissionWithRankOut, RankingSchema, ResolveMarketSchema, ResultsOut, ScopeOut, SteamCollectionItemOut, SteamCollectionOut, SteamGameOut, SubmissionFileOut, SubmissionIn, SubmissionOut, SubmissionsApiCreateImageCropData, SubmissionsApiCreateImageCropResponse, SubmissionsApiCreateImageCropResponses, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionError, SubmissionsApiCreateSubmissionErrors, SubmissionsApiCreateSubmissionResponse, SubmissionsApiCreateSubmissionResponses, SubmissionsApiDeleteImageCropData, SubmissionsApiDeleteImageCropResponse, SubmissionsApiDeleteImageCropResponses, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionResponse, SubmissionsApiGetSubmissionResponses, SubmissionsApiListAvailableScopesData, SubmissionsApiListAvailableScopesError, SubmissionsApiListAvailableScopesErrors, SubmissionsApiListAvailableScopesResponse, SubmissionsApiListAvailableScopesResponses, SubmissionsApiListMyScopesData, SubmissionsApiListMyScopesError, SubmissionsApiListMyScopesErrors, SubmissionsApiListMyScopesResponse, SubmissionsApiListMyScopesResponses, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameResponse, SubmissionsApiListSubmissionsByGameResponses, SubmissionsApiListUserSubmissionsData, SubmissionsApiListUserSubmissionsError, SubmissionsApiListUserSubmissionsErrors, SubmissionsApiListUserSubmissionsResponse, SubmissionsApiListUserSubmissionsResponses, SubmissionsApiProcessCropOcrData, SubmissionsApiProcessCropOcrResponse, SubmissionsApiProcessCropOcrResponses, SubmissionsApiProcessFileOcrData, SubmissionsApiProcessFileOcrResponse, SubmissionsApiProcessFileOcrResponses, SubmissionsApiStopSyncScopesData, SubmissionsApiStopSyncScopesError, SubmissionsApiStopSyncScopesErrors, SubmissionsApiStopSyncScopesResponse, SubmissionsApiStopSyncScopesResponses, SubmissionsApiSyncScopesData, SubmissionsApiSyncScopesError, SubmissionsApiSyncScopesErrors, SubmissionsApiSyncScopesResponse, SubmissionsApiSyncScopesResponses, SubmissionsApiSyncScopesStatusData, SubmissionsApiSyncScopesStatusError, SubmissionsApiSyncScopesStatusErrors, SubmissionsApiSyncScopesStatusResponse, SubmissionsApiSyncScopesStatusResponses, SyncScopesIn, SyncScopesOut, SyncScopesStatusOut, SyncScopesStopOut, TournamentPuzzleResultsOut, TournamentSubmissionsOut, UserBetCreateSchema, UserBetSchema, UserDisplayOut, UserInfoOut, UserPointsSchema, ValidationIn, WinnerFileOut, WinnerResponseOut } from './types.gen'; +export type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponse, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponse, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponse, AnimationsApiTopSubmissionsResponses, BetHistoryPointSchema, ClientOptions, ClockApiCurrentStateData, ClockApiCurrentStateResponse, ClockApiCurrentStateResponses, ClockApiMyStatsData, ClockApiMyStatsResponse, ClockApiMyStatsResponses, ClockStateOut, GameOut, GamesApiListEventGamesData, GamesApiListEventGamesResponse, GamesApiListEventGamesResponses, GamesApiListEventSteamGamesData, GamesApiListEventSteamGamesResponse, GamesApiListEventSteamGamesResponses, GamesApiListGamesData, GamesApiListGamesResponse, GamesApiListGamesResponses, ImageCropIn, ImageCropOut, Input, LeaderboardEntryOut, LeaderboardOut, MarketApiBetHistoryData, MarketApiBetHistoryResponse, MarketApiBetHistoryResponses, MarketApiCloseMarketData, MarketApiCloseMarketResponses, MarketApiCreateBetData, MarketApiCreateBetResponse, MarketApiCreateBetResponses, MarketApiGetUserPointsData, MarketApiGetUserPointsResponse, MarketApiGetUserPointsResponses, MarketApiListMarketsData, MarketApiListMarketsResponse, MarketApiListMarketsResponses, MarketApiListUserBetsData, MarketApiListUserBetsResponse, MarketApiListUserBetsResponses, MarketApiResolveMarketData, MarketApiResolveMarketResponse, MarketApiResolveMarketResponses, MarketListSchema, MarketOptionSchema, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponse, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponse, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileError, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponse, NoitaApiSubmitLogFileResponses, NoitaSubmissionOut, ObjectivResultOut, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionError, OpusMagnumApiCreateSubmissionErrors, OpusMagnumApiCreateSubmissionResponse, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionError, OpusMagnumApiDeleteSubmissionErrors, OpusMagnumApiDeleteSubmissionResponse, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponse, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponse, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponse, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationError, OpusMagnumApiListResponsesNeedingValidationErrors, OpusMagnumApiListResponsesNeedingValidationResponse, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponse, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoError, OpusMagnumApiValidateAutoErrors, OpusMagnumApiValidateAutoResponse, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseError, OpusMagnumApiValidateResponseErrors, OpusMagnumApiValidateResponseResponse, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionError, OpusMagnumApiValidateSubmissionErrors, OpusMagnumApiValidateSubmissionResponse, OpusMagnumApiValidateSubmissionResponses, PagedSubmissionOut, PlaceApiCanvasData, PlaceApiCanvasResponses, PlaceApiEvolutionGifData, PlaceApiEvolutionGifResponses, PlayerStatsOut, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheError, PolylanSubmitterApiClearCacheErrors, PolylanSubmitterApiClearCacheResponse, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponse, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponse, PolylanSubmitterApiHealthCheckResponses, PuzzlePointsFactorOut, PuzzleResponseIn, PuzzleResponseOut, PuzzleResponseRankingOut, PuzzleResultsOut, PuzzleSubmissionsOut, PuzzleSubmissionWithRankOut, RankingSchema, ResolveMarketSchema, ResultsOut, ScopeOut, SteamCollectionItemOut, SteamCollectionOut, SteamGameOut, SubmissionFileOut, SubmissionIn, SubmissionOut, SubmissionsApiCreateImageCropData, SubmissionsApiCreateImageCropError, SubmissionsApiCreateImageCropErrors, SubmissionsApiCreateImageCropResponse, SubmissionsApiCreateImageCropResponses, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionError, SubmissionsApiCreateSubmissionErrors, SubmissionsApiCreateSubmissionResponse, SubmissionsApiCreateSubmissionResponses, SubmissionsApiDeleteImageCropData, SubmissionsApiDeleteImageCropError, SubmissionsApiDeleteImageCropErrors, SubmissionsApiDeleteImageCropResponse, SubmissionsApiDeleteImageCropResponses, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionError, SubmissionsApiGetSubmissionErrors, SubmissionsApiGetSubmissionResponse, SubmissionsApiGetSubmissionResponses, SubmissionsApiListAvailableScopesData, SubmissionsApiListAvailableScopesError, SubmissionsApiListAvailableScopesErrors, SubmissionsApiListAvailableScopesResponse, SubmissionsApiListAvailableScopesResponses, SubmissionsApiListMyScopesData, SubmissionsApiListMyScopesError, SubmissionsApiListMyScopesErrors, SubmissionsApiListMyScopesResponse, SubmissionsApiListMyScopesResponses, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameError, SubmissionsApiListSubmissionsByGameErrors, SubmissionsApiListSubmissionsByGameResponse, SubmissionsApiListSubmissionsByGameResponses, SubmissionsApiListUserSubmissionsData, SubmissionsApiListUserSubmissionsError, SubmissionsApiListUserSubmissionsErrors, SubmissionsApiListUserSubmissionsResponse, SubmissionsApiListUserSubmissionsResponses, SubmissionsApiProcessCropOcrData, SubmissionsApiProcessCropOcrError, SubmissionsApiProcessCropOcrErrors, SubmissionsApiProcessCropOcrResponse, SubmissionsApiProcessCropOcrResponses, SubmissionsApiProcessFileOcrData, SubmissionsApiProcessFileOcrError, SubmissionsApiProcessFileOcrErrors, SubmissionsApiProcessFileOcrResponse, SubmissionsApiProcessFileOcrResponses, SubmissionsApiStopSyncScopesData, SubmissionsApiStopSyncScopesError, SubmissionsApiStopSyncScopesErrors, SubmissionsApiStopSyncScopesResponse, SubmissionsApiStopSyncScopesResponses, SubmissionsApiSyncScopesData, SubmissionsApiSyncScopesError, SubmissionsApiSyncScopesErrors, SubmissionsApiSyncScopesResponse, SubmissionsApiSyncScopesResponses, SubmissionsApiSyncScopesStatusData, SubmissionsApiSyncScopesStatusError, SubmissionsApiSyncScopesStatusErrors, SubmissionsApiSyncScopesStatusResponse, SubmissionsApiSyncScopesStatusResponses, SyncScopesIn, SyncScopesOut, SyncScopesStatusOut, SyncScopesStopOut, TournamentPuzzleResultsOut, TournamentSubmissionsOut, UserBetCreateSchema, UserBetSchema, UserDisplayOut, UserInfoOut, UserPointsSchema, ValidationIn, WinnerFileOut, WinnerResponseOut } from './types.gen'; diff --git a/polylan_submitter/src/api/sdk.gen.ts b/polylan_submitter/src/api/sdk.gen.ts index ed0a513..6ff9b47 100644 --- a/polylan_submitter/src/api/sdk.gen.ts +++ b/polylan_submitter/src/api/sdk.gen.ts @@ -2,7 +2,7 @@ import { type Client, formDataBodySerializer, type Options as Options2, type TDataShape } from './client'; import { client } from './client.gen'; -import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponses, ClockApiCurrentStateData, ClockApiCurrentStateResponses, ClockApiMyStatsData, ClockApiMyStatsResponses, GamesApiListEventGamesData, GamesApiListEventGamesResponses, GamesApiListEventSteamGamesData, GamesApiListEventSteamGamesResponses, GamesApiListGamesData, GamesApiListGamesResponses, MarketApiBetHistoryData, MarketApiBetHistoryResponses, MarketApiCloseMarketData, MarketApiCloseMarketResponses, MarketApiCreateBetData, MarketApiCreateBetResponses, MarketApiGetUserPointsData, MarketApiGetUserPointsResponses, MarketApiListMarketsData, MarketApiListMarketsResponses, MarketApiListUserBetsData, MarketApiListUserBetsResponses, MarketApiResolveMarketData, MarketApiResolveMarketResponses, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponses, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponses, PlaceApiCanvasData, PlaceApiCanvasResponses, PlaceApiEvolutionGifData, PlaceApiEvolutionGifResponses, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses, SubmissionsApiCreateImageCropData, SubmissionsApiCreateImageCropResponses, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionErrors, SubmissionsApiCreateSubmissionResponses, SubmissionsApiDeleteImageCropData, SubmissionsApiDeleteImageCropResponses, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionResponses, SubmissionsApiListAvailableScopesData, SubmissionsApiListAvailableScopesErrors, SubmissionsApiListAvailableScopesResponses, SubmissionsApiListMyScopesData, SubmissionsApiListMyScopesErrors, SubmissionsApiListMyScopesResponses, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameResponses, SubmissionsApiListUserSubmissionsData, SubmissionsApiListUserSubmissionsErrors, SubmissionsApiListUserSubmissionsResponses, SubmissionsApiProcessCropOcrData, SubmissionsApiProcessCropOcrResponses, SubmissionsApiProcessFileOcrData, SubmissionsApiProcessFileOcrResponses, SubmissionsApiStopSyncScopesData, SubmissionsApiStopSyncScopesErrors, SubmissionsApiStopSyncScopesResponses, SubmissionsApiSyncScopesData, SubmissionsApiSyncScopesErrors, SubmissionsApiSyncScopesResponses, SubmissionsApiSyncScopesStatusData, SubmissionsApiSyncScopesStatusErrors, SubmissionsApiSyncScopesStatusResponses } from './types.gen'; +import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponses, ClockApiCurrentStateData, ClockApiCurrentStateResponses, ClockApiMyStatsData, ClockApiMyStatsResponses, GamesApiListEventGamesData, GamesApiListEventGamesResponses, GamesApiListEventSteamGamesData, GamesApiListEventSteamGamesResponses, GamesApiListGamesData, GamesApiListGamesResponses, MarketApiBetHistoryData, MarketApiBetHistoryResponses, MarketApiCloseMarketData, MarketApiCloseMarketResponses, MarketApiCreateBetData, MarketApiCreateBetResponses, MarketApiGetUserPointsData, MarketApiGetUserPointsResponses, MarketApiListMarketsData, MarketApiListMarketsResponses, MarketApiListUserBetsData, MarketApiListUserBetsResponses, MarketApiResolveMarketData, MarketApiResolveMarketResponses, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponses, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionErrors, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionErrors, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationErrors, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoErrors, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseErrors, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionErrors, OpusMagnumApiValidateSubmissionResponses, PlaceApiCanvasData, PlaceApiCanvasResponses, PlaceApiEvolutionGifData, PlaceApiEvolutionGifResponses, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheErrors, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses, SubmissionsApiCreateImageCropData, SubmissionsApiCreateImageCropErrors, SubmissionsApiCreateImageCropResponses, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionErrors, SubmissionsApiCreateSubmissionResponses, SubmissionsApiDeleteImageCropData, SubmissionsApiDeleteImageCropErrors, SubmissionsApiDeleteImageCropResponses, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionErrors, SubmissionsApiGetSubmissionResponses, SubmissionsApiListAvailableScopesData, SubmissionsApiListAvailableScopesErrors, SubmissionsApiListAvailableScopesResponses, SubmissionsApiListMyScopesData, SubmissionsApiListMyScopesErrors, SubmissionsApiListMyScopesResponses, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameErrors, SubmissionsApiListSubmissionsByGameResponses, SubmissionsApiListUserSubmissionsData, SubmissionsApiListUserSubmissionsErrors, SubmissionsApiListUserSubmissionsResponses, SubmissionsApiProcessCropOcrData, SubmissionsApiProcessCropOcrErrors, SubmissionsApiProcessCropOcrResponses, SubmissionsApiProcessFileOcrData, SubmissionsApiProcessFileOcrErrors, SubmissionsApiProcessFileOcrResponses, SubmissionsApiStopSyncScopesData, SubmissionsApiStopSyncScopesErrors, SubmissionsApiStopSyncScopesResponses, SubmissionsApiSyncScopesData, SubmissionsApiSyncScopesErrors, SubmissionsApiSyncScopesResponses, SubmissionsApiSyncScopesStatusData, SubmissionsApiSyncScopesStatusErrors, SubmissionsApiSyncScopesStatusResponses } from './types.gen'; export type Options = Options2 & { /** @@ -30,7 +30,7 @@ export const polylanSubmitterApiHealthCheck = (options?: Options) => (options?.client ?? client).post({ url: '/api/cache/clear', ...options }); +export const polylanSubmitterApiClearCache = (options?: Options) => (options?.client ?? client).post({ url: '/api/cache/clear', ...options }); /** * Get User Info @@ -70,7 +70,7 @@ export const opusMagnumApiListSubmissions = (options: Options) => (options.client ?? client).post({ +export const opusMagnumApiCreateSubmission = (options: Options) => (options.client ?? client).post({ ...formDataBodySerializer, url: '/api/events/{event_path}/opus-magnum/submissions', ...options, @@ -85,7 +85,7 @@ export const opusMagnumApiCreateSubmission = (options: Options) => (options.client ?? client).delete({ url: '/api/events/{event_path}/opus-magnum/submissions/{submission_id}', ...options }); +export const opusMagnumApiDeleteSubmission = (options: Options) => (options.client ?? client).delete({ url: '/api/events/{event_path}/opus-magnum/submissions/{submission_id}', ...options }); /** * Get Submission @@ -99,7 +99,7 @@ export const opusMagnumApiGetSubmission = * * Manually validate a puzzle response */ -export const opusMagnumApiValidateResponse = (options: Options) => (options.client ?? client).put({ +export const opusMagnumApiValidateResponse = (options: Options) => (options.client ?? client).put({ url: '/api/events/{event_path}/opus-magnum/responses/{response_id}/validate', ...options, headers: { @@ -113,21 +113,21 @@ export const opusMagnumApiValidateResponse = (options: Options) => (options.client ?? client).put({ url: '/api/events/{event_path}/opus-magnum/responses/{response_id}/validate/auto', ...options }); +export const opusMagnumApiValidateAuto = (options: Options) => (options.client ?? client).put({ url: '/api/events/{event_path}/opus-magnum/responses/{response_id}/validate/auto', ...options }); /** * List Responses Needing Validation * * Get all responses that need manual validation */ -export const opusMagnumApiListResponsesNeedingValidation = (options: Options) => (options.client ?? client).get({ url: '/api/events/{event_path}/opus-magnum/responses/needs-validation', ...options }); +export const opusMagnumApiListResponsesNeedingValidation = (options: Options) => (options.client ?? client).get({ url: '/api/events/{event_path}/opus-magnum/responses/needs-validation', ...options }); /** * Validate Submission * * Mark entire submission as validated */ -export const opusMagnumApiValidateSubmission = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/opus-magnum/submissions/{submission_id}/validate', ...options }); +export const opusMagnumApiValidateSubmission = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/opus-magnum/submissions/{submission_id}/validate', ...options }); /** * Get Stats @@ -272,17 +272,17 @@ export const submissionsApiListUserSubmissions = (options: Options) => (options.client ?? client).get({ url: '/api/events/{event_path}/submissions/submission/by/game', ...options }); +export const submissionsApiListSubmissionsByGame = (options: Options) => (options.client ?? client).get({ url: '/api/events/{event_path}/submissions/submission/by/game', ...options }); /** * Get Submission */ -export const submissionsApiGetSubmission = (options: Options) => (options.client ?? client).get({ url: '/api/events/{event_path}/submissions/submission/{submission_id}', ...options }); +export const submissionsApiGetSubmission = (options: Options) => (options.client ?? client).get({ url: '/api/events/{event_path}/submissions/submission/{submission_id}', ...options }); /** * Create Image Crop */ -export const submissionsApiCreateImageCrop = (options: Options) => (options.client ?? client).post({ +export const submissionsApiCreateImageCrop = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/submissions/crops/s/{submission_file_id}', ...options, headers: { @@ -294,17 +294,17 @@ export const submissionsApiCreateImageCrop = (options: Options) => (options.client ?? client).delete({ url: '/api/events/{event_path}/submissions/crops/{crop_id}', ...options }); +export const submissionsApiDeleteImageCrop = (options: Options) => (options.client ?? client).delete({ url: '/api/events/{event_path}/submissions/crops/{crop_id}', ...options }); /** * Process File Ocr */ -export const submissionsApiProcessFileOcr = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/submissions/files/{file_id}/process-ocr', ...options }); +export const submissionsApiProcessFileOcr = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/submissions/files/{file_id}/process-ocr', ...options }); /** * Process Crop Ocr */ -export const submissionsApiProcessCropOcr = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/submissions/crops/{crop_id}/process-ocr', ...options }); +export const submissionsApiProcessCropOcr = (options: Options) => (options.client ?? client).post({ url: '/api/events/{event_path}/submissions/crops/{crop_id}/process-ocr', ...options }); /** * Current State diff --git a/polylan_submitter/src/api/types.gen.ts b/polylan_submitter/src/api/types.gen.ts index ee6e0ba..54e64f9 100644 --- a/polylan_submitter/src/api/types.gen.ts +++ b/polylan_submitter/src/api/types.gen.ts @@ -1338,11 +1338,17 @@ export type PolylanSubmitterApiHealthCheckData = { export type PolylanSubmitterApiHealthCheckResponses = { /** + * Response + * * OK */ - 200: unknown; + 200: { + [key: string]: unknown; + }; }; +export type PolylanSubmitterApiHealthCheckResponse = PolylanSubmitterApiHealthCheckResponses[keyof PolylanSubmitterApiHealthCheckResponses]; + export type PolylanSubmitterApiClearCacheData = { body?: never; path?: never; @@ -1355,13 +1361,32 @@ export type PolylanSubmitterApiClearCacheData = { url: '/api/cache/clear'; }; +export type PolylanSubmitterApiClearCacheErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type PolylanSubmitterApiClearCacheError = PolylanSubmitterApiClearCacheErrors[keyof PolylanSubmitterApiClearCacheErrors]; + export type PolylanSubmitterApiClearCacheResponses = { /** + * Response + * * OK */ - 200: unknown; + 200: { + [key: string]: unknown; + }; }; +export type PolylanSubmitterApiClearCacheResponse = PolylanSubmitterApiClearCacheResponses[keyof PolylanSubmitterApiClearCacheResponses]; + export type PolylanSubmitterApiGetUserInfoData = { body?: never; path?: never; @@ -1491,6 +1516,27 @@ export type OpusMagnumApiCreateSubmissionData = { url: '/api/events/{event_path}/opus-magnum/submissions'; }; +export type OpusMagnumApiCreateSubmissionErrors = { + /** + * Response + * + * Bad Request + */ + 400: { + [key: string]: unknown; + }; + /** + * Response + * + * Internal Server Error + */ + 500: { + [key: string]: unknown; + }; +}; + +export type OpusMagnumApiCreateSubmissionError = OpusMagnumApiCreateSubmissionErrors[keyof OpusMagnumApiCreateSubmissionErrors]; + export type OpusMagnumApiCreateSubmissionResponses = { /** * OK @@ -1516,13 +1562,32 @@ export type OpusMagnumApiDeleteSubmissionData = { url: '/api/events/{event_path}/opus-magnum/submissions/{submission_id}'; }; +export type OpusMagnumApiDeleteSubmissionErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type OpusMagnumApiDeleteSubmissionError = OpusMagnumApiDeleteSubmissionErrors[keyof OpusMagnumApiDeleteSubmissionErrors]; + export type OpusMagnumApiDeleteSubmissionResponses = { /** + * Response + * * OK */ - 200: unknown; + 200: { + [key: string]: unknown; + }; }; +export type OpusMagnumApiDeleteSubmissionResponse = OpusMagnumApiDeleteSubmissionResponses[keyof OpusMagnumApiDeleteSubmissionResponses]; + export type OpusMagnumApiGetSubmissionData = { body?: never; path: { @@ -1564,6 +1629,19 @@ export type OpusMagnumApiValidateResponseData = { url: '/api/events/{event_path}/opus-magnum/responses/{response_id}/validate'; }; +export type OpusMagnumApiValidateResponseErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type OpusMagnumApiValidateResponseError = OpusMagnumApiValidateResponseErrors[keyof OpusMagnumApiValidateResponseErrors]; + export type OpusMagnumApiValidateResponseResponses = { /** * OK @@ -1589,6 +1667,19 @@ export type OpusMagnumApiValidateAutoData = { url: '/api/events/{event_path}/opus-magnum/responses/{response_id}/validate/auto'; }; +export type OpusMagnumApiValidateAutoErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type OpusMagnumApiValidateAutoError = OpusMagnumApiValidateAutoErrors[keyof OpusMagnumApiValidateAutoErrors]; + export type OpusMagnumApiValidateAutoResponses = { /** * OK @@ -1610,6 +1701,19 @@ export type OpusMagnumApiListResponsesNeedingValidationData = { url: '/api/events/{event_path}/opus-magnum/responses/needs-validation'; }; +export type OpusMagnumApiListResponsesNeedingValidationErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type OpusMagnumApiListResponsesNeedingValidationError = OpusMagnumApiListResponsesNeedingValidationErrors[keyof OpusMagnumApiListResponsesNeedingValidationErrors]; + export type OpusMagnumApiListResponsesNeedingValidationResponses = { /** * Response @@ -1637,6 +1741,19 @@ export type OpusMagnumApiValidateSubmissionData = { url: '/api/events/{event_path}/opus-magnum/submissions/{submission_id}/validate'; }; +export type OpusMagnumApiValidateSubmissionErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type OpusMagnumApiValidateSubmissionError = OpusMagnumApiValidateSubmissionErrors[keyof OpusMagnumApiValidateSubmissionErrors]; + export type OpusMagnumApiValidateSubmissionResponses = { /** * OK @@ -1809,6 +1926,14 @@ export type NoitaApiSubmitLogFileErrors = { 400: { [key: string]: unknown; }; + /** + * Response + * + * Internal Server Error + */ + 500: { + [key: string]: unknown; + }; }; export type NoitaApiSubmitLogFileError = NoitaApiSubmitLogFileErrors[keyof NoitaApiSubmitLogFileErrors]; @@ -2180,6 +2305,19 @@ export type SubmissionsApiListSubmissionsByGameData = { url: '/api/events/{event_path}/submissions/submission/by/game'; }; +export type SubmissionsApiListSubmissionsByGameErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type SubmissionsApiListSubmissionsByGameError = SubmissionsApiListSubmissionsByGameErrors[keyof SubmissionsApiListSubmissionsByGameErrors]; + export type SubmissionsApiListSubmissionsByGameResponses = { /** * Response @@ -2207,6 +2345,19 @@ export type SubmissionsApiGetSubmissionData = { url: '/api/events/{event_path}/submissions/submission/{submission_id}'; }; +export type SubmissionsApiGetSubmissionErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type SubmissionsApiGetSubmissionError = SubmissionsApiGetSubmissionErrors[keyof SubmissionsApiGetSubmissionErrors]; + export type SubmissionsApiGetSubmissionResponses = { /** * OK @@ -2232,6 +2383,19 @@ export type SubmissionsApiCreateImageCropData = { url: '/api/events/{event_path}/submissions/crops/s/{submission_file_id}'; }; +export type SubmissionsApiCreateImageCropErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type SubmissionsApiCreateImageCropError = SubmissionsApiCreateImageCropErrors[keyof SubmissionsApiCreateImageCropErrors]; + export type SubmissionsApiCreateImageCropResponses = { /** * OK @@ -2257,6 +2421,19 @@ export type SubmissionsApiDeleteImageCropData = { url: '/api/events/{event_path}/submissions/crops/{crop_id}'; }; +export type SubmissionsApiDeleteImageCropErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type SubmissionsApiDeleteImageCropError = SubmissionsApiDeleteImageCropErrors[keyof SubmissionsApiDeleteImageCropErrors]; + export type SubmissionsApiDeleteImageCropResponses = { /** * Response @@ -2286,6 +2463,19 @@ export type SubmissionsApiProcessFileOcrData = { url: '/api/events/{event_path}/submissions/files/{file_id}/process-ocr'; }; +export type SubmissionsApiProcessFileOcrErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type SubmissionsApiProcessFileOcrError = SubmissionsApiProcessFileOcrErrors[keyof SubmissionsApiProcessFileOcrErrors]; + export type SubmissionsApiProcessFileOcrResponses = { /** * Response @@ -2315,6 +2505,19 @@ export type SubmissionsApiProcessCropOcrData = { url: '/api/events/{event_path}/submissions/crops/{crop_id}/process-ocr'; }; +export type SubmissionsApiProcessCropOcrErrors = { + /** + * Response + * + * Forbidden + */ + 403: { + [key: string]: unknown; + }; +}; + +export type SubmissionsApiProcessCropOcrError = SubmissionsApiProcessCropOcrErrors[keyof SubmissionsApiProcessCropOcrErrors]; + export type SubmissionsApiProcessCropOcrResponses = { /** * Response diff --git a/polylan_submitter/submissions/api.py b/polylan_submitter/submissions/api.py index 84fc5cf..2459f66 100644 --- a/polylan_submitter/submissions/api.py +++ b/polylan_submitter/submissions/api.py @@ -210,7 +210,9 @@ def list_user_submissions(request: HttpRequest, event_path: str, scope_id: UUID) return submissions.select_related("user").order_by("-created_at") -@router.get(f"{PREFIX}/submission/by/game", response=list[SubmissionOut]) +@router.get( + f"{PREFIX}/submission/by/game", response={200: list[SubmissionOut], 403: dict} +) def list_submissions_by_game(request: HttpRequest, event_path: str, game_path: str): game = get_object_or_404(Game, path=game_path) @@ -220,7 +222,9 @@ def list_submissions_by_game(request: HttpRequest, event_path: str, game_path: s return Submission.for_event.filter(scope__event_game__game=game) -@router.get(f"{PREFIX}/submission/{{submission_id}}", response=SubmissionOut) +@router.get( + f"{PREFIX}/submission/{{submission_id}}", response={200: SubmissionOut, 403: dict} +) def get_submission(request: HttpRequest, event_path: str, submission_id: UUID): submission = get_object_or_404(Submission.for_event, id=submission_id) @@ -230,7 +234,9 @@ def get_submission(request: HttpRequest, event_path: str, submission_id: UUID): return submission -@router.post(f"{PREFIX}/crops/s/{{submission_file_id}}", response=ImageCropOut) +@router.post( + f"{PREFIX}/crops/s/{{submission_file_id}}", response={200: ImageCropOut, 403: dict} +) def create_image_crop( request: HttpRequest, event_path: str, @@ -257,7 +263,7 @@ def create_image_crop( return crop -@router.delete(f"{PREFIX}/crops/{{crop_id}}", response=dict) +@router.delete(f"{PREFIX}/crops/{{crop_id}}", response={200: dict, 403: dict}) def delete_image_crop(request: HttpRequest, event_path: str, crop_id: UUID): if not request.user.is_staff: return 403, {"detail": "Admin access required"} @@ -270,7 +276,7 @@ def delete_image_crop(request: HttpRequest, event_path: str, crop_id: UUID): return {"status": "deleted"} -@router.post(f"{PREFIX}/files/{{file_id}}/process-ocr", response=dict) +@router.post(f"{PREFIX}/files/{{file_id}}/process-ocr", response={200: dict, 403: dict}) def process_file_ocr(request: HttpRequest, event_path: str, file_id: UUID): if not request.user.is_staff: return 403, {"detail": "Admin access required"} @@ -287,7 +293,7 @@ def process_file_ocr(request: HttpRequest, event_path: str, file_id: UUID): return {"status": "queued"} -@router.post(f"{PREFIX}/crops/{{crop_id}}/process-ocr", response=dict) +@router.post(f"{PREFIX}/crops/{{crop_id}}/process-ocr", response={200: dict, 403: dict}) def process_crop_ocr(request: HttpRequest, event_path: str, crop_id: UUID): if not request.user.is_staff: return 403, {"detail": "Admin access required"}