Files
sam-kd/eaccount/api/set_tenant.php
2025-12-16 20:05:46 +09:00

62 lines
1.6 KiB
PHP

<?php
/**
* 테넌트 선택 API
* 선택된 테넌트를 세션에 저장합니다.
*/
header('Content-Type: application/json; charset=utf-8');
require_once __DIR__ . '/../../lib/DotEnv.php';
(new DotEnv(__DIR__ . '/../../.env'))->load();
require_once(getenv('DOCUMENT_ROOT') . '/session.php');
require_once(getenv('DOCUMENT_ROOT') . '/lib/mydb.php');
$tenantId = $_POST['tenant_id'] ?? $_GET['tenant_id'] ?? '';
if (empty($tenantId)) {
echo json_encode([
'success' => false,
'error' => '테넌트 ID가 필요합니다.'
], JSON_UNESCAPED_UNICODE);
exit;
}
// DB에서 테넌트 존재 여부 확인
try {
$pdo = db_connect();
if (!$pdo) {
throw new Exception("Database connection failed.");
}
$sql = "SELECT id, company_name FROM {$DB}.barobill_companies WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$tenantId]);
$tenant = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$tenant) {
echo json_encode([
'success' => false,
'error' => '유효하지 않은 테넌트 ID입니다.'
], JSON_UNESCAPED_UNICODE);
exit;
}
// 세션에 저장
$_SESSION['eaccount_tenant_id'] = $tenantId;
echo json_encode([
'success' => true,
'tenant_id' => $tenantId,
'tenant_name' => $tenant['company_name'],
'message' => '테넌트가 변경되었습니다.'
], JSON_UNESCAPED_UNICODE);
} catch (Exception $e) {
echo json_encode([
'success' => false,
'error' => '테넌트 변경 실패: ' . $e->getMessage()
], JSON_UNESCAPED_UNICODE);
}
?>