62 lines
1.6 KiB
PHP
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);
|
||
|
|
}
|
||
|
|
?>
|
||
|
|
|