medol-be/app/module/client_approval_settings/README.md

80 lines
2.9 KiB
Markdown
Raw Normal View History

# 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!