From 5026f419540f49de48b30767a26c31e7aed08096 Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Fri, 19 Sep 2025 18:59:46 +0200 Subject: [PATCH] impr: add custom error codes to contracts and api doc (@fehmer) (#6976) --- packages/contracts/src/results.ts | 8 ++++++++ packages/contracts/src/util/api.ts | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/packages/contracts/src/results.ts b/packages/contracts/src/results.ts index e047c0aad..642f05b17 100644 --- a/packages/contracts/src/results.ts +++ b/packages/contracts/src/results.ts @@ -3,6 +3,7 @@ import { z } from "zod"; import { CommonResponses, meta, + MonkeyClientError, MonkeyResponseSchema, responseWithData, } from "./util/api"; @@ -131,6 +132,13 @@ export const resultsContract = c.router( body: AddResultRequestSchema.strict(), responses: { 200: AddResultResponseSchema, + 460: MonkeyClientError.describe("Test too short"), + 461: MonkeyClientError.describe("Result hash invalid"), + 462: MonkeyClientError.describe("Result spacing invalid"), + 463: MonkeyClientError.describe("Result data invalid"), + 464: MonkeyClientError.describe("Missing key data"), + 465: MonkeyClientError.describe("Bot detected"), + 466: MonkeyClientError.describe("Duplicate result"), }, metadata: meta({ rateLimit: "resultsAdd", diff --git a/packages/contracts/src/util/api.ts b/packages/contracts/src/util/api.ts index 7697b3e54..e9c1de371 100644 --- a/packages/contracts/src/util/api.ts +++ b/packages/contracts/src/util/api.ts @@ -120,6 +120,10 @@ export const CommonResponses = { 403: MonkeyClientError.describe("Operation not permitted"), 422: MonkeyValidationErrorSchema.describe("Request validation failed"), 429: MonkeyClientError.describe("Rate limit exceeded"), + 470: MonkeyClientError.describe("Invalid ApeKey"), + 471: MonkeyClientError.describe("ApeKey is inactive"), + 472: MonkeyClientError.describe("ApeKey is malformed"), + 479: MonkeyClientError.describe("ApeKey rate limit exceeded"), 500: MonkeyServerError.describe("Generic server error"), 503: MonkeyServerError.describe( "Endpoint disabled or server is under maintenance"