addDataParam('i', $release_id); } $return_type = $isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; $sql = 'DELETE FROM release_default_dms_master_restriction WHERE release_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM release_dms_master_restriction WHERE release_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM release_dms_restriction WHERE release_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM release_territory_restriction WHERE release_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } return true; } /** * Delete tracks entries. * * @param int $track_id Unique track identifier. * @param MysqliWrapper|QueryWrapper $wrapperObj Mysql DB wrapper obj. */ public function delete_track($track_id, $wrapperObj){ $isPDO = $wrapperObj instanceof QueryWrapper; if ($isPDO) { $data_params = [$track_id]; } else { $data_params = new QueryData(); $data_params->addDataParam('i', $track_id); } $return_type = $isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; $logger = \Zend_Registry::get('applicationLoggerOA'); $owsAssetsServiceClient = new OwsAssetsServiceClient(logger: $logger); $userId = $_SESSION['S_USERID']; $deleteTrackResponse = $owsAssetsServiceClient->deleteTrackAssets($track_id, $userId); if ($deleteTrackResponse == false) { $logger->error("Failed to delete track from ows-assets for track_id: $track_id"); } $sql = 'DELETE FROM track_video WHERE id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM track_artist WHERE track_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM track_credit WHERE track_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM track_note WHERE track_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM track_video_marker WHERE track_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM track_publisher WHERE unique_track_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM track_writer WHERE unique_track_id = ?'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'select id from licensing_review_status where track_id = ?'; $rs = $wrapperObj->executeQuery($sql, $data_params); if ($rs === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $tmp_licensing_review_ids = array(); foreach ($rs as $row) { if($row['id']){ $tmp_licensing_review_ids[] = $row['id']; } } if(count($tmp_licensing_review_ids)){ $data_params = $isPDO ? [] : new QueryData(); foreach ($tmp_licensing_review_ids as $val) { $isPDO ? $data_params[] = $val : $data_params->addDataParam('i', $val); } $sql = 'delete from licensing_review_status_change_history where licensing_review_id in('. implode(",", array_fill(0, count($tmp_licensing_review_ids), "?")) .')'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $sql = 'delete from licensing_review_status where id in('. implode(",", array_fill(0, count($tmp_licensing_review_ids), "?")) .')'; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } } // fetching upc from track table start $sql = 'SELECT r.release_id, r.upc ' . 'FROM track t ' . 'INNER JOIN releases r ON r.release_id = t.`release_id` ' . 'WHERE t.id = ? AND r.product_type_id IN (2,3)'; if ($isPDO) { $data_params = [$track_id]; } else { $data_params = new QueryData(); $data_params->addDataParam('i', $track_id); } $rs = $wrapperObj->executeQuery($sql, $data_params); if ($rs === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } if (!empty($rs)) { $upc_id = $rs[0]['upc']; $releaseId = $rs[0]['release_id']; $this->deleteCaptions($upc_id, $releaseId); $this->deleteSubtitles($upc_id, $track_id, $wrapperObj); } // deleting form track table $sql = 'DELETE FROM track WHERE id = ?'; if ($isPDO) { $data_params = [$track_id]; } else { $data_params = new QueryData(); $data_params->addDataParam('i', $track_id); } if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } return true; } /** * Delete caption asset and table entries. * * @param int $upc_id Upc for release. * @param int $releaseId Unique release identifier. */ protected function deleteCaptions($upc_id, $releaseId) { try { $caption = new Caption($upc_id); $assetTypes = Model_AssetType::getCaptionList(); foreach ($assetTypes as $assetId => $assetVal) { $caption->deleteCaption($releaseId, $assetId); } } catch (AssetException $e) { // skip when asset is not on asset location and simply delete from track table } } /** * Delete subtitle assets and table entries. * * @param int $upc_id Upc for release. * @param int $track_id Unique track identifier. * @param MysqliWrapper|QueryWrapper $wrapperObj Mysql DB wrapper obj. */ protected function deleteSubtitles($upc_id, $track_id, $wrapperObj) { // for deleting subtitle files try { $isPDO = $wrapperObj instanceof QueryWrapper; $subtitle = new Subtitles($upc_id); $sql = 'SELECT id, release_id FROM release_subtitles WHERE status != "deleted" AND track_id = ?'; if ($isPDO) { $data_params = [$track_id]; } else { $data_params = new QueryData(); $data_params->addDataParam('i', $track_id); } $rs = $wrapperObj->executeQuery($sql, $data_params); if ($rs === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } foreach ($rs as $row) { $subtitle->deleteSubtitle($row['release_id'], $row['id']); } } catch (AssetException $e) { // skip when asset is not on asset location and simply delete from release_subtitles table } // file deletion end // deleting form release_subtitle table $sql = 'DELETE FROM release_subtitles WHERE track_id = ?'; $return_type = $isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; if ($wrapperObj->executeQuery($sql, $data_params, $return_type) === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } } }