First Commit
This commit is contained in:
@@ -0,0 +1,318 @@
|
||||
# API Quick Reference
|
||||
|
||||
Dokumen ini adalah cheat sheet endpoint Product Engineering IFC untuk kebutuhan implementasi cepat.
|
||||
Dokumen ini bersifat rekomendasi implementasi dan dapat direvisi mengikuti perubahan backend.
|
||||
|
||||
Lihat detail lengkap di [BACKEND_TECHNICAL_GUIDE.md](BACKEND_TECHNICAL_GUIDE.md) dan [FRONTEND_TECHNICAL_GUIDE.md](FRONTEND_TECHNICAL_GUIDE.md).
|
||||
|
||||
## State Model Singkat
|
||||
|
||||
- Parse state: draft -> parsed | failed
|
||||
- Approval state: draft -> in_validation -> waiting_production -> waiting_provisioning -> approved (dapat rejected pada tahap validasi atau approval)
|
||||
|
||||
## 1) JSON-RPC Envelope
|
||||
|
||||
Gunakan payload berikut untuk semua endpoint type json:
|
||||
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"params": {},
|
||||
"id": 1
|
||||
}
|
||||
```
|
||||
|
||||
## 2) Session Endpoints
|
||||
|
||||
Authentication login endpoint:
|
||||
|
||||
- Primary: /api/session/login
|
||||
- Fallback standar Odoo: /web/session/authenticate
|
||||
|
||||
### Login
|
||||
|
||||
- Route: /api/session/login
|
||||
- Auth: none
|
||||
- Params: db, login, password
|
||||
|
||||
Contoh params:
|
||||
|
||||
```json
|
||||
{
|
||||
"db": "odoo19",
|
||||
"login": "user_backend",
|
||||
"password": "******"
|
||||
}
|
||||
```
|
||||
|
||||
### Logout
|
||||
|
||||
- Route: /api/session/logout
|
||||
- Auth: user
|
||||
- Params: none
|
||||
|
||||
### Me
|
||||
|
||||
- Route: /api/session/me
|
||||
- Auth: user
|
||||
- Params: none
|
||||
|
||||
## 3) Document Endpoints
|
||||
|
||||
### List
|
||||
|
||||
- Route: /api/ifc/documents/list
|
||||
- Auth: user
|
||||
- Params opsional: limit, offset, search
|
||||
|
||||
### Create
|
||||
|
||||
- Route: /api/ifc/documents/create
|
||||
- Auth: user
|
||||
- Params wajib: name, file_data
|
||||
- Params opsional: file_name, revision_note, company_id
|
||||
|
||||
Contoh params:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "IFC Docking Station",
|
||||
"file_name": "docking_station.ifc",
|
||||
"file_data": "<BASE64_IFC>",
|
||||
"revision_note": "Initial upload"
|
||||
}
|
||||
```
|
||||
|
||||
### Revise
|
||||
|
||||
- Route: /api/ifc/documents/revise
|
||||
- Auth: user
|
||||
- Params wajib: document_id, file_data
|
||||
- Params opsional: file_name, revision_note
|
||||
|
||||
### Parse
|
||||
|
||||
- Route: /api/ifc/documents/parse
|
||||
- Auth: user
|
||||
- Params wajib: document_id
|
||||
|
||||
## 4) Approval Endpoints
|
||||
|
||||
### Request Validation
|
||||
|
||||
- Route: /api/ifc/documents/approval/request-validation
|
||||
- Params wajib: document_id
|
||||
|
||||
### Submit Approval
|
||||
|
||||
- Route: /api/ifc/documents/approval/submit
|
||||
- Params wajib: document_id
|
||||
|
||||
### Approve Production
|
||||
|
||||
- Route: /api/ifc/documents/approval/approve-production
|
||||
- Params wajib: document_id
|
||||
- Role: manager produksi
|
||||
|
||||
### Approve Provisioning
|
||||
|
||||
- Route: /api/ifc/documents/approval/approve-provisioning
|
||||
- Params wajib: document_id
|
||||
- Role: manager provisioning
|
||||
|
||||
### Reject
|
||||
|
||||
- Route: /api/ifc/documents/approval/reject
|
||||
- Params wajib: document_id
|
||||
- Params opsional: note
|
||||
|
||||
### Back to Draft
|
||||
|
||||
- Route: /api/ifc/documents/approval/back-draft
|
||||
- Params wajib: document_id
|
||||
|
||||
## 5) Activity Endpoints
|
||||
|
||||
### Add Activity
|
||||
|
||||
- Route: /api/ifc/documents/activities/add
|
||||
- Params wajib: document_id, summary
|
||||
- Params opsional: note, user_id, deadline
|
||||
|
||||
### List Activity
|
||||
|
||||
- Route: /api/ifc/documents/activities/list
|
||||
- Params wajib: document_id
|
||||
- Response: activities aktif dan history internal
|
||||
|
||||
## 6) BoM Endpoints
|
||||
|
||||
### Generate Estimated BoM
|
||||
|
||||
- Route: /api/ifc/documents/bom/generate
|
||||
- Params wajib: document_id
|
||||
|
||||
### Get BoM Data
|
||||
|
||||
- Route: /api/ifc/documents/bom/get
|
||||
- Params wajib: document_id
|
||||
- Response: parsed_bom dan estimated_bom
|
||||
|
||||
### Create Permanent BoM If Availability Fulfilled
|
||||
|
||||
- Route: /api/ifc/documents/bom/create-permanent-if-available
|
||||
- Params wajib: document_id
|
||||
- Rule: hanya berhasil jika availability Estimated BoM terpenuhi
|
||||
- Response: data permanent_bom yang terhubung ke IFC document
|
||||
|
||||
## 7) Temp IFC File Endpoints
|
||||
|
||||
### Generate Signed Temp URL
|
||||
|
||||
- Route: /api/ifc/documents/temp-file
|
||||
- Params wajib: document_id
|
||||
- Response penting: download_url, expires_in_minutes, expires_at_unix
|
||||
|
||||
### Download Temp File
|
||||
|
||||
- Route: /api/ifc/temp/<file_key>?doc_id=...&uid=...&exp=...&sig=...
|
||||
- Method: GET
|
||||
- Auth: user (session)
|
||||
- Catatan: URL signed, ada expiry, terikat user dan dokumen
|
||||
|
||||
## 8) Inventory and Procurement Endpoints
|
||||
|
||||
### Check Availability vs Estimated BoM
|
||||
|
||||
- Route: /api/ifc/documents/inventory/check
|
||||
- Params wajib: document_id
|
||||
- Response: ringkasan all_available, total_shortage_qty, dan detail item per komponen
|
||||
|
||||
### Create Draft Purchase for Shortage
|
||||
|
||||
- Route: /api/ifc/documents/inventory/create-draft-purchase
|
||||
- Params wajib: document_id
|
||||
- Params opsional: vendor_id, only_shortage (default true)
|
||||
- Response: daftar draft purchase.order yang dibuat
|
||||
|
||||
### Create Product from IFC BOM Line
|
||||
|
||||
- Route: /api/ifc/documents/inventory/create-product
|
||||
- Params wajib: document_id, ifc_bom_line_id
|
||||
- Response: data product existing/new + flag created
|
||||
|
||||
## 9) Manufacturing Order Endpoints
|
||||
|
||||
### Create MO If Availability Fulfilled
|
||||
|
||||
- Route: /api/ifc/documents/mo/create-if-available
|
||||
- Params wajib: document_id
|
||||
- Rule: auto memastikan Permanent BoM tersedia, lalu create MO dari Permanent BoM
|
||||
- Response: data manufacturing order yang baru dibuat
|
||||
|
||||
### Create MO from Permanent BoM
|
||||
|
||||
- Route: /api/ifc/documents/mo/create-from-permanent-bom
|
||||
- Params wajib: document_id
|
||||
|
||||
### Check All MOs Availability Summary
|
||||
|
||||
- Route: /api/ifc/documents/mo/check-all-availability
|
||||
- Params wajib: document_id
|
||||
- Response: summary all MOs + summary product requirement vs on hand
|
||||
|
||||
### Confirm All MOs If Available
|
||||
|
||||
- Route: /api/ifc/documents/mo/confirm-all-if-available
|
||||
- Params wajib: document_id
|
||||
- Rule: hanya confirm jika summary all MOs menunjukkan all_available = true
|
||||
- Response: daftar MO yang dikonfirmasi
|
||||
|
||||
### Run End-to-End MO Pipeline
|
||||
|
||||
- Route: /api/ifc/documents/mo/run-pipeline
|
||||
- Params wajib: document_id
|
||||
- Params opsional: auto_confirm (default false)
|
||||
- Alur: check estimated availability -> create permanent bom -> create mo from permanent bom -> check all mo summary -> optional confirm all mo
|
||||
- Response: ringkasan lengkap tiap tahap pipeline
|
||||
|
||||
### Dry Run MO Pipeline (No Data Mutation)
|
||||
|
||||
- Route: /api/ifc/documents/mo/pipeline-dry-run
|
||||
- Params wajib: document_id
|
||||
- Alur: simulasi readiness tiap tahap pipeline tanpa create/update data
|
||||
- Response: preview readiness step, estimated availability, existing MO summary
|
||||
|
||||
### Urutan Rekomendasi Eksekusi MO
|
||||
|
||||
1. /api/ifc/documents/inventory/check
|
||||
2. /api/ifc/documents/bom/create-permanent-if-available
|
||||
3. /api/ifc/documents/mo/create-from-permanent-bom
|
||||
4. /api/ifc/documents/mo/check-all-availability
|
||||
5. /api/ifc/documents/mo/confirm-all-if-available (hanya bila all_available = true)
|
||||
|
||||
## 10) Standard Success and Error
|
||||
|
||||
### Success
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"result": {}
|
||||
}
|
||||
```
|
||||
|
||||
### Error
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"error": {
|
||||
"code": "BAD_REQUEST",
|
||||
"message": "...",
|
||||
"details": "optional"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 11) Error Code Quick List
|
||||
|
||||
- BAD_REQUEST
|
||||
- AUTH_FAILED
|
||||
- NOT_FOUND
|
||||
- ACCESS_DENIED
|
||||
- CREATE_FAILED
|
||||
- REVISION_FAILED
|
||||
- PARSE_FAILED
|
||||
- ACTION_FAILED
|
||||
- ACTIVITY_FAILED
|
||||
- BOM_FAILED
|
||||
- DECODE_FAILED
|
||||
- INVENTORY_FAILED
|
||||
- PURCHASE_DRAFT_FAILED
|
||||
- PRODUCT_CREATE_FAILED
|
||||
- MO_CREATE_FAILED
|
||||
- BOM_PERMANENT_FAILED
|
||||
- MO_AVAILABILITY_FAILED
|
||||
- MO_CONFIRM_FAILED
|
||||
- MO_PIPELINE_FAILED
|
||||
- MO_PIPELINE_DRY_RUN_FAILED
|
||||
|
||||
## 12) Integration Checklist
|
||||
|
||||
- Login session berhasil dan cookie terkirim otomatis.
|
||||
- Upload create atau revise dokumen IFC sukses.
|
||||
- Parse IFC sukses dan state berubah.
|
||||
- Approval flow berjalan sesuai role.
|
||||
- Activity add atau list berjalan per dokumen.
|
||||
- Generate atau get BoM sukses.
|
||||
- Create permanent BoM dari estimated BoM sukses.
|
||||
- Cek inventory availability dan trigger draft purchase sukses.
|
||||
- Endpoint create product dari IFC BOM line berjalan.
|
||||
- Endpoint create MO dari permanent BoM berjalan.
|
||||
- Endpoint check-all-MOs availability summary dan confirm-all-MOs berjalan.
|
||||
- Endpoint run-pipeline berjalan untuk eksekusi flow end-to-end.
|
||||
- Endpoint pipeline-dry-run berjalan untuk preview sebelum eksekusi real.
|
||||
- Temp file URL bisa dipakai viewer.
|
||||
- Jika URL expired, frontend meminta URL baru.
|
||||
Reference in New Issue
Block a user