Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/V4/Admin/DiscountsController.php
<?php | <?php | ||||
namespace App\Http\Controllers\API\V4\Admin; | namespace App\Http\Controllers\API\V4\Admin; | ||||
use App\Discount; | use App\Discount; | ||||
use App\Http\Controllers\Controller; | use App\Http\Controllers\Controller; | ||||
class DiscountsController extends Controller | class DiscountsController extends Controller | ||||
{ | { | ||||
/** | /** | ||||
* Returns (active) discounts defined in the system. | * Returns (active) discounts defined in the system for the user context. | ||||
* | |||||
* @param int $id User identifier | |||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse JSON response | * @return \Illuminate\Http\JsonResponse JSON response | ||||
*/ | */ | ||||
public function index() | public function userDiscounts($id) | ||||
{ | { | ||||
$discounts = []; | $user = \App\User::find($id); | ||||
if (!$this->checkTenant($user)) { | |||||
return $this->errorResponse(404); | |||||
} | |||||
Discount::withEnvTenant() | $discounts = Discount::withObjectTenantContext($user) | ||||
->where('active', true) | ->where('active', true) | ||||
->orderBy('discount') | ->orderBy('discount') | ||||
->get() | ->get() | ||||
->map(function ($discount) use (&$discounts) { | ->map(function ($discount) { | ||||
$label = $discount->discount . '% - ' . $discount->description; | $label = $discount->discount . '% - ' . $discount->description; | ||||
if ($discount->code) { | if ($discount->code) { | ||||
$label .= " [{$discount->code}]"; | $label .= " [{$discount->code}]"; | ||||
} | } | ||||
$discounts[] = [ | return [ | ||||
'id' => $discount->id, | 'id' => $discount->id, | ||||
'discount' => $discount->discount, | 'discount' => $discount->discount, | ||||
'code' => $discount->code, | 'code' => $discount->code, | ||||
'description' => $discount->description, | 'description' => $discount->description, | ||||
'label' => $label, | 'label' => $label, | ||||
]; | ]; | ||||
}); | }); | ||||
return response()->json([ | return response()->json([ | ||||
'status' => 'success', | 'status' => 'success', | ||||
'list' => $discounts, | 'list' => $discounts, | ||||
'count' => count($discounts), | 'count' => count($discounts), | ||||
]); | ]); | ||||
} | } | ||||
} | } |