80 lines
2.9 KiB
Markdown
80 lines
2.9 KiB
Markdown
# Client Approval Settings Module
|
|
|
|
Module ini mengatur konfigurasi approval per client, memungkinkan setiap client untuk memiliki setting approval yang berbeda.
|
|
|
|
## ✅ Status: SELESAI & SIAP DIGUNAKAN
|
|
|
|
### 🎯 Fitur Utama:
|
|
- **Konfigurasi Approval per Client** - Setiap client bisa mengatur apakah memerlukan approval atau tidak
|
|
- **Auto Publish Articles** - Artikel bisa di-publish otomatis jika tidak memerlukan approval
|
|
- **Exemption Rules** - User, role, atau category tertentu bisa di-exempt dari approval
|
|
- **Default Workflow** - Set workflow default untuk client
|
|
- **Dynamic Toggle** - Bisa mengaktifkan/menonaktifkan approval secara dinamis
|
|
|
|
### 📁 Struktur File:
|
|
```
|
|
app/module/client_approval_settings/
|
|
├── client_approval_settings.module.go # Module & Router
|
|
├── controller/
|
|
│ └── client_approval_settings.controller.go
|
|
├── request/
|
|
│ └── client_approval_settings.request.go
|
|
├── response/
|
|
│ └── client_approval_settings.response.go
|
|
├── repository/
|
|
│ ├── client_approval_settings.repository.go
|
|
│ └── client_approval_settings.repository.impl.go
|
|
├── service/
|
|
│ └── client_approval_settings.service.go
|
|
├── mapper/
|
|
│ └── client_approval_settings.mapper.go
|
|
└── README.md
|
|
```
|
|
|
|
### 🔗 API Endpoints:
|
|
- `GET /api/v1/client-approval-settings` - Get settings
|
|
- `PUT /api/v1/client-approval-settings` - Update settings
|
|
- `DELETE /api/v1/client-approval-settings` - Delete settings
|
|
- `POST /api/v1/client-approval-settings/toggle-approval` - Toggle approval
|
|
- `POST /api/v1/client-approval-settings/enable-approval` - Enable approval
|
|
- `POST /api/v1/client-approval-settings/disable-approval` - Disable approval
|
|
- `PUT /api/v1/client-approval-settings/default-workflow` - Set default workflow
|
|
- `POST /api/v1/client-approval-settings/exempt-users` - Manage exempt users
|
|
- `POST /api/v1/client-approval-settings/exempt-roles` - Manage exempt roles
|
|
- `POST /api/v1/client-approval-settings/exempt-categories` - Manage exempt categories
|
|
|
|
### 🔧 Integration:
|
|
- ✅ Terdaftar di Router (`app/router/api.go`)
|
|
- ✅ Terdaftar di Main (`main.go`)
|
|
- ✅ Terintegrasi dengan Articles Service
|
|
- ✅ Menggunakan Entity yang sudah ada
|
|
- ✅ Dependency Injection lengkap
|
|
|
|
### 💡 Cara Penggunaan:
|
|
|
|
1. **Get Settings Client**:
|
|
```bash
|
|
GET /api/v1/client-approval-settings
|
|
Headers: X-Client-Key: <client-id>
|
|
```
|
|
|
|
2. **Disable Approval untuk Client**:
|
|
```bash
|
|
POST /api/v1/client-approval-settings/toggle-approval
|
|
Body: {"requiresApproval": false}
|
|
```
|
|
|
|
3. **Set Auto Publish**:
|
|
```bash
|
|
PUT /api/v1/client-approval-settings
|
|
Body: {"autoPublishArticles": true}
|
|
```
|
|
|
|
4. **Add Exempt User**:
|
|
```bash
|
|
POST /api/v1/client-approval-settings/exempt-users
|
|
Body: {"userId": 123, "reason": "Admin user"}
|
|
```
|
|
|
|
### 🎉 Module ini sekarang siap digunakan untuk mengatur approval system yang dinamis per client!
|