diff --git a/app/Http/Controllers/Api/v1/CouponsController.php b/app/Http/Controllers/Api/v1/CouponsController.php index 90d84bb..8b4fd6a 100644 --- a/app/Http/Controllers/Api/v1/CouponsController.php +++ b/app/Http/Controllers/Api/v1/CouponsController.php @@ -14,6 +14,8 @@ use App\Traits\CouponTrait; use App\Traits\GenerateBR; use PDF; +use App\Lib\LDCCRM\ApiV1; + class CouponsController extends Controller { use CouponTrait; @@ -26,11 +28,15 @@ class CouponsController extends Controller $customer = Customers::find($datas['crm_id']); $couponsToPrint = explode(",", $datas['coupons']); + if ($campagne->site->crm_token === null) { + return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Token is missing for site_id : '. $campagne->site->site_id]); + } + if (empty($couponsToPrint)) { return new StatusResource(['status' => 'KO', 'code' => 422, 'message' => 'Coupons not found.']); } - $crm = app('crmApi'); + $crm = new ApiV1(config('crm.CRM_ENDPOINT'), $campagne->site->crm_token); $crmInfos = $crm->getCustomer($customer->crm_id); if ($crmInfos->status === "OK") { $crmInfos = $crmInfos->user; diff --git a/app/Http/Controllers/Api/v1/CustomerController.php b/app/Http/Controllers/Api/v1/CustomerController.php index c7bdc03..141ea55 100644 --- a/app/Http/Controllers/Api/v1/CustomerController.php +++ b/app/Http/Controllers/Api/v1/CustomerController.php @@ -40,9 +40,13 @@ class CustomerController extends Controller */ public function store(StoreRequest $request) { + $datas = $request->validated(); try { - $customer = new Customers(); - $customer->fill($request->validated()); + $customer = Customers::where([ + ['crm_id', $datas['crm_id']], + ['email', $datas['email']] + ])->firstOrNew(); + $customer->fill($datas); $customer->saveOrFail(); return new CustomersResource($customer); @@ -77,21 +81,12 @@ class CustomerController extends Controller /** * Update the specified resource in storage. * - * @param UpdateRequest $request - * @param Customers $customer - * @return CustomersResource | StatusResource + * @param Request $request + * @return StatusResource */ - public function update(UpdateRequest $request, Customers $customer) + public function update(Request $request) { - try { - $customer->fill($request->validated()); - $customer->saveOrFail(); - - return new CustomersResource($customer); - } catch (\Throwable $e) { - Log::critical($e->getMessage()); - return new StatusResource(['status' => 'KO', 'code' => '500', 'message' => 'Server Error.']); - } + return new StatusResource(['status' => 'KO', 'code' => '501', 'message' => 'Not Implemented']); } /** diff --git a/app/Http/Requests/Customers/StoreRequest.php b/app/Http/Requests/Customers/StoreRequest.php index bcf275a..4e8da11 100644 --- a/app/Http/Requests/Customers/StoreRequest.php +++ b/app/Http/Requests/Customers/StoreRequest.php @@ -27,8 +27,8 @@ class StoreRequest extends FormRequest public function rules() { return [ - 'crm_id' => 'numeric|unique:customers,crm_id|required', - 'email' => 'email|unique:customers,email|required', + 'crm_id' => 'numeric|required', + 'email' => 'email|required', 'country' => 'string|required' ]; } diff --git a/app/Providers/CrmApiServiceProvider.php b/app/Providers/CrmApiServiceProvider.php deleted file mode 100644 index 0e2af07..0000000 --- a/app/Providers/CrmApiServiceProvider.php +++ /dev/null @@ -1,22 +0,0 @@ -get('/user', function (Request $request) { - return $request->user(); -}); - Route::prefix('v1') ->group(function () { Route::resource('customer', 'Api\v1\CustomerController');