Giao diện
Cài đặt và sử dụng
Cài đặt
Plugin @digiforce-nc/plugin-action-custom-request cần cả client và server. Kích hoạt qua trang Plugin Manager.
Sau khi cài, plugin tạo hai bảng trong database: customRequests và customRequestsRoles.
Tạo cấu hình Custom Request
Bước 1: Mở quản lý Custom Requests
Vào Settings → Custom Requests (hoặc qua API trực tiếp). Đây là nơi admin tạo và quản lý các request template.
Bước 2: Tạo request mới
Điền thông tin cấu hình:
| Trường | Mô tả |
|---|---|
| Key | Khóa định danh duy nhất (VD: sync-to-crm) |
| URL | Địa chỉ đích — hỗ trợ template variables |
| Method | GET, POST, PUT, PATCH, DELETE |
| Headers | HTTP headers — hỗ trợ template variables |
| Body | Request body (JSON) — hỗ trợ template variables |
| Params | Query parameters |
Bước 3: Gán roles
Chọn role nào được phép sử dụng request này. Chỉ user thuộc role đã gán mới thấy và kích hoạt được action.
Thêm nút action
- Mở Schema Editor trên block Table hoặc Form.
- Vào Configure actions → chọn Custom request.
- Chọn request đã tạo từ danh sách (lọc theo role hiện tại).
- Lưu schema.
Sử dụng
- User nhấn nút action đã cấu hình.
- Server đọc cấu hình request từ DB.
- Server resolve template variables (
currentRecord,currentUser,$nForm) bằng dữ liệu thực. - Server gửi HTTP request đến URL đích qua axios.
- Kết quả trả về hiển thị cho user.
Template variables
Trong các trường URL, headers, body, admin sử dụng cú pháp template để chèn dữ liệu động:
| Biến | Mô tả | Ví dụ |
|---|---|---|
currentRecord.* | Dữ liệu bản ghi hiện tại | currentRecord.id, currentRecord.email |
currentUser.* | Thông tin user đang thao tác | currentUser.id, currentUser.email |
$nForm.* | Dữ liệu từ form hiện tại (nếu action trên form) | $nForm.amount |
Lưu ý
Sử dụng backtick hoặc cú pháp template của hệ thống. Không dùng cú pháp double curly brace — tham chiếu biến bằng tên trực tiếp trong giao diện cấu hình.
Ví dụ thực tế
Webhook khi duyệt đơn: URL = https://hook.example.com/approve, Method = POST, Body chứa currentRecord.id và currentRecord.status. Gán cho role "Approver".