diff --git a/app/Http/Controllers/TransmittingNetworksController.php b/app/Http/Controllers/TransmittingNetworksController.php index 44008e4..a9de5ce 100755 --- a/app/Http/Controllers/TransmittingNetworksController.php +++ b/app/Http/Controllers/TransmittingNetworksController.php @@ -41,7 +41,7 @@ class TransmittingNetworksController extends Controller /** * @OA\Post( * path="/emitTransaction", - * summary="Emettre une transaction vers le backend de iLink APP", + * summary="Permettre aux réseaux émétteurs d'emettre une transaction vers le backend de iLink App", * tags={"Transaction vers le backend de iLink App"}, * security={{"api_key":{}}}, * @OA\RequestBody( @@ -57,11 +57,11 @@ class TransmittingNetworksController extends Controller * ), * examples = { * "destination_channel_is_wallet" : { - * "summary" : "Transaction ayant pour canal de destination le wallet d'un utilisateur simple", + * "summary" : "Transaction ayant pour canal de destination le wallet d'un utilisateur simple - Trame attendue", * "value" : {"type":1,"id_transaction_network_emetteur":"T123456789","network_emetteur":61,"network_destinataire":101,"nom_emetteur":"Djery","prenom_emetteur":"Tom","email_emetteur":"ddietchi@ilink-app.com","type_document_emetteur":"passport","id_document_emetteur":"12345","id_emetteur":"KKKKKKK","id_destinataire":"s6LD9PmCJC","montant_commission":5000,"montant":50000,"frais":100,"taxe":50,"part_reseau_emetteur":2000,"part_reseau_payeur":1500} * }, * "destination_channel_is_cash" : { - * "summary" : "Transaction ayant pour canal de destination l'argent en cash", + * "summary" : "Transaction ayant pour canal de destination l'argent en cash - Trame attendue", * "value": {"type":17,"id_transaction_network_emetteur":"T123456789","network_emetteur":61,"network_destinataire":101,"nom_emetteur":"Djery","prenom_emetteur":"Tom","email_emetteur":"ddietchi@ilink-app.com","type_document_emetteur":"passport","id_document_emetteur":"12345","id_emetteur":"sBhk1kl25","nom_destinataire":"Manga NSONGO","prenom_destinataire":"Jacques","type_document_destinataire":"cni","id_document_destinataire":"12345697","email_destinataire":"Jmangansongo.cfao@yahoo.fr","montant_commission":5000,"montant":50000,"code_retrait":"A123B123C123D123","frais":100,"taxe":50,"part_reseau_emetteur":2000,"part_reseau_payeur":1500} * }, * } @@ -74,7 +74,7 @@ class TransmittingNetworksController extends Controller * ref="#/components/schemas/ApiResponse", * examples = { * "destination_channel_is_wallet" : { - * "summary" : "Transaction ayant pour canal de destination le wallet d'un utilisateur simple", + * "summary" : "Transaction ayant pour canal de destination le wallet d'un utilisateur simple - Reponse attendue", * "value" : { * "status" : 200, * "response" : "Demande traitée avec succès", @@ -82,7 +82,7 @@ class TransmittingNetworksController extends Controller * } * }, * "destination_channel_is_cash" : { - * "summary" : "Transaction ayant pour canal de destination l'argent en cash", + * "summary" : "Transaction ayant pour canal de destination l'argent en cash - Reponse attendue", * "value" : { * "status" : 200, * "response" : "Demande traitée avec succès", @@ -152,84 +152,104 @@ class TransmittingNetworksController extends Controller /** * @OA\Schema( * schema="destination_channel_is_wallet", - * title="Transaction ayant pour canal de destination le wallet d'un utilisateur simple", + * title="Transaction ayant pour canal de destination le wallet d'un utilisateur simple - Trame attendue", * @OA\Property(property="type", * type="integer", - * enum = {1}, - * default = 1, + * enum = {1}, + * default = 1, * description="Type de la transaction : Cette valeur est statique" * ), * @OA\Property(property="id_transaction_network_emetteur", * type="string", + * minLength = 12, * example="T123456789", * description="ID de la transaction chez le réseau émetteur" * ), * @OA\Property(property="network_emetteur", * type="integer", + * minimum = 1, * example=61, * description="ID du reseau émetteur enregistré dans la base de données de iLink World" * ), * @OA\Property(property="network_destinataire", * type="integer", + * minimum = 1, * example=101, * description="ID du reseau destinataire enregistré dans la base de données" * ), * @OA\Property(property="id_emetteur", * type="string", + * minLength = 3, * description="ID de l'émetteur dans la base de données du réseau émetteur de iLink World" * ), * @OA\Property(property="nom_emetteur", * type="string", + * minLength = 2, * description="Noms de l'émetteur" * ), * @OA\Property(property="prenom_emetteur", * type="string", + * minLength = 0, * description="Prenoms de l'émetteur" * ), * @OA\Property(property="email_emetteur", * type="string", + * format = "email", + * minLength = 5, * description="Email de l'émetteur" * ), * @OA\Property(property="type_document_emetteur", * type="string", + * minLength = 3, + * example = "Passeport", * description="Type de document que l'émetteur a fourni pour son identification" * ), * @OA\Property(property="id_document_emetteur", * type="string", + * minLength = 3, * description="ID de l'émetteur sur le document qu'il a fourni pour son identification" * ), * @OA\Property(property="id_destinataire", * type="string", + * minLength = 10, + * maxLength = 10, + * example = "vK2B9BeCsc", * description="ID du destinataire enregistré dans la base de données de iLink World" * ), * @OA\Property(property="montant", * type="number", + * minimum = 1, * example = 10000, * description="Montant de la transaction" * ), * @OA\Property(property="montant_commission", * type="number", * example = 500, + * minimum = 0, * description="Montant de la commission sur la transaction" * ), * @OA\Property(property="frais", * type="number", * example = 200, + * minimum = 0, * description="Montant des frais sur la transaction" * ), * @OA\Property(property="taxe", * type="number", - * example = 100, + * example = 100, + * minimum = 0, * description="Montant de la taxe sur la transaction" * ), * @OA\Property(property="part_reseau_emetteur", * type="number", * example = 700, + * minimum = 0, * description="Montant de la part du réseau émétteur sur la transaction" * ), * @OA\Property(property="part_reseau_payeur", * type="number", * example = 500, + * minimum = 0, * description="Montant de la part du réseau payeur sur la transaction" * ), * ) @@ -239,7 +259,7 @@ class TransmittingNetworksController extends Controller 'id_destinataire' => 'required', 'nom_emetteur' => 'required', 'prenom_emetteur' => 'required', - 'email_emetteur' => 'required', + 'email_emetteur' => 'required|email:rfc', 'type_document_emetteur' => 'required', 'id_document_emetteur' => 'required', 'id_emetteur' => 'required', @@ -283,7 +303,7 @@ class TransmittingNetworksController extends Controller /** * @OA\Schema( * schema="destination_channel_is_cash", - * title="Transaction ayant pour canal de destination l'argent en cash", + * title="Transaction ayant pour canal de destination l'argent en cash - Trame attendue", * @OA\Property(property="type", * type="integer", * enum = {17}, @@ -293,36 +313,46 @@ class TransmittingNetworksController extends Controller * @OA\Property(property="id_transaction_network_emetteur", * type="string", * example="T123456789", + * minLength = 12, * description="ID de la transaction chez le réseau émetteur" * ), * @OA\Property(property="network_emetteur", * type="integer", * example=61, + * minimum = 1, * description="ID du reseau émetteur enregistré dans la base de données de iLink World" * ), * @OA\Property(property="network_destinataire", * type="integer", + * minimum = 1, * example=101, - * description="ID du reseau destinataire enregistré dans la base de données" + * description="ID du reseau destinataire enregistré dans la base de données du réseau émétteur" * ), * @OA\Property(property="id_emetteur", * type="string", + * minLength = 3, * description="ID de l'émetteur dans la base de données du réseau émetteur de iLink World" * ), * @OA\Property(property="nom_emetteur", * type="string", + * minLength = 2, * description="Noms de l'émetteur" * ), * @OA\Property(property="prenom_emetteur", * type="string", + * minLength = 0, * description="Prenoms de l'émetteur" * ), * @OA\Property(property="email_emetteur", * type="string", + * format = "email", + * minLength = 5, * description="Email de l'émetteur" * ), * @OA\Property(property="type_document_emetteur", * type="string", + * minLength = 3, + * example = "Passeport", * description="Type de document que l'émetteur a fourni pour son identification" * ), * @OA\Property(property="id_document_emetteur", @@ -331,57 +361,72 @@ class TransmittingNetworksController extends Controller * ), * @OA\Property(property="nom_destinataire", * type="string", + * minLength = 2, * description="Noms du destinataire" * ), * @OA\Property(property="prenom_destinataire", * type="string", + * minLength = 0, * description="Prenoms du destinataire" * ), * @OA\Property(property="email_destinataire", * type="string", + * format = "email", + * minLength = 5, * description="Email du destinataire" * ), * @OA\Property(property="type_document_destinataire", * type="string", + * minLength = 3, + * example = "Passeport", * description="Type de document que le destinataire fournira pour son identification" * ), * @OA\Property(property="id_document_destinataire", * type="string", + * minLength = 3, * description="ID du destinataire sur le document qu'il fournira pour son identification" * ), * @OA\Property(property="montant", * type="number", + * minimum = 1, * example = 10000, * description="Montant de la transaction" * ), * @OA\Property(property="montant_commission", * type="number", * example = 500, + * minimum = 0, * description="Montant de la commission sur la transaction" * ), * @OA\Property(property="code_retrait", * type="string", * example ="A123B123C123D123", + * minLength = 16, + * maxLength = 16, * description="Code retrait (de 16 caracteres) qui sera utilisé lors du retrait de l'argent en cash" * ), * @OA\Property(property="frais", * type="number", * example = 200, + * minimum = 0, * description="Montant des frais sur la transaction" * ), * @OA\Property(property="taxe", * type="number", * example = 100, + * minimum = 0, * description="Montant de la taxe sur la transaction" * ), * @OA\Property(property="part_reseau_emetteur", * type="number", * example = 700, + * minimum = 0, * description="Montant de la part du réseau émétteur sur la transaction" * ), * @OA\Property(property="part_reseau_payeur", * type="number", * example = 500, + * minimum = 0, * description="Montant de la part du réseau payeur sur la transaction" * ), * ) @@ -393,12 +438,12 @@ class TransmittingNetworksController extends Controller 'prenom_emetteur' => 'required', 'type_document_emetteur' => 'required', 'id_document_emetteur' => 'required', - 'email_emetteur' => 'required', + 'email_emetteur' => 'required|email:rfc', 'nom_destinataire' => 'required', 'prenom_destinataire' => 'required', 'type_document_destinataire' => 'required', 'id_document_destinataire' => 'required', - 'email_destinataire' => 'required', + 'email_destinataire' => 'required|email:rfc', 'code_retrait' => 'required|size:16' ]); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 35ed681..4106d60 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -97,7 +97,7 @@ class UserController extends Controller * @OA\Property(property="town", * type="string", * minLength=3, - * default="Douala", + * default="Douala ", * description="Ville de residence de l'utilisateur" * ), * diff --git a/app/Traits/Helper.php b/app/Traits/Helper.php index def5251..6bcee92 100644 --- a/app/Traits/Helper.php +++ b/app/Traits/Helper.php @@ -59,7 +59,11 @@ trait Helper $body->user_code = $user_code; $body->message = $message; $body->data = $data; - $body->date = $date->format('Y-m-d H:i:s'); + try{ + $body->date = $date->format('Y-m-d H:i:s'); + }catch (\Exception $e){ + $body->date = $date; + } $promise = $client->requestAsync('POST', '/onesignal/pushToUser', ['json' => $body, 'headers' => $headers])->then(); // function (ResponseInterface $res) { // echo $res->getStatusCode() . "\n"; @@ -85,7 +89,11 @@ trait Helper $body->agent_code = $agent_code; $body->message = $message; $body->data = $data; - $body->date = $date->format('Y-m-d H:i:s'); + try{ + $body->date = $date->format('Y-m-d H:i:s'); + }catch (\Exception $e){ + $body->date = $date; + } $promise = $client->requestAsync('POST', '/onesignal/pushToAgent', ['json' => $body, 'headers' => $headers])->then(); $promise->wait(); }