AOSSIE-Org / AOSSIE-Org/Resonate-Backend

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

未關閉
#167 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
bug
主要語言
JavaScript
星號
43
分支
120
PR 合併指標
30 天內沒有已合併 PR

描述

### 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

- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and will post updates there
- [x] I have searched existing issues to avoid duplicates

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。