mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-07-14 09:01:42 -04:00
StudioPlus Module Update - create reachout account
This commit is contained in:
@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\MLMDownline\Entities\MLMDownlineUser;
|
||||
use Modules\StaffPayroll\Entities\Invoice;
|
||||
@@ -61,10 +62,16 @@ use Modules\StudioPlus\Jobs\UpdateVideoMeta;
|
||||
use Modules\StudioPlus\Services\WatermarkService;
|
||||
use Modules\StudioPlus\Services\VideoInvoice;
|
||||
use Cache;
|
||||
use Modules\WTIJobBoard\Entities\JobRequest;
|
||||
use Modules\WTIJobBoard\Entities\JobRequestCategory;
|
||||
use Modules\WTIJobBoard\Entities\JobRequestTrack;
|
||||
use Modules\WTIJobBoard\Entities\JobRequestTrackMeta;
|
||||
use Modules\WTIJobBoard\Services\ProductService;
|
||||
use App\Traits\SendMail;
|
||||
|
||||
class StudioPlusVideoController extends Controller
|
||||
{
|
||||
use DispatchesJobs;
|
||||
use DispatchesJobs, SendMail;
|
||||
|
||||
private $storageClient;
|
||||
private $bucketName;
|
||||
@@ -1383,6 +1390,91 @@ class StudioPlusVideoController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function createAccount(Request $request, StudioPlusVideo $video)
|
||||
{
|
||||
try {
|
||||
|
||||
|
||||
//lets create the user account first
|
||||
$password = Str::random(10);
|
||||
$user = User::create([
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($password),
|
||||
'role_id' => 4
|
||||
]);
|
||||
|
||||
$user->company()->create([]);
|
||||
|
||||
$category = JobRequestCategory::latest()->first();
|
||||
$job_request = JobRequest::create([
|
||||
'client_id' => $user->id,
|
||||
'studio_plus_videos_id' => $video->id,
|
||||
'source_id' => 1, //AMAZON
|
||||
'title' => $video->product_name,
|
||||
'type' => $category->id,
|
||||
'status' => 'publish',
|
||||
'job_status' => 'Completed',
|
||||
'track_package_status' => 'Completed',
|
||||
'credits' => 0,
|
||||
'credit_type' => 'subscription',
|
||||
'is_approved' => 1,
|
||||
]);
|
||||
|
||||
$product = (new AmazonProductService)->getProductDetails($video->asin);
|
||||
$job_request->product()->create([
|
||||
'asin' => $video->asin,
|
||||
'name' => $video->product_name,
|
||||
'brand' => isset($product['brand']) ? $product['brand'] : null,
|
||||
'category' => isset($product['category']->name) ? $product['category']->name : null,
|
||||
'price' => isset($product['price']) ? $product['price'] : null,
|
||||
'reviews' => isset($product['amazon_total_reviews']) ? $product['amazon_total_reviews'] : null,
|
||||
'image' => isset($product['image']->link) ? $product['image']->link : null
|
||||
]);
|
||||
|
||||
JobRequestTrack::insert([
|
||||
['job_request_id' => $job_request->id, 'status_id' => 1],
|
||||
['job_request_id' => $job_request->id, 'status_id' => 2]
|
||||
]);
|
||||
|
||||
$complete_track = new JobRequestTrack();
|
||||
$complete_track->job_request_id = $job_request->id;
|
||||
$complete_track->status_id = 5;
|
||||
$complete_track->save();
|
||||
|
||||
$meta = new JobRequestTrackMeta();
|
||||
$meta->track_id = $complete_track->id;
|
||||
$meta->name = 'fulfilled_at';
|
||||
$meta->value = \Carbon\Carbon::now()->format('Y-m-d H:i:s');
|
||||
$meta->save();
|
||||
|
||||
$video->job_request_id = $job_request->id;
|
||||
$video->update();
|
||||
$video->load([
|
||||
'thumbnail',
|
||||
'thumbnails',
|
||||
'videoType',
|
||||
'otts.links',
|
||||
'category',
|
||||
'asinData',
|
||||
'channel.user.staff',
|
||||
'urls'
|
||||
]);
|
||||
|
||||
$this->sendReachoutAccountMail($user->email,$password);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Reachout account successfully created and emailed to the client',
|
||||
'video' => $video,
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => $e->getMessage()
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function getCustomTags()
|
||||
{
|
||||
$tags = [];
|
||||
|
||||
Reference in New Issue
Block a user