| Server IP : 13.235.167.51 / Your IP : 216.73.217.116 Web Server : Apache System : Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64 User : root ( 0) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/app.machinox.in/app/Http/Controllers/WebService/ |
Upload File : |
<?php
namespace App\Http\Controllers\WebService;
use App\Http\Controllers\Controller;
use App\Models\Advertisement;
use Exception;
use App\Http\Requests\WebService\AdvertiseRequest;
use App\Actions\WebService\AdvertiseAction;
use App\Http\Requests\WebService\AdImageRequest;
use App\Models\Notification;
use App\Models\User;
use App\Models\UserSubscription;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class AdvertiseController extends Controller
{
public function SetInfo(AdvertiseRequest $request, AdvertiseAction $action, $adId = null)
{
try {
$response = $action->execute($request, $adId);
return $this->sendSuccess($response->message, ['uuid' => $response->uuid]);
} catch (Exception $e) {
return response()->json(['status' => 'error', 'message' => $e->getMessage()], 500);
}
}
public function myAdvertises(Request $request)
{
try {
$userId = USER_ID();
$list = Advertisement::GetAdvertises($request, $type = null, $userId);
return $this->sendSuccess(trans('messages.OK'), $list);
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function GetInfo($id)
{
try {
$advertise = Advertisement::with([
'machine_type',
'machine_model',
'images',
'user'
])->where('uuid', $id)->firstOrFail();
$boost = $advertise->boosts()->where('is_active', true)->first();
$advertise->is_boosted = $boost ? true : false;
$advertise->ad_uuid = $advertise->uuid;
$advertise->chat_partner_id = USER_ID();
return $this->sendSuccess(trans('messages.OK'), $advertise);
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function SetSoldInfo($id)
{
try {
$advertisement = Advertisement::firstWhere('uuid', $id);
if ($advertisement->is_sold) {
return $this->sendError(trans('messages.ADVERTISEMENT_ALREADY_SOLD'));
}
$advertisement->is_sold = true;
$advertisement->is_publish = false;
$advertisement->save();
Notification::SetNotification(
$advertisement->user_id,
"Advertisement Marked as Sold",
"Your advertisement for {$advertisement->advertise_type} {$advertisement?->machine_model?->name} has been successfully marked as sold.",
"ADVERTISE_VIEW",
$advertisement->uuid,
"1"
);
$message = $advertisement->advertise_type == 'RENT' ? trans('messages.ADVERTISEMENT_BOOK_SUCCESS') : trans('messages.ADVERTISEMENT_SOLD_SUCCESS');
return $this->sendSuccess($message);
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function GetCatAdsList(FormRequest $request, $catId)
{
try {
$list = Advertisement::GetCatAdvertises($request, $catId);
return $this->sendSuccess(trans('messages.OK'), $list);
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function GetHomeAdvertises(Request $request, $type)
{
try {
$list = Advertisement::GetHomeAdvertises($request, $type);
return $this->sendSuccess(trans('messages.OK'), $list);
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function SetPublishInfo($id)
{
try {
$advertisement = Advertisement::where('uuid', $id)->firstOrFail();
$user = User::find(USER_ID());
$subs = $advertisement->advertise_type === "SELL" ? $user->hasSellerSubscription() : $user->hasRentalSubscription();
if (!$subs) {
return $this->sendError(trans('messages.NO_SUBSCRIPTION'), 403);
}
$advertisement->is_publish = true;
$advertisement->is_sold = false;
$advertisement->is_draft = false;
$advertisement->save();
return $this->sendSuccess(trans('messages.ADVERTISEMENT_PUBLISHED_SUCCESS'));
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function SetRepublishInfo($id)
{
try {
$user = User::find(USER_ID());
$advertisement = Advertisement::where('uuid', $id)->firstOrFail();
$subs = $advertisement->advertise_type === "SELL" ? $user->hasSellerSubscription() : $user->hasRentalSubscription();
if (!$subs) {
return $this->sendError(trans('messages.NO_SUBSCRIPTION'), 403);
}
if ($advertisement->is_publish == true) {
return $this->sendError(trans('messages.ADVERTISEMENT_ALREADY_PUBLISHED'));
}
$advertisement->is_sold = false;
$advertisement->is_publish = true;
$advertisement->is_draft = false;
$advertisement->save();
return $this->sendSuccess(trans('messages.ADVERTISEMENT_PUBLISHED_SUCCESS'));
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
public function UploadAdImage(AdImageRequest $request, AdvertiseAction $action, $adId)
{
try {
$response = $action->upload($request, $adId);
return $this->sendSuccess($response->message, ['uuid' => $response->uuid, 'path' => $response->Path],);
} catch (Exception $e) {
return response()->json(['status' => 'error', 'message' => $e->getMessage()], 500);
}
}
public function DeleteAdImage($adId, AdvertiseAction $action, $id = null)
{
try {
$response = $action->destroyImage($adId, $id);
return $this->sendSuccess(trans("messages.ADVERTISE_IMAGE_DELETED_SUCCESSFULLY"), $response);
} catch (Exception $e) {
return response()->json(['status' => 'error', 'message' => $e->getMessage()], 500);
}
}
public function Destroy($adId, AdvertiseAction $action)
{
try {
$response = $action->destroy($adId);
return $this->sendSuccess($response);
} catch (Exception $e) {
return response()->json(['status' => 'error', 'message' => $e->getMessage()], 500);
}
}
public function GetList(Request $request)
{
try {
$list = Advertisement::GetAdvertises($request);
return $this->sendSuccess(trans('messages.OK'), $list);
} catch (Exception $th) {
return $this->sendError($th->getMessage());
}
}
}