big update all menus
This commit is contained in:
@@ -10,6 +10,8 @@ use App\Http\Resources\Tenant\TenantResource;
|
||||
use App\Models\Tenant;
|
||||
use App\Services\Tenant\TenantService;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\TenantInstallationSetting;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class TenantController extends ApiController
|
||||
{
|
||||
@@ -90,4 +92,44 @@ class TenantController extends ApiController
|
||||
403
|
||||
);
|
||||
}
|
||||
public function installationSetting(Request $request, Tenant $tenant)
|
||||
{
|
||||
$this->authorizeTenantAccess($request, $tenant);
|
||||
$setting = TenantInstallationSetting::firstOrCreate(['tenant_id' => $tenant->id], ['activation_mode' => 'list_order']);
|
||||
|
||||
return $this->success([
|
||||
...$setting->toArray(),
|
||||
'tenant' => new TenantResource($tenant),
|
||||
'ocr_api_key_configured' => filled($setting->ocr_api_key),
|
||||
'can_manage_ocr' => $request->user()->isMasterAdmin(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateInstallationSetting(Request $request, Tenant $tenant)
|
||||
{
|
||||
$this->authorizeTenantAccess($request, $tenant);
|
||||
$rules = ['activation_mode' => ['required', Rule::in(['list_order', 'ticket'])]];
|
||||
if ($request->user()->isMasterAdmin()) {
|
||||
$rules += [
|
||||
'ktp_ocr_enabled' => ['required', 'boolean'],
|
||||
'ocr_provider' => ['nullable', 'required_if:ktp_ocr_enabled,true', Rule::in(['gemini', 'openai'])],
|
||||
'ocr_api_key' => ['nullable', 'string', 'max:4096'],
|
||||
'clear_ocr_api_key' => ['nullable', 'boolean'],
|
||||
];
|
||||
}
|
||||
$data = $request->validate($rules);
|
||||
$setting = TenantInstallationSetting::firstOrCreate(['tenant_id' => $tenant->id], ['activation_mode' => 'list_order']);
|
||||
if ($request->user()->isMasterAdmin()) {
|
||||
if (! empty($data['clear_ocr_api_key'])) $data['ocr_api_key'] = null;
|
||||
elseif (blank($data['ocr_api_key'] ?? null)) unset($data['ocr_api_key']);
|
||||
unset($data['clear_ocr_api_key']);
|
||||
}
|
||||
$setting->update($data);
|
||||
|
||||
return $this->updated([
|
||||
...$setting->fresh()->toArray(),
|
||||
'ocr_api_key_configured' => filled($setting->fresh()->ocr_api_key),
|
||||
'can_manage_ocr' => $request->user()->isMasterAdmin(),
|
||||
], 'Setting tenant berhasil disimpan');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user