@datviet/nbp-sdk 0.0.327 → 0.0.328
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,16 +26,19 @@ Khoá gắn chết vào một workspace — không cần gửi `X-Workspace-ID`,
|
|
|
26
26
|
```ts
|
|
27
27
|
import { createOpencodeClient } from "@datviet/nbp-sdk/v2/client"
|
|
28
28
|
|
|
29
|
-
const
|
|
29
|
+
const client = createOpencodeClient({
|
|
30
30
|
baseUrl: "https://nbp.datviet.ai",
|
|
31
31
|
headers: { Authorization: `Bearer ${process.env.NBP_API_KEY}` },
|
|
32
32
|
throwOnError: true,
|
|
33
33
|
})
|
|
34
34
|
|
|
35
|
-
const listings = await nbp.listings.list({ limit: 20 })
|
|
36
|
-
const clients = await nbp.clients.list({ limit: 20 })
|
|
35
|
+
const listings = await client.nbp.listings.list({ limit: 20 })
|
|
36
|
+
const clients = await client.nbp.clients.list({ limit: 20 })
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
Endpoint bất động sản nằm dưới namespace `nbp` (`client.nbp.listings`, `client.nbp.clients`,
|
|
40
|
+
`client.nbp.tasks`…); còn `workspaces`, `session`, `agent` nằm thẳng ở gốc.
|
|
41
|
+
|
|
39
42
|
Tham số đi **phẳng** — không bọc `query` / `body`. SDK tự xếp cái nào vào query, cái nào vào body.
|
|
40
43
|
|
|
41
44
|
Hai mức quyền, chọn lúc tạo khoá:
|
|
@@ -60,7 +63,7 @@ const auth = createNbpAuth({
|
|
|
60
63
|
redirectURI: `${location.origin}/auth/callback`,
|
|
61
64
|
})
|
|
62
65
|
|
|
63
|
-
const
|
|
66
|
+
const client = createOpencodeClient({ baseUrl: "https://nbp.datviet.ai", fetch: auth.fetch })
|
|
64
67
|
|
|
65
68
|
// Nút đăng nhập
|
|
66
69
|
await auth.login()
|
|
@@ -70,7 +73,7 @@ const params = new URLSearchParams(location.search)
|
|
|
70
73
|
const ok = await auth.handleCallback(params.get("code")!, params.get("state") ?? undefined)
|
|
71
74
|
|
|
72
75
|
// Chọn workspace rồi mọi request sau đó tự mang X-Workspace-ID
|
|
73
|
-
const ws = await
|
|
76
|
+
const ws = await client.workspaces.list()
|
|
74
77
|
auth.setWorkspace(ws.data!.data[0]!.id)
|
|
75
78
|
```
|
|
76
79
|
|
|
@@ -94,7 +97,7 @@ CORS đã mở cho `*.datviet.ai`, `*.ankapong.com` và mọi `http://localhost:
|
|
|
94
97
|
|
|
95
98
|
```ts
|
|
96
99
|
// Tin mới nhất, có ảnh, nhà phố dưới 10 tỷ ở Quận 2
|
|
97
|
-
const res = await nbp.listings.list({
|
|
100
|
+
const res = await client.nbp.listings.list({
|
|
98
101
|
limit: 12,
|
|
99
102
|
sortBy: "time_created",
|
|
100
103
|
sortDirection: "desc",
|
|
@@ -105,17 +108,17 @@ const res = await nbp.listings.list({
|
|
|
105
108
|
})
|
|
106
109
|
|
|
107
110
|
// Tạo tin (khoá phải là "Đọc & ghi")
|
|
108
|
-
await nbp.listings.create({
|
|
111
|
+
await client.nbp.listings.create({
|
|
109
112
|
price: 8_500_000_000,
|
|
110
113
|
tags: { category: "sale", property_type: "house", district: "Quận 2", area: 80 },
|
|
111
114
|
})
|
|
112
115
|
|
|
113
116
|
// Quản lý khoá API — chỉ JWT của owner/admin gọi được, khoá `sk-` bị chặn 403
|
|
114
|
-
await
|
|
117
|
+
await client.workspaces.apiKeys.list({ id: workspaceID })
|
|
115
118
|
```
|
|
116
119
|
|
|
117
120
|
Tag lưu trong DB bằng **key tiếng Anh** (`"house"`), UI hiện nhãn Việt (`"Nhà phố"`) — nhớ gửi key.
|
|
118
121
|
|
|
119
122
|
## Bản `v2` vs bản gốc
|
|
120
123
|
|
|
121
|
-
`@datviet/nbp-sdk/v2/client` là bản đang dùng (client theo class, `nbp.listings.list()`). Export ở root (`@datviet/nbp-sdk`) là bản cũ kế thừa từ opencode, giữ cho tương thích — code mới dùng `/v2/client`.
|
|
124
|
+
`@datviet/nbp-sdk/v2/client` là bản đang dùng (client theo class, `client.nbp.listings.list()`). Export ở root (`@datviet/nbp-sdk`) là bản cũ kế thừa từ opencode, giữ cho tương thích — code mới dùng `/v2/client`.
|