Luồng xử lý chính
Luồng này mô tả điều gì xảy ra khi request đi qua module post: server kiểm tra token, validate input, áp rule nghiệp vụ, rồi ghi DB/Redis hoặc enqueue job.
| Điểm quyết định | Điều kiện | Nhánh True → | Nhánh False → | Code kiểm tra ở đâu |
|---|---|---|---|---|
| Token hợp lệ | Route có authorization và bearer token verify được | Đi tiếp validate/controller | Trả 401/403 | src/middlewares/auth.ts |
| Input hợp lệ | Route có validate(schema) và Zod pass | Gọi controller/service | Trả 400 validation failed | src/modules/post/post.routes.ts |
| Business rule pass | Service tìm thấy resource và quyền hợp lệ | Ghi DB/queue/provider | Throw exception hoặc Error | src/modules/post/service/post.service.ts |
Kiểm tra auth trước khi đọc userId. Bước này tồn tại để lỗi được phát hiện trước khi dữ liệu sai vào DB hoặc worker.
Validate DTO để tránh payload sai vào service. Bước này tồn tại để lỗi được phát hiện trước khi dữ liệu sai vào DB hoặc worker.
Service kiểm tra rule domain trước khi mutate. Bước này tồn tại để lỗi được phát hiện trước khi dữ liệu sai vào DB hoặc worker.
Repository/provider thực thi side effect. Bước này tồn tại để lỗi được phát hiện trước khi dữ liệu sai vào DB hoặc worker.