diff --git a/app/Helpers/ApiResponse.php b/app/Helpers/ApiResponse.php index 8f300d9..616f480 100644 --- a/app/Helpers/ApiResponse.php +++ b/app/Helpers/ApiResponse.php @@ -77,9 +77,10 @@ public static function validate( return $condition ? null : self::error($message, $code, $extra); } - public static function response($type = '', $query = '', $debug = false, $key = ''): array + public static function response($type = '', $query = '', $key = ''): array { - if ($debug && $type != 'success') DB::enableQueryLog(); // 쿼리 추적 + if (app()->environment('local')) $debug = true; + if ($debug) DB::enableQueryLog(); // 쿼리 추적 $result = match ($type) { 'get' => $key ? $query->get()->keyBy($key) : $query->get(), diff --git a/app/Http/Middleware/ApiKeyMiddleware.php b/app/Http/Middleware/ApiKeyMiddleware.php index cfea678..4511f1d 100644 --- a/app/Http/Middleware/ApiKeyMiddleware.php +++ b/app/Http/Middleware/ApiKeyMiddleware.php @@ -48,8 +48,16 @@ public function handle(Request $request, Closure $next) $user = $accessToken->tokenable; if ($user) { - $request->attributes->set('tenant_id', $user->tn_num); - $request->attributes->set('api_user', $user->mb_num); + // 기본 테넌트(여러개 소속시 우선순위) + $tenantId = $user->tenant?->tenant_id ?? $user->userTenants->first()?->tenant_id; + + $request->attributes->set('tenant_id', $tenantId); + $request->attributes->set('api_user', $user->id); + + + // ApiKeyMiddleware 등에서 + app()->instance('api_user', $user->id); + app()->instance('tenant_id', $tenantId); } } } diff --git a/app/Models/Tenant.php b/app/Models/Tenant.php index fe7e18f..67e8b22 100644 --- a/app/Models/Tenant.php +++ b/app/Models/Tenant.php @@ -4,10 +4,11 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use App\Traits\ModelTrait; class Tenant extends Model { - use SoftDeletes; + use SoftDeletes, ModelTrait; protected $fillable = [ 'name', diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 452e6b6..f3911ca 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider @@ -20,5 +21,14 @@ public function register(): void public function boot(): void { // + Builder::macro('debug', function($debug = null) { + if (is_null($debug) && app()->environment('local')) { + $debug = true; + } + if ($debug) { + \DB::enableQueryLog(); + } + return $this; + }); } } diff --git a/app/Services/ProductService.php b/app/Services/ProductService.php index 03602c8..3a3aa73 100644 --- a/app/Services/ProductService.php +++ b/app/Services/ProductService.php @@ -11,11 +11,11 @@ class ProductService /** * 회원 조회(리스트) */ - public static function getCategory(string $userToken, bool $debug = false) + public static function getCategory() { $query = CommonCode::where('code_group','category')->where('parent_id',null); - return ApiResponse::response('get', $query, true); + return ApiResponse::response('get', $query); } diff --git a/app/Traits/ModelTrait.php b/app/Traits/ModelTrait.php new file mode 100644 index 0000000..55ee57f --- /dev/null +++ b/app/Traits/ModelTrait.php @@ -0,0 +1,24 @@ +format('Y-m-d H:i:s'); + } + + /** + * Active 상태 조회 + */ + public function scopeActive($query) + { + return $query->where('is_active', 1); + } +}