Skip to content

[BUG]: Improve request validation and JSON parsing across backend functions #167

Description

@Shweta-281

Bug Description

Problem

Currently, multiple backend functions directly use JSON.parse(req.body) and perform validation using throwIfMissing. This approach has a few issues:

  • Repeated parsing of request body across functions
  • No centralized handling for invalid JSON (can cause runtime crashes)
  • Validation utility previously treated falsy values (0, false, "") as missing
  • Inconsistent error responses across different functions

Proposed Solution

  • Enhance the existing throwIfMissing utility to correctly handle falsy values by only rejecting undefined and null
  • Introduce a reusable parseBody utility for safe JSON parsing
  • Refactor selected functions (e.g., create-room, join-room) to:
    • Use parseBody for request parsing
    • Use improved validation
    • Standardize API responses (success, message, data)

Benefits

  • Prevents crashes due to invalid JSON input
  • Improves consistency across backend APIs
  • Enhances maintainability and readability
  • Moves towards production-grade request handling

Scope

  • Update utils.js
  • Refactor 2–3 functions to adopt new utilities

Steps to Reproduce

No response

Logs and Screenshots

No response

Environment Details

No response

Impact

Critical - Application is unusable

Code of Conduct

  • I have joined the Discord server and will post updates there
  • I have searched existing issues to avoid duplicates

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions