Openstatus www.openstatus.dev
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

๐Ÿš€ ci for tcp (#1087)

authored by

Thibault Le Ouay and committed by
GitHub
88dea545 aaf3e677

+27 -4
+13 -4
apps/server/src/v1/monitors/run/post.ts
··· 12 12 import type { monitorsApi } from ".."; 13 13 import { env } from "../../../env"; 14 14 import { openApiErrorResponses } from "../../../libs/errors/openapi-error-responses"; 15 - import { HTTPTriggerResult, ParamsSchema } from "../schema"; 15 + import { HTTPTriggerResult, ParamsSchema, TCPTriggerResult } from "../schema"; 16 16 17 17 const triggerMonitor = createRoute({ 18 18 method: "post", ··· 37 37 200: { 38 38 content: { 39 39 "application/json": { 40 - schema: z.array(HTTPTriggerResult), 40 + schema: z.array(HTTPTriggerResult).or(z.array(TCPTriggerResult)), 41 41 }, 42 42 }, 43 43 description: "All the historical metrics", ··· 193 193 // console.log(result); 194 194 195 195 const bodies = await Promise.all(result.map((r) => r.json())); 196 - console.log(bodies); 197 - const data = z.array(HTTPTriggerResult).safeParse(bodies); 196 + let data = null; 197 + if (row.jobType === "http") { 198 + data = z.array(HTTPTriggerResult).safeParse(bodies); 199 + } 200 + if (row.jobType === "tcp") { 201 + data = z.array(TCPTriggerResult).safeParse(bodies); 202 + } 203 + 204 + if (!data) { 205 + throw new HTTPException(400, { message: "Something went wrong" }); 206 + } 198 207 199 208 if (!data.success) { 200 209 console.log(data.error);
+14
apps/server/src/v1/monitors/schema.ts
··· 243 243 error: z.string().optional().nullable(), 244 244 }); 245 245 246 + const tcptimingSchema = z.object({ 247 + tcpStart: z.number(), 248 + tcpDone: z.number(), 249 + }); 250 + 251 + export const TCPTriggerResult = z.object({ 252 + latency: z.number(), 253 + region: z.enum(flyRegions), 254 + timestamp: z.number(), 255 + timing: tcptimingSchema, 256 + error: z.number().optional().nullable(), 257 + errorMessage: z.string().optional().nullable(), 258 + }); 259 + 246 260 export const ResultRun = z.object({ 247 261 latency: z.number().int(), // in ms 248 262 statusCode: z.number().int().nullable().default(null),