Openstatus www.openstatus.dev

fix

+42 -19
+2 -2
apps/server/src/routes/v1/index.ts
··· 8 8 import type { Workspace } from "@openstatus/db/src/schema"; 9 9 import { checkApi } from "./check"; 10 10 import { incidentsApi } from "./incidents"; 11 - import { maintenanceApi } from "./maintenance"; 11 + import { maintenancesApi } from "./maintenances"; 12 12 import { monitorsApi } from "./monitors"; 13 13 import { notificationsApi } from "./notifications"; 14 14 import { pageSubscribersApi } from "./pageSubscribers"; ··· 136 136 api.route("/status_report", statusReportsApi); 137 137 api.route("/status_report_update", statusReportUpdatesApi); 138 138 api.route("/incident", incidentsApi); 139 - api.route("/maintenance", maintenanceApi); 139 + api.route("/maintenance", maintenancesApi); 140 140 api.route("/notification", notificationsApi); 141 141 api.route("/page_subscriber", pageSubscribersApi); 142 142 api.route("/check", checkApi);
+3 -3
apps/server/src/routes/v1/maintenances/get.ts
··· 2 2 import { createRoute } from "@hono/zod-openapi"; 3 3 import { and, db, eq } from "@openstatus/db"; 4 4 import { maintenance } from "@openstatus/db/src/schema/maintenances"; 5 - import type { maintenanceApi } from "./index"; 5 + import type { maintenancesApi } from "./index"; 6 6 import { MaintenanceSchema, ParamsSchema } from "./schema"; 7 7 8 8 const getRoute = createRoute({ ··· 26 26 }, 27 27 }); 28 28 29 - export function registerGetMaintenance(api: typeof maintenanceApi) { 29 + export function registerGetMaintenance(api: typeof maintenancesApi) { 30 30 return api.openapi(getRoute, async (c) => { 31 31 const workspaceId = c.get("workspace").id; 32 32 const { id } = c.req.valid("param"); ··· 37 37 }, 38 38 where: and( 39 39 eq(maintenance.id, Number(id)), 40 - eq(maintenance.workspaceId, workspaceId), 40 + eq(maintenance.workspaceId, workspaceId) 41 41 ), 42 42 }); 43 43
+3 -3
apps/server/src/routes/v1/maintenances/get_all.ts
··· 2 2 import { createRoute } from "@hono/zod-openapi"; 3 3 import { db, desc, eq } from "@openstatus/db"; 4 4 import { maintenance } from "@openstatus/db/src/schema/maintenances"; 5 - import type { maintenanceApi } from "./index"; 5 + import type { maintenancesApi } from "./index"; 6 6 import { MaintenanceSchema } from "./schema"; 7 7 8 8 const getAllRoute = createRoute({ ··· 24 24 }, 25 25 }); 26 26 27 - export function registerGetAllMaintenances(api: typeof maintenanceApi) { 27 + export function registerGetAllMaintenances(api: typeof maintenancesApi) { 28 28 return api.openapi(getAllRoute, async (c) => { 29 29 const workspaceId = c.get("workspace").id; 30 30 ··· 40 40 _maintenances.map((m) => ({ 41 41 ...m, 42 42 monitorIds: m.maintenancesToMonitors.map((mtm) => mtm.monitorId), 43 - })), 43 + })) 44 44 ); 45 45 46 46 return c.json(data, 200);
+6 -6
apps/server/src/routes/v1/maintenances/index.ts
··· 6 6 import { registerPostMaintenance } from "./post"; 7 7 import { registerPutMaintenance } from "./put"; 8 8 9 - const maintenanceApi = new OpenAPIHono<{ Variables: Variables }>({ 9 + const maintenancesApi = new OpenAPIHono<{ Variables: Variables }>({ 10 10 defaultHook: handleZodError, 11 11 }); 12 12 13 - registerGetAllMaintenances(maintenanceApi); 14 - registerGetMaintenance(maintenanceApi); 15 - registerPostMaintenance(maintenanceApi); 16 - registerPutMaintenance(maintenanceApi); 13 + registerGetAllMaintenances(maintenancesApi); 14 + registerGetMaintenance(maintenancesApi); 15 + registerPostMaintenance(maintenancesApi); 16 + registerPutMaintenance(maintenancesApi); 17 17 18 - export { maintenanceApi }; 18 + export { maintenancesApi };
+2 -2
apps/server/src/routes/v1/maintenances/post.ts
··· 7 7 maintenance, 8 8 maintenancesToMonitors, 9 9 } from "@openstatus/db/src/schema/maintenances"; 10 - import type { maintenanceApi } from "./index"; 10 + import type { maintenancesApi } from "./index"; 11 11 import { MaintenanceSchema } from "./schema"; 12 12 import { monitor, page } from "@openstatus/db/src/schema"; 13 13 ··· 39 39 }, 40 40 }); 41 41 42 - export function registerPostMaintenance(api: typeof maintenanceApi) { 42 + export function registerPostMaintenance(api: typeof maintenancesApi) { 43 43 return api.openapi(postRoute, async (c) => { 44 44 const workspaceId = c.get("workspace").id; 45 45 const input = c.req.valid("json");
+2 -2
apps/server/src/routes/v1/maintenances/put.ts
··· 8 8 maintenancesToMonitors, 9 9 } from "@openstatus/db/src/schema/maintenances"; 10 10 import { monitor, page } from "@openstatus/db/src/schema"; 11 - import type { maintenanceApi } from "./index"; 11 + import type { maintenancesApi } from "./index"; 12 12 import { MaintenanceSchema, ParamsSchema } from "./schema"; 13 13 14 14 const putRoute = createRoute({ ··· 40 40 }, 41 41 }); 42 42 43 - export function registerPutMaintenance(api: typeof maintenanceApi) { 43 + export function registerPutMaintenance(api: typeof maintenancesApi) { 44 44 return api.openapi(putRoute, async (c) => { 45 45 const workspaceId = c.get("workspace").id; 46 46 const { id } = c.req.valid("param");
+24 -1
packages/db/src/seed.mts
··· 5 5 import { env } from "../env.mjs"; 6 6 import { 7 7 incidentTable, 8 + maintenance, 9 + maintenancesToMonitors, 8 10 monitor, 9 11 monitorsToPages, 10 12 monitorsToStatusReport, ··· 20 22 21 23 async function main() { 22 24 const db = drizzle( 23 - createClient({ url: env.DATABASE_URL, authToken: env.DATABASE_AUTH_TOKEN }), 25 + createClient({ url: env.DATABASE_URL, authToken: env.DATABASE_AUTH_TOKEN }) 24 26 ); 25 27 console.log("Seeding database "); 26 28 await db ··· 182 184 status: "investigating", 183 185 message: "Message", 184 186 date: new Date(), 187 + }) 188 + .run(); 189 + 190 + await db 191 + .insert(maintenance) 192 + .values({ 193 + id: 1, 194 + workspaceId: 1, 195 + title: "Test Maintenance", 196 + message: "Test message", 197 + from: new Date(), 198 + to: new Date(Date.now() + 1000), 199 + pageId: 1, 200 + }) 201 + .run(); 202 + 203 + await db 204 + .insert(maintenancesToMonitors) 205 + .values({ 206 + maintenanceId: 1, 207 + monitorId: 1, 185 208 }) 186 209 .run(); 187 210