Action

Type

Resolved On

Create API response utility for consistent JSON responses feature - - -

Create API response utility for consistent JSON responses

Description

API routes currently have inconsistent error response formats. Some return structured JSON while others return plain text. Create a unified response utility in src/lib/api-response.ts.

Current Inconsistency

JSON format (good):

return new Response(JSON.stringify({ error: "Owner is required" }), {
  status: 400,
  headers: { "Content-Type": "application/json" },
});

Plain text (inconsistent):

return new Response("Task is required", { status: 400 });

Proposed Solution

Create src/lib/api-response.ts:

export function successResponse(data?: object, message?: string): Response {
  return new Response(
    JSON.stringify({ success: true, data, message }),
    { status: 200, headers: { "Content-Type": "application/json" } }
  );
}

export function errorResponse(message: string, status: number): Response {
  return new Response(
    JSON.stringify({ success: false, error: message }),
    { status, headers: { "Content-Type": "application/json" } }
  );
}

export const badRequest = (msg: string) => errorResponse(msg, 400);
export const serverError = (msg: string) => errorResponse(msg, 500);
export const notFound = (msg: string) => errorResponse(msg, 404);

Affected Files

  • src/pages/api/new/goal.ts
  • src/pages/api/new/backlog.ts
  • src/pages/api/open/*.ts
  • src/pages/api/close/*.ts
  • src/pages/api/update/*.ts