ခြုံငုံသုံးသပ်ချက်
Envelope တစ်ခုတည်း — payload + status + message + referenceId။ Controller သည် body.payload ကို ဖတ်ပြီး ResponseDto.ok / okWithEmpty / error ပြန်ပေးရပါသည်။
- Backend — @quan-erp/shared-backend-core
- Frontend — @quan-erp/shared-frontend-core (simplified)
- Raw entity / bare DTO မပြန်ရပါ
1. ResponseDto<T>
Success နှင့် error တို့သည် envelope တူညီပါသည်။
- ResponseDto.ok — success + payload
- ResponseDto.okWithEmpty — success + null payload
- ResponseDto.error — error envelope
| Field | Type | မှတ်ချက် |
|---|---|---|
| timestamp | string | ISO အချိန် |
| status | "success" | "error" | ရလဒ် |
| message | string? | အသုံးပြုသူမြင်ရသော စာသား |
| code | HttpStatus? | Error HTTP status (optional) |
| referenceId | string | Log / support tracing UUID |
| payload | T | အမှန်တကယ်သော data |
TSXcontroller responses
1import {
2 Delete,
3 Get,
4 HttpStatus,
5 Post,
6 ResponseDto,
7} from "@quan-erp/shared-backend-core";
8
9@Get("/profile")
10async getProfile() {
11 const profile = await this.service.getProfile();
12 return ResponseDto.ok(profile);
13}
14
15@Delete("/history/:id")
16async deleteHistory() {
17 await this.service.delete(/* … */);
18 return ResponseDto.okWithEmpty();
19}
20
21@Post("/update")
22async update() {
23 try {
24 return ResponseDto.ok(
25 { success: true },
26 { message: "Profile updated successfully" },
27 );
28 } catch {
29 return ResponseDto.error(
30 "Failed to update profile",
31 HttpStatus.INTERNAL_SERVER_ERROR,
32 );
33 }
34}2. RequestDto<T>
@Body() သည် RequestDto<T> မျှော်လင့်ပါသည် — data ကို body.payload မှ ယူရပါသည်။
TSXrequest body
1import { Body, Post, RequestDto } from "@quan-erp/shared-backend-core";
2
3@Post("/calculate")
4async calculate(@Body() body: RequestDto<LoanCalculationDto>) {
5 const data = body.payload;
6 return ResponseDto.ok(await this.service.calculate(data));
7}3. Frontend pairing
Client တွင် new RequestDto(dto)၊ ResponseDto<T> cast၊ status စစ်ဆေးပြီး payload ပြန်ပေးရပါသည်။
- POST/PUT — RequestDto ဖြင့် wrap လုပ်ရပါသည်
- status === "error" ဆိုပါက throw လုပ်ရပါသည်
- GET fetchFn — payload သာ
- Frontend → Platform APIs → RequestDto & ResponseDto