Files
sam-api/app/Services/Service.php

38 lines
1.0 KiB
PHP
Raw Normal View History

<?php
namespace App\Services;
use Illuminate\Auth\AuthenticationException;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
abstract class Service
{
/** 활성 테넌트 ID(없으면 null) */
protected function tenantIdOrNull(): ?int
{
$id = app('tenant_id');
return $id ? (int) $id : null;
}
/** 활성 테넌트 ID(없으면 400 Bad Request + i18n 메시지로 예외) */
protected function tenantId(): int
{
$id = $this->tenantIdOrNull();
if (!$id) {
// ko/error.php 의 'tenant_id' 키 사용
throw new BadRequestHttpException(__('error.tenant_id'));
}
return $id;
}
/** (선택) API 사용자 ID 필요할 때 401로 던지고 싶다면 */
2025-08-21 15:43:06 +09:00
protected function apiUserId(): int
{
$uid = app('api_user');
if (!$uid) {
// Handler에서 AuthenticationException은 401로 처리 중
throw new AuthenticationException(__('auth.unauthenticated'));
}
return (int) $uid;
}
}