diff --git a/.env.example b/.env.example index ca7461a..d57ad09 100644 --- a/.env.example +++ b/.env.example @@ -19,3 +19,7 @@ CACHE_DRIVER=file QUEUE_CONNECTION=sync ACCEPTED_KEYS=yhSTSSqIO1uSE1icu09edPOeSFGxIDjo + +TWILIO_ACCOUNT_SID="ACacdb9c9601741af001ebbc7eca4969cd" +TWILIO_AUTH_TOKEN="e0e2f1176c09b3980c9ecf967187191b" +TWILIO_SMS_FROM="+447400348273" diff --git a/app/Http/Controllers/CommissionController.php b/app/Http/Controllers/CommissionController.php index b23d091..27759c5 100644 --- a/app/Http/Controllers/CommissionController.php +++ b/app/Http/Controllers/CommissionController.php @@ -24,18 +24,18 @@ class CommissionController extends Controller // } - public function virement(Request $request) + public function virement($id_wallet) { - $rules = [ - "id_agent" => 'required|integer|min:0' - ]; - $this->validate($request,$rules); - $wallet = Wallet::where('id_networkAgent',$request->get('id_agent'))->firstOrFail(); + $wallet = Wallet::findOrFail($id_wallet); + + if($wallet->balance_com <=0 ) + return $this->errorResponse('Solde de comission est vide' , Response::HTTP_BAD_REQUEST); $wallet->balance_princ += $wallet->balance_com; $wallet->balance_com = 0; + $wallet->save(); - return $this->successResponse('Virement de commission reussie'); + return $this->successResponse($wallet); } } diff --git a/app/Http/Controllers/CreditController.php b/app/Http/Controllers/CreditController.php index 10b63f6..3123d92 100644 --- a/app/Http/Controllers/CreditController.php +++ b/app/Http/Controllers/CreditController.php @@ -7,6 +7,7 @@ use App\Models\DemandeCredit; use App\Models\Wallet; use App\Models\WalletAgent; use App\Traits\ApiResponser; +use App\Twilio; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\DB; @@ -25,11 +26,12 @@ class CreditController extends Controller // } - public function treatDemand($id_demand){ + public function treatDemand($id_demand,Twilio $twilio){ $demand = DemandeCredit::where('id',$id_demand)->firstOrFail(); if($demand->status == 1) return $this->errorResponse('Demande deja traitée',Response::HTTP_BAD_REQUEST); + $agent = AgentPlus::where('code_membre',$demand->code_membre)->firstOrFail(); $parrain = AgentPlus::where('code_membre',$demand->code_parrain)->firstOrFail(); $walletAgentParrain = WalletAgent::where('agent_id',$parrain->id)->firstOrFail(); @@ -43,9 +45,26 @@ class CreditController extends Controller $walletAgent->balance_princ += $demand->montant; $walletParrain->balance_princ -= $demand->montant; - DB::update('UPDATE demandeCredits SET status = 1 WHERE ( id = ? );',[$demand->id]); + DB::update('UPDATE demandeCredits SET status = 1 , date_modification = CURRENT_TIMESTAMP WHERE ( id = ? );',[$demand->id]); $walletAgent->save(); $walletParrain->save(); - return $this->successResponse($walletAgent); + + // try { +// $twilio->notify($agent->phone, 'Votre demande de credit de '.$demand->montant .' aupres de '.$parrain->lastname.' '.$parrain->lastname.'a été traitée'); +// }catch (\Exception $e){ +// echo "Error: " . $e->getMessage(); +// } + + return $this->successResponse($walletParrain); + } + + public function cancelDemand($id_demand ,Twilio $twilio){ + DB::update('UPDATE demandeCredits SET canceled = 1 WHERE ( id = ? );',[$id_demand]); + // try { +// $twilio->notify($agent->phone, 'Votre demande de credit de '.$demand->montant .' aupres de '.$parrain->lastname.' '.$parrain->lastname.'a été traitée'); +// }catch (\Exception $e){ +// echo "Error: " . $e->getMessage(); +// } + return $this->successResponse('Demande de credit annullée'); } } diff --git a/app/Twilio.php b/app/Twilio.php new file mode 100644 index 0000000..225212d --- /dev/null +++ b/app/Twilio.php @@ -0,0 +1,48 @@ +account_sid = env('TWILIO_ACCOUNT_SID'); + + $this->auth_token = env('TWILIO_AUTH_TOKEN'); + + $this->number = env('TWILIO_SMS_FROM'); + + $this->client = $this->setUp(); + } + + public function setUp() + { + return new Client($this->account_sid, $this->auth_token); + } + + public function notify($number, string $message) + { + $message = $this->client->messages->create($number, [ + 'from' => $this->number, + 'body' => $message + ]); + + return $message; + } +} diff --git a/composer.json b/composer.json index 257d24a..fd7e4d0 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,8 @@ "require": { "php": "^7.2.5", "guzzlehttp/guzzle": "^6.5", - "laravel/lumen-framework": "^7.0" + "laravel/lumen-framework": "^7.0", + "twilio/sdk": "^6.3" }, "require-dev": { "fzaninotto/faker": "^1.9.1", diff --git a/composer.lock b/composer.lock index b69ea6e..7ab17b0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "4f5df1d5bb479b7274f68ed7be7e047b", + "content-hash": "3e56a6208178c25d0d589884fc9ea980", "packages": [ { "name": "brick/math", @@ -3631,6 +3631,56 @@ ], "time": "2020-03-27T16:56:45+00:00" }, + { + "name": "twilio/sdk", + "version": "6.3.0", + "source": { + "type": "git", + "url": "https://github.com/twilio/twilio-php.git", + "reference": "1c723c7155e5e41bece4f5c4aca0b28d63778b04" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twilio/twilio-php/zipball/1c723c7155e5e41bece4f5c4aca0b28d63778b04", + "reference": "1c723c7155e5e41bece4f5c4aca0b28d63778b04", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.3", + "phpunit/phpunit": ">=4.5", + "theseer/phpdox": "^0.12.0" + }, + "suggest": { + "guzzlehttp/guzzle": "An HTTP client to execute the API requests" + }, + "type": "library", + "autoload": { + "psr-4": { + "Twilio\\": "src/Twilio/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Twilio API Team", + "email": "api@twilio.com" + } + ], + "description": "A PHP wrapper for Twilio's API", + "homepage": "http://github.com/twilio/twilio-php", + "keywords": [ + "api", + "sms", + "twilio" + ], + "time": "2020-04-15T20:03:03+00:00" + }, { "name": "vlucas/phpdotenv", "version": "v4.1.3", diff --git a/routes/web.php b/routes/web.php index 0915302..ad73916 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,9 +24,10 @@ $router->group(['prefix' => '/transactions'] , function () use ($router){ // Credits routes $router->group(['prefix' => '/credits'] , function () use ($router){ $router->put('treatDemand/{id_demand}','CreditController@treatDemand'); + $router->put('cancelDemand/{id_demand}','CreditController@cancelDemand'); }); -$router->post('/virement','CommissionController@virement'); +$router->put('/virement/{id_wallet}','CommissionController@virement'); // Wallets routes $router->group(['prefix' => '/wallets'] , function () use ($router){