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

2.9 KiB

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:

    GET /api/v1/client-approval-settings
    Headers: X-Client-Key: <client-id>
    
  2. Disable Approval untuk Client:

    POST /api/v1/client-approval-settings/toggle-approval
    Body: {"requiresApproval": false}
    
  3. Set Auto Publish:

    PUT /api/v1/client-approval-settings
    Body: {"autoPublishArticles": true}
    
  4. Add Exempt User:

    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!