Files
Fritz Ramirez 10d0c477c8 Initial commit
2024-02-12 22:54:20 -05:00

137 lines
9.3 KiB
PHP

<?php
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Config;
use Google\Cloud\Storage\StorageClient;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Storage;
use Modules\Staffpayroll\Services\GenerateInvoiceItemForVideos;
use Modules\StudioPlus\Services\GoogleCloudPlatform;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::group(['middleware' => 'auth'], function () {
Route::group(['prefix' => 'videomanager'], function () {
Route::resource('categories', API\StudioPlusCategoryController::class);
Route::get('types', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'getTypes']);
});
Route::group(['prefix' => 'channel/{studioPlusChannel:name}'], function () {
Route::group(['prefix' => 'videos'], function () {
Route::get('/', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'index']);
Route::get('statistics', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'videoStatistics']);
Route::post('/', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'store']);
Route::get('{studioPlusVideo}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'show']);
Route::put('{studioPlusVideo}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'update']);
Route::delete('{studioPlusVideo}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'destroy']);
Route::put('{studioPlusVideo}/update-visibility', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'updateVisibility']);
Route::put('{studioPlusVideo}/update-status', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'updateStatus']);
Route::get('{studioPlusVideo}/thumbnails', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoThumbnailController::class, 'index']);
Route::post('{studioPlusVideo}/thumbnails', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoThumbnailController::class, 'store']);
Route::put('{studioPlusVideo}/update-amazon-url', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'updateAmazonUrl']);
Route::post('upload', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'uploadVideo']);
Route::post('patch/{studioPlusVideo}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'patchVideo']);
Route::post('process/{studioPlusVideo}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'processVideo']);
Route::post('store/{studioPlusVideo}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'storeVideo']);
Route::post('/create-video', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'createVideo']);
Route::post('/thumbnails/upload', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoThumbnailController::class, 'uploadThumbnail']);
Route::post('/{studioPlusVideo}/ratings', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'refetchRatings']);
Route::post('/{studioPlusVideo}/reprocess', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'reprocessVideo']);
Route::post('/{studioPlusVideo}/process', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'reprocessVideo2']);
Route::post('/{studioPlusVideo}/thumbnail/update', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoThumbnailController::class, 'updateThumbnail']);
Route::get('{studioPlusVideo}/get-video', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'getVideo']);
Route::post('{studioPlusVideo}/save-tags', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'saveTags']);
});
});
Route::get('/asin/check', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'checkASIN']);
Route::post('/videos/reprocess', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'reprocessVideos'])->name('studioplus.videos.reprocess');
Route::post('/videos/{studioPlusVideo}/comments', [Modules\StudioPlus\Http\Controllers\API\StudioPlusCommentController::class, 'store']);
Route::get('/videos/{studioPlusVideo}/comments', [Modules\StudioPlus\Http\Controllers\API\StudioPlusCommentController::class, 'index']);
Route::put('/comments/{comment}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusCommentController::class, 'update']);
Route::delete('/comments/{comment}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusCommentController::class, 'destroy']);
Route::put('/videos/{studioPlusVideo}/comments/{comment}', [Modules\StudioPlus\Http\Controllers\API\StudioPlusCommentController::class, 'update']);
Route::post('import', [Modules\StudioPlus\Http\Controllers\API\ImportController::class, 'import']);
Route::get('users', [Modules\StudioPlus\Http\Controllers\API\UserController::class, 'index']);
Route::get('creator-studio/settings', [Modules\StudioPlus\Http\Controllers\API\CreatorStudioSettingController::class, 'index']);
Route::post('creator-studio/settings', [Modules\StudioPlus\Http\Controllers\API\CreatorStudioSettingController::class, 'store']);
Route::put('creator-studio/settings/{globalSetting}/update-default', [Modules\StudioPlus\Http\Controllers\API\CreatorStudioSettingController::class, 'updateIsDefault']);
Route::post('creator-studio/update-settings', [Modules\StudioPlus\Http\Controllers\API\CreatorStudioSettingController::class, 'update']);
Route::delete('creator-studio/settings/{globalSetting}', [Modules\StudioPlus\Http\Controllers\API\CreatorStudioSettingController::class, 'destroy']);
Route::get('videos/statistics', [Modules\StudioPlus\Http\Controllers\API\StudioPlusVideoController::class, 'statistics']);
Route::get('get-asin-data', [Modules\StudioPlus\Http\Controllers\API\AsinController::class, 'getAsinData']);
Route::get('settings', [Modules\StudioPlus\Http\Controllers\API\GlobalSettingController::class, 'index']);
Route::post('settings', [Modules\StudioPlus\Http\Controllers\API\GlobalSettingController::class, 'store']);
Route::put('settings/{globalSetting}/activate', [Modules\StudioPlus\Http\Controllers\API\GlobalSettingController::class, 'activate']);
Route::get('settings/active', [Modules\StudioPlus\Http\Controllers\API\GlobalSettingController::class, 'getActive']);
Route::get('jobs', [Modules\StudioPlus\Http\Controllers\API\JobController::class, 'index']);
Route::get('/columnpresets', [Modules\StudioPlus\Http\Controllers\API\ColumnPresetController::class, 'index']);
Route::post('/columnpresets', [Modules\StudioPlus\Http\Controllers\API\ColumnPresetController::class, 'store']);
Route::post('/columnpresets/{id}', [Modules\StudioPlus\Http\Controllers\API\ColumnPresetController::class, 'update']);
Route::get('team-leaders', [Modules\StudioPlus\Http\Controllers\API\UserController::class, 'teamLeaders']);
});
Route::get('videos', [Modules\StudioPlus\Http\Controllers\API\VideoController::class, 'index']);
Route::get('guest/channel/{studioPlusChannel:name}/videos', [Modules\StudioPlus\Http\Controllers\API\ChannelController::class, 'show']);
Route::post('studioplus/upload-action', function () {
return 'Ok';
});
Route::get('test', function () {
//return (new GenerateInvoiceItemForVideos)->__invoke();
});
Route::get('testback', function () {
$storageClient = new StorageClient([
'keyFile' => json_decode(file_get_contents(module_path('StudioPlus', 'google-cloud-platform.json')), true)
]);
$bucket = $storageClient->bucket('wticreatorhub');
$newBuckets = [];
foreach ($bucket->objects() as $key => $bucket) {
$newBuckets[] = $bucket->name();
}
return $newBuckets;
});
Route::get('delete-object', function (Request $request) {
$storageClient = new StorageClient([
'keyFile' => json_decode(file_get_contents(module_path('StudioPlus', 'google-cloud-platform.json')), true)
]);
$bucket = $storageClient->bucket('wticreatorhub');
$object = $bucket->object($request->object);
$object->delete();
});
Route::get('/videos-temp/{studioPlusVideo}/comments', [Modules\StudioPlus\Http\Controllers\GuestCommentController::class, 'index']);
Route::get('/studio-plus/get-amazon-product-details', 'StudioPlusController@getProductDetails')->name('rainforest.product.details.get');
Route::get('users/export', [Modules\StudioPlus\Http\Controllers\API\UserController::class, 'export']);
include module_path('StudioPlus', 'Routes/API/watermarks.php');
include module_path('StudioPlus', 'Routes/API/video.php');