. */ header("Access-Control-Allow-Origin: *"); header("Content-Type: application/json; charset=UTF-8"); include_once __DIR__ . '/../../database/database.php'; include_once __DIR__ . '/../../objects/account.php'; include_once __DIR__ . '/../../objects/password.php'; include_once __DIR__ . '/../../objects/alias.php'; include_once __DIR__ . '/../../misc/utilities.php'; $logger = Logger::getInstance(); $database = new Database(); $db = $database->getConnection(); $account = new Account($db); $data = json_decode(file_get_contents("php://input")); if (!empty($data->id) || !empty($data->username)) { if (!empty($data->id)) { $account->id = $data->id; } elseif (!empty($data->username)) { $account->username = $data->username; if (!empty($data->domain)) { $account->domain = $data->domain; } } if ($account->getOne()) { $account->username = empty($data->username) ? $data->phone : $data->username; $account->domain = empty($data->domain) ? SIP_DOMAIN : $data->domain; $account->email = empty($data->email) ? null : $data->email; $account->activated = is_activated($data->activated) ? "1" : "0"; $password = new Password($db); $password->account_id = $account->id; $alias = new Alias($db); $alias->account_id = $account->id; if ($account->update()) { if (!empty($data->password)) { $password->algorithm = empty($data->algorithm) ? 'MD5' : $data->algorithm; $getOne = $password->getOne(); // Wait after getOne as it will override data if found $password->password = $data->password; if ($getOne) { if (!$password->update()) { $logger->error("Failed to update password for account id " . $alias->account_id); } } else { if (!$password->create()) { $logger->error("Failed to create password for account id " . $alias->account_id); } } } if (!empty($data->phone)) { $getOne = $alias->getOne(); // Wait after getOne as it will override data if found $alias->alias = $data->phone; $alias->domain = $account->domain; if ($getOne) { if (!$alias->update()) { $logger->error("Failed to update alias for account id " . $alias->account_id); } } else { if (!$alias->create()) { $logger->error("Failed to create alias for account id " . $alias->account_id); } } } http_response_code(200); echo json_encode(array("message" => "Account was updated.")); } else { http_response_code(503); echo json_encode(array("message" => "Unable to update account.")); } } else { http_response_code(404); echo json_encode(array("message" => "Account doesn't exist")); } } else { http_response_code(400); echo json_encode(array("message" => "Unable to update account, data is incomplete.")); }