Compare commits
No commits in common. "3b8bba2b579797999b2b2f4d316e9e456ec18acf" and "559ceda34674927db315c25e691cd4fe32b6c6dc" have entirely different histories.
3b8bba2b57
...
559ceda346
11
.env.example
11
.env.example
|
@ -15,14 +15,6 @@ DB_DATABASE=iLink_notifications
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=vps@2017GA
|
DB_PASSWORD=vps@2017GA
|
||||||
|
|
||||||
MAIL_HOST=mail.ilink-app.com
|
|
||||||
MAIL_USERNAME=noreply@ilink-app.com
|
|
||||||
MAIL_PASSWORD=ilink2017GA
|
|
||||||
MAIL_FROM_ADDRESS=noreply@ilink-app.com
|
|
||||||
MAIL_FROM_NAME="iLink World"
|
|
||||||
MAIL_ENCRYPTION=tls
|
|
||||||
|
|
||||||
|
|
||||||
CACHE_DRIVER=file
|
CACHE_DRIVER=file
|
||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=sync
|
||||||
|
|
||||||
|
@ -31,6 +23,3 @@ ACCEPTED_KEYS=RfXvPQzQRgwpzQYPnLfWpZzgx4QseHlg
|
||||||
ONESIGNAL_REST_API_KEY=OWU0NTRhNzItMjAzNy00YTc4LTlhMDUtYTU4MmNlNGZmMmU3
|
ONESIGNAL_REST_API_KEY=OWU0NTRhNzItMjAzNy00YTc4LTlhMDUtYTU4MmNlNGZmMmU3
|
||||||
ONESIGNAL_USER_AUTH_KEY=
|
ONESIGNAL_USER_AUTH_KEY=
|
||||||
ONESIGNAL_APP_ID=e8e7251f-713d-4658-9510-86d877fa6a7c
|
ONESIGNAL_APP_ID=e8e7251f-713d-4658-9510-86d877fa6a7c
|
||||||
|
|
||||||
WALLET_SERVICE_BASE_URL =https://ilink-app.com
|
|
||||||
WALLET_SERVICE_KEY=yhSTSSqIO1uSE1icu09edPOeSFGxIDjo
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Illuminate\Support\Facades\Mail;
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
class MailController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// Log::info("consturct mail");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function send(Request $request)
|
|
||||||
{
|
|
||||||
$this->validate($request,[
|
|
||||||
'title' => 'required|string',
|
|
||||||
'message' => 'required|string',
|
|
||||||
'email' => 'required|email'
|
|
||||||
]);
|
|
||||||
|
|
||||||
$title = $request->input('title');
|
|
||||||
try {
|
|
||||||
$recipients = [$request->input('email')];
|
|
||||||
Mail::mailer('smtp')->raw($request->input('message'), function ($message) use ($recipients, $title) {
|
|
||||||
$message->subject($title);
|
|
||||||
$message->to($recipients);
|
|
||||||
});
|
|
||||||
} catch (Throwable $t) {
|
|
||||||
Log::error('-------- Mail not sent -----------');
|
|
||||||
Log::error($t->getMessage().'\n'.$t->getTraceAsString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -32,9 +32,9 @@ class NotificationController extends Controller
|
||||||
]);
|
]);
|
||||||
$notifications = [];
|
$notifications = [];
|
||||||
if (isset($request->user_code))
|
if (isset($request->user_code))
|
||||||
$notifications = Notification::where('user_code', $request->user_code)->orderBy('date' , 'DESC')->get();
|
$notifications = Notification::where('user_code', $request->user_code)->get();
|
||||||
elseif (isset($request->agent_code))
|
elseif (isset($request->agent_code))
|
||||||
$notifications = Notification::where('agent_code', $request->agent_code)->orderBy('date' , 'DESC')->get();
|
$notifications = Notification::where('agent_code', $request->agent_code)->get();
|
||||||
|
|
||||||
foreach ($notifications as $notif) {
|
foreach ($notifications as $notif) {
|
||||||
$notif->data = json_decode($notif->data);
|
$notif->data = json_decode($notif->data);
|
||||||
|
@ -43,12 +43,5 @@ class NotificationController extends Controller
|
||||||
return $this->successResponse($notifications);
|
return $this->successResponse($notifications);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function readNotification($id_notif){
|
|
||||||
$notif = Notification::findOrFail($id_notif);
|
|
||||||
$notif->read = true;
|
|
||||||
$notif->save();
|
|
||||||
return $this->successResponse('Success');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,9 @@ use App\Models\Notification;
|
||||||
use App\Models\OnesignalAgent;
|
use App\Models\OnesignalAgent;
|
||||||
use App\Models\OnesignalUser;
|
use App\Models\OnesignalUser;
|
||||||
use App\Traits\ApiResponser;
|
use App\Traits\ApiResponser;
|
||||||
use GuzzleHttp\Exception\GuzzleException;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Berkayk\OneSignal\OneSignalFacade;
|
use Berkayk\OneSignal\OneSignalFacade;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Mockery\Matcher\Not;
|
||||||
|
|
||||||
class OneSignalController extends Controller
|
class OneSignalController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -28,112 +26,47 @@ class OneSignalController extends Controller
|
||||||
public function addUserPlayerID(Request $request){
|
public function addUserPlayerID(Request $request){
|
||||||
$this->validate($request , [
|
$this->validate($request , [
|
||||||
'user_code'=> 'required',
|
'user_code'=> 'required',
|
||||||
'player_id'=> 'required',
|
'player_id'=> 'required'
|
||||||
'set_default' => 'required|boolean'
|
|
||||||
]);
|
]);
|
||||||
$records = OnesignalUser::where('user_code',$request->user_code)->get();
|
|
||||||
if($request->set_default){
|
$saveUser = OnesignalUser::where('user_code',$request->user_code)->where('player_id',$request->player_id)->first();
|
||||||
foreach ($records as $r){
|
if(!$saveUser){
|
||||||
$r->delete();
|
|
||||||
}
|
|
||||||
$user = new OnesignalUser();
|
$user = new OnesignalUser();
|
||||||
$user->fill($request->all());
|
$user->fill($request->all());
|
||||||
$user->save();
|
$user->save();
|
||||||
}else{
|
|
||||||
|
|
||||||
$saveUser = OnesignalUser::where('user_code',$request->user_code)->where('player_id',$request->player_id)->first();
|
|
||||||
if(!$saveUser){
|
|
||||||
if(sizeof($records)>0)
|
|
||||||
return $this->errorResponse(trans('errors.phone_already_associated'), Response::HTTP_CREATED);
|
|
||||||
|
|
||||||
$request->set_default = true;
|
|
||||||
return $this->addUserPlayerID($request);
|
|
||||||
}else{
|
|
||||||
if(sizeof($records)>1)
|
|
||||||
return $this->errorResponse(trans('errors.phone_already_associated'), Response::HTTP_CREATED);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return $this->successResponse('Player ID saved');
|
||||||
return $this->successResponse(trans('messages.player_id_saved'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addAgentPlayerID(Request $request){
|
public function addAgentPlayerID(Request $request){
|
||||||
$this->validate($request , [
|
$this->validate($request , [
|
||||||
'code_membre'=> 'required',
|
'code_membre'=> 'required',
|
||||||
'player_id'=> 'required',
|
'player_id'=> 'required'
|
||||||
'set_default' => 'required|boolean'
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$codes = [];
|
$saveUser = OnesignalAgent::where('code_membre',$request->code_membre)->where('player_id',$request->player_id)->first();
|
||||||
// Recuperer tous les codes agents de l'agent
|
if(!$saveUser){
|
||||||
$client = new \GuzzleHttp\Client([
|
$user = new OnesignalAgent();
|
||||||
'base_uri' => env('WALLET_SERVICE_BASE_URL'),
|
$user->fill($request->all());
|
||||||
]);
|
$user->save();
|
||||||
$headers = [
|
|
||||||
'Authorization' => env('WALLET_SERVICE_KEY'),
|
|
||||||
];
|
|
||||||
try {
|
|
||||||
$result = $client->request('GET', '/agent_codes/'.$request->code_membre, ['headers' => $headers]);
|
|
||||||
$response = json_decode($result->getBody()->getContents());
|
|
||||||
if($response)
|
|
||||||
$codes = $response->response;
|
|
||||||
} catch (GuzzleException $e) {
|
|
||||||
Log::error($e->getMessage());
|
|
||||||
}
|
}
|
||||||
|
return $this->successResponse('Player ID saved');
|
||||||
if($request->set_default){
|
|
||||||
foreach ($codes as $code){
|
|
||||||
|
|
||||||
$records = OnesignalAgent::where('code_membre',$code->code_membre)->get();
|
|
||||||
foreach ($records as $r){
|
|
||||||
$r->delete();
|
|
||||||
}
|
|
||||||
$user = new OnesignalAgent();
|
|
||||||
$user->code_membre = $code->code_membre;
|
|
||||||
$user->player_id = $request->player_id;
|
|
||||||
$user->save();
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
|
|
||||||
$records = OnesignalAgent::where('code_membre',$request->code_membre)->get();
|
|
||||||
|
|
||||||
$saveUser = OnesignalAgent::where('code_membre',$request->code_membre)->where('player_id',$request->player_id)->first();
|
|
||||||
|
|
||||||
if(!$saveUser){
|
|
||||||
if(sizeof($records)>0)
|
|
||||||
return $this->errorResponse(trans('errors.phone_already_associated'), Response::HTTP_CREATED);
|
|
||||||
|
|
||||||
$request->set_default = true;
|
|
||||||
return $this->addAgentPlayerID($request);
|
|
||||||
}else{
|
|
||||||
if(sizeof($records)>1)
|
|
||||||
return $this->errorResponse(trans('errors.phone_already_associated'), Response::HTTP_CREATED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->successResponse(trans('messages.player_id_saved'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function pushMessageToOneUser(Request $request){
|
public function pushMessageToOneUser(Request $request){
|
||||||
$this->validate($request , [
|
$this->validate($request , [
|
||||||
'user_code'=> 'required',
|
'user_code'=> 'required',
|
||||||
'message'=> 'required',
|
'message'=> 'required',
|
||||||
'data'=>'required',
|
'data'=>'required'
|
||||||
'date' => 'required|date|date_format:Y-m-d H:i:s',
|
|
||||||
'not_saved'=>'nullable|boolean',
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$not_saved = $request->input('not_saved');
|
|
||||||
$userIds = OnesignalUser::where('user_code',$request->user_code)->get();
|
$userIds = OnesignalUser::where('user_code',$request->user_code)->get();
|
||||||
if(!$not_saved){
|
$notif = new Notification();
|
||||||
$notif = new Notification();
|
$notif->user_code = $request->user_code;
|
||||||
$notif->user_code = $request->user_code;
|
$notif->message = $request->message;
|
||||||
$notif->message = $request->message;
|
$notif->data = json_encode($request->data);
|
||||||
$notif->data = json_encode($request->data);
|
$notif->read = false;
|
||||||
$notif->date = $request->date;
|
$notif->save();
|
||||||
$notif->read = false;
|
|
||||||
$notif->save();
|
|
||||||
}
|
|
||||||
if($userIds){
|
if($userIds){
|
||||||
foreach ($userIds as $userId){
|
foreach ($userIds as $userId){
|
||||||
OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data);
|
OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data);
|
||||||
|
@ -143,29 +76,4 @@ class OneSignalController extends Controller
|
||||||
|
|
||||||
return $this->successResponse('Notification delivered');
|
return $this->successResponse('Notification delivered');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function pushMessageToOneAgent(Request $request){
|
|
||||||
$this->validate($request , [
|
|
||||||
'agent_code'=> 'required',
|
|
||||||
'message'=> 'required',
|
|
||||||
'data'=>'required',
|
|
||||||
'date' => 'required|date|date_format:Y-m-d H:i:s'
|
|
||||||
]);
|
|
||||||
|
|
||||||
$userIds = OnesignalAgent::where('code_membre',$request->agent_code)->get();
|
|
||||||
$notif = new Notification();
|
|
||||||
$notif->agent_code = $request->agent_code;
|
|
||||||
$notif->message = $request->message;
|
|
||||||
$notif->data = json_encode($request->data);
|
|
||||||
$notif->date = $request->date;
|
|
||||||
$notif->read = false;
|
|
||||||
$notif->save();
|
|
||||||
if($userIds){
|
|
||||||
foreach ($userIds as $userId){
|
|
||||||
OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->successResponse('Notification delivered');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Middleware;
|
|
||||||
|
|
||||||
use Closure;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class Localization
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next)
|
|
||||||
{
|
|
||||||
$enLangs=["en","en-US","en_US","ca","in","gb","GB","us","en-029","en-AU","en-BZ","en-CA","en-GB","en-IE","en-IN","en-JM","en-MY","en-NZ","en-PH","en-SG","en-TT","en-US","en-ZA","en-ZW","au","bz","ie","in","jm","my","nz","ph","sg","tt","za"];
|
|
||||||
|
|
||||||
// Check header request and determine localizaton
|
|
||||||
if ($request->hasHeader('X-localization')){
|
|
||||||
$local = $request->header('X-localization');
|
|
||||||
$pos=strpos($local,"-");
|
|
||||||
if($pos!=false){
|
|
||||||
$local=strtolower(explode("-",$local)[0]);
|
|
||||||
}
|
|
||||||
$local= in_array($local, $enLangs) ? 'en' : 'fr';
|
|
||||||
}else{
|
|
||||||
$local ='fr';
|
|
||||||
}
|
|
||||||
// set laravel localization
|
|
||||||
app()->setLocale($local);
|
|
||||||
// continue request
|
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +17,6 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
* @property string $message
|
* @property string $message
|
||||||
* @property string $data
|
* @property string $data
|
||||||
* @property int $read
|
* @property int $read
|
||||||
* @property Carbon $date
|
|
||||||
*
|
*
|
||||||
* @package App\Models
|
* @package App\Models
|
||||||
*/
|
*/
|
||||||
|
@ -28,12 +26,7 @@ class Notification extends Model
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'read' => 'int',
|
'read' => 'int'
|
||||||
'date' => 'datetime:Y-m-d H:i:s'
|
|
||||||
];
|
|
||||||
|
|
||||||
protected $dates = [
|
|
||||||
'date'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
|
@ -41,7 +34,6 @@ class Notification extends Model
|
||||||
'agent_code',
|
'agent_code',
|
||||||
'message',
|
'message',
|
||||||
'data',
|
'data',
|
||||||
'read',
|
'read'
|
||||||
'date'
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,8 +86,7 @@ $app->alias('mailer', Illuminate\Contracts\Mail\MailQueue::class);
|
||||||
|
|
||||||
$app->middleware([
|
$app->middleware([
|
||||||
// App\Http\Middleware\ExampleMiddleware::class
|
// App\Http\Middleware\ExampleMiddleware::class
|
||||||
App\Http\Middleware\Localization::class,
|
App\Http\Middleware\AuthenticateAccess::class
|
||||||
App\Http\Middleware\AuthenticateAccess::class
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// $app->routeMiddleware([
|
// $app->routeMiddleware([
|
||||||
|
|
|
@ -8,8 +8,7 @@
|
||||||
"php": "^7.2.5",
|
"php": "^7.2.5",
|
||||||
"berkayk/onesignal-laravel": "^1.0",
|
"berkayk/onesignal-laravel": "^1.0",
|
||||||
"illuminate/mail": "^7.22",
|
"illuminate/mail": "^7.22",
|
||||||
"laravel/lumen-framework": "^7.0",
|
"laravel/lumen-framework": "^7.0"
|
||||||
"ext-json": "*"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fzaninotto/faker": "^1.9.1",
|
"fzaninotto/faker": "^1.9.1",
|
||||||
|
|
|
@ -3,5 +3,4 @@ return [
|
||||||
'model_not_found' => 'Does not exist any instance of :model with given id',
|
'model_not_found' => 'Does not exist any instance of :model with given id',
|
||||||
'unexpected_error'=> 'Unexpected error. Try later',
|
'unexpected_error'=> 'Unexpected error. Try later',
|
||||||
'service_unavailable' => 'Service unavailable',
|
'service_unavailable' => 'Service unavailable',
|
||||||
"phone_already_associated" => "You already have a phone associated . Do you want to change it ?",
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
"player_id_saved" => "Player ID saved",
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,151 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Validation Language Lines
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| The following language lines contain the default error messages used by
|
|
||||||
| the validator class. Some of these rules have multiple versions such
|
|
||||||
| as the size rules. Feel free to tweak each of these messages here.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
'accepted' => 'The :attribute must be accepted.',
|
|
||||||
'active_url' => 'The :attribute is not a valid URL.',
|
|
||||||
'after' => 'The :attribute must be a date after :date.',
|
|
||||||
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
|
|
||||||
'alpha' => 'The :attribute may only contain letters.',
|
|
||||||
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
|
|
||||||
'alpha_num' => 'The :attribute may only contain letters and numbers.',
|
|
||||||
'array' => 'The :attribute must be an array.',
|
|
||||||
'before' => 'The :attribute must be a date before :date.',
|
|
||||||
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
|
|
||||||
'between' => [
|
|
||||||
'numeric' => 'The :attribute must be between :min and :max.',
|
|
||||||
'file' => 'The :attribute must be between :min and :max kilobytes.',
|
|
||||||
'string' => 'The :attribute must be between :min and :max characters.',
|
|
||||||
'array' => 'The :attribute must have between :min and :max items.',
|
|
||||||
],
|
|
||||||
'boolean' => 'The :attribute field must be true or false.',
|
|
||||||
'confirmed' => 'The :attribute confirmation does not match.',
|
|
||||||
'date' => 'The :attribute is not a valid date.',
|
|
||||||
'date_equals' => 'The :attribute must be a date equal to :date.',
|
|
||||||
'date_format' => 'The :attribute does not match the format :format.',
|
|
||||||
'different' => 'The :attribute and :other must be different.',
|
|
||||||
'digits' => 'The :attribute must be :digits digits.',
|
|
||||||
'digits_between' => 'The :attribute must be between :min and :max digits.',
|
|
||||||
'dimensions' => 'The :attribute has invalid image dimensions.',
|
|
||||||
'distinct' => 'The :attribute field has a duplicate value.',
|
|
||||||
'email' => 'The :attribute must be a valid email address.',
|
|
||||||
'ends_with' => 'The :attribute must end with one of the following: :values',
|
|
||||||
'exists' => 'The selected :attribute is invalid.',
|
|
||||||
'file' => 'The :attribute must be a file.',
|
|
||||||
'filled' => 'The :attribute field must have a value.',
|
|
||||||
'gt' => [
|
|
||||||
'numeric' => 'The :attribute must be greater than :value.',
|
|
||||||
'file' => 'The :attribute must be greater than :value kilobytes.',
|
|
||||||
'string' => 'The :attribute must be greater than :value characters.',
|
|
||||||
'array' => 'The :attribute must have more than :value items.',
|
|
||||||
],
|
|
||||||
'gte' => [
|
|
||||||
'numeric' => 'The :attribute must be greater than or equal :value.',
|
|
||||||
'file' => 'The :attribute must be greater than or equal :value kilobytes.',
|
|
||||||
'string' => 'The :attribute must be greater than or equal :value characters.',
|
|
||||||
'array' => 'The :attribute must have :value items or more.',
|
|
||||||
],
|
|
||||||
'image' => 'The :attribute must be an image.',
|
|
||||||
'in' => 'The selected :attribute is invalid.',
|
|
||||||
'in_array' => 'The :attribute field does not exist in :other.',
|
|
||||||
'integer' => 'The :attribute must be an integer.',
|
|
||||||
'ip' => 'The :attribute must be a valid IP address.',
|
|
||||||
'ipv4' => 'The :attribute must be a valid IPv4 address.',
|
|
||||||
'ipv6' => 'The :attribute must be a valid IPv6 address.',
|
|
||||||
'json' => 'The :attribute must be a valid JSON string.',
|
|
||||||
'lt' => [
|
|
||||||
'numeric' => 'The :attribute must be less than :value.',
|
|
||||||
'file' => 'The :attribute must be less than :value kilobytes.',
|
|
||||||
'string' => 'The :attribute must be less than :value characters.',
|
|
||||||
'array' => 'The :attribute must have less than :value items.',
|
|
||||||
],
|
|
||||||
'lte' => [
|
|
||||||
'numeric' => 'The :attribute must be less than or equal :value.',
|
|
||||||
'file' => 'The :attribute must be less than or equal :value kilobytes.',
|
|
||||||
'string' => 'The :attribute must be less than or equal :value characters.',
|
|
||||||
'array' => 'The :attribute must not have more than :value items.',
|
|
||||||
],
|
|
||||||
'max' => [
|
|
||||||
'numeric' => 'The :attribute may not be greater than :max.',
|
|
||||||
'file' => 'The :attribute may not be greater than :max kilobytes.',
|
|
||||||
'string' => 'The :attribute may not be greater than :max characters.',
|
|
||||||
'array' => 'The :attribute may not have more than :max items.',
|
|
||||||
],
|
|
||||||
'mimes' => 'The :attribute must be a file of type: :values.',
|
|
||||||
'mimetypes' => 'The :attribute must be a file of type: :values.',
|
|
||||||
'min' => [
|
|
||||||
'numeric' => 'The :attribute must be at least :min.',
|
|
||||||
'file' => 'The :attribute must be at least :min kilobytes.',
|
|
||||||
'string' => 'The :attribute must be at least :min characters.',
|
|
||||||
'array' => 'The :attribute must have at least :min items.',
|
|
||||||
],
|
|
||||||
'not_in' => 'The selected :attribute is invalid.',
|
|
||||||
'not_regex' => 'The :attribute format is invalid.',
|
|
||||||
'numeric' => 'The :attribute must be a number.',
|
|
||||||
'password' => 'The password is incorrect.',
|
|
||||||
'present' => 'The :attribute field must be present.',
|
|
||||||
'regex' => 'The :attribute format is invalid.',
|
|
||||||
'required' => 'The :attribute field is required.',
|
|
||||||
'required_if' => 'The :attribute field is required when :other is :value.',
|
|
||||||
'required_unless' => 'The :attribute field is required unless :other is in :values.',
|
|
||||||
'required_with' => 'The :attribute field is required when :values is present.',
|
|
||||||
'required_with_all' => 'The :attribute field is required when :values are present.',
|
|
||||||
'required_without' => 'The :attribute field is required when :values is not present.',
|
|
||||||
'required_without_all' => 'The :attribute field is required when none of :values are present.',
|
|
||||||
'same' => 'The :attribute and :other must match.',
|
|
||||||
'size' => [
|
|
||||||
'numeric' => 'The :attribute must be :size.',
|
|
||||||
'file' => 'The :attribute must be :size kilobytes.',
|
|
||||||
'string' => 'The :attribute must be :size characters.',
|
|
||||||
'array' => 'The :attribute must contain :size items.',
|
|
||||||
],
|
|
||||||
'starts_with' => 'The :attribute must start with one of the following: :values',
|
|
||||||
'string' => 'The :attribute must be a string.',
|
|
||||||
'timezone' => 'The :attribute must be a valid zone.',
|
|
||||||
'unique' => 'The :attribute has already been taken.',
|
|
||||||
'uploaded' => 'The :attribute failed to upload.',
|
|
||||||
'url' => 'The :attribute format is invalid.',
|
|
||||||
'uuid' => 'The :attribute must be a valid UUID.',
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Custom Validation Language Lines
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here you may specify custom validation messages for attributes using the
|
|
||||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
|
||||||
| specify a specific custom language line for a given attribute rule.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
'custom' => [
|
|
||||||
'attribute-name' => [
|
|
||||||
'rule-name' => 'custom-message',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Custom Validation Attributes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| The following language lines are used to swap our attribute placeholder
|
|
||||||
| with something more reader friendly such as "E-Mail Address" instead
|
|
||||||
| of "email". This simply helps us make our message more expressive.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
'attributes' => [],
|
|
||||||
|
|
||||||
];
|
|
|
@ -3,5 +3,4 @@ return [
|
||||||
'model_not_found' => 'Il n\'existe aucune instance de :model avec l\'id donné',
|
'model_not_found' => 'Il n\'existe aucune instance de :model avec l\'id donné',
|
||||||
'unexpected_error'=> 'Erreur inattendue. Essayer plus tard',
|
'unexpected_error'=> 'Erreur inattendue. Essayer plus tard',
|
||||||
'service_unavailable' => 'Service non disponible',
|
'service_unavailable' => 'Service non disponible',
|
||||||
"phone_already_associated" => "Vous avez déjà un téléphone associé. Voulez-vous le changer ?"
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
"player_id_saved" => "Player ID enregistré",
|
|
||||||
""
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,168 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Validation Language Lines
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| The following language lines contain the default error messages used by
|
|
||||||
| the validator class. Some of these rules have multiple versions such
|
|
||||||
| as the size rules. Feel free to tweak each of these messages here.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
return [
|
|
||||||
'accepted' => 'Le champ :attribute doit être accepté.',
|
|
||||||
'accepted_if' => 'Le champ :attribute doit être accepté quand :other a la valeur :value.',
|
|
||||||
'active_url' => 'Le champ :attribute n\'est pas une URL valide.',
|
|
||||||
'after' => 'Le champ :attribute doit être une date postérieure au :date.',
|
|
||||||
'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale au :date.',
|
|
||||||
'alpha' => 'Le champ :attribute doit contenir uniquement des lettres.',
|
|
||||||
'alpha_dash' => 'Le champ :attribute doit contenir uniquement des lettres, des chiffres et des tirets.',
|
|
||||||
'alpha_num' => 'Le champ :attribute doit contenir uniquement des chiffres et des lettres.',
|
|
||||||
'array' => 'Le champ :attribute doit être un tableau.',
|
|
||||||
'attached' => ':attribute est déjà attaché(e).',
|
|
||||||
'before' => 'Le champ :attribute doit être une date antérieure au :date.',
|
|
||||||
'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale au :date.',
|
|
||||||
'between' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir entre :min et :max éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être comprise entre :min et :max kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être comprise entre :min et :max.',
|
|
||||||
'string' => 'Le texte :attribute doit contenir entre :min et :max caractères.',
|
|
||||||
],
|
|
||||||
'boolean' => 'Le champ :attribute doit être vrai ou faux.',
|
|
||||||
'confirmed' => 'Le champ de confirmation :attribute ne correspond pas.',
|
|
||||||
'current_password' => 'Le mot de passe est incorrect.',
|
|
||||||
'date' => 'Le champ :attribute n\'est pas une date valide.',
|
|
||||||
'date_equals' => 'Le champ :attribute doit être une date égale à :date.',
|
|
||||||
'date_format' => 'Le champ :attribute ne correspond pas au format :format.',
|
|
||||||
'declined' => 'Le champ :attribute doit être décliné.',
|
|
||||||
'declined_if' => 'Le champ :attribute doit être décliné quand :other a la valeur :value.',
|
|
||||||
'different' => 'Les champs :attribute et :other doivent être différents.',
|
|
||||||
'digits' => 'Le champ :attribute doit contenir :digits chiffres.',
|
|
||||||
'digits_between' => 'Le champ :attribute doit contenir entre :min et :max chiffres.',
|
|
||||||
'dimensions' => 'La taille de l\'image :attribute n\'est pas conforme.',
|
|
||||||
'distinct' => 'Le champ :attribute a une valeur en double.',
|
|
||||||
'email' => 'Le champ :attribute doit être une adresse e-mail valide.',
|
|
||||||
'ends_with' => 'Le champ :attribute doit se terminer par une des valeurs suivantes : :values',
|
|
||||||
'exists' => 'Le champ :attribute sélectionné est invalide.',
|
|
||||||
'file' => 'Le champ :attribute doit être un fichier.',
|
|
||||||
'filled' => 'Le champ :attribute doit avoir une valeur.',
|
|
||||||
'gt' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir plus de :value éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être supérieure à :value kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être supérieure à :value.',
|
|
||||||
'string' => 'Le texte :attribute doit contenir plus de :value caractères.',
|
|
||||||
],
|
|
||||||
'gte' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir au moins :value éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être supérieure ou égale à :value kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :value.',
|
|
||||||
'string' => 'Le texte :attribute doit contenir au moins :value caractères.',
|
|
||||||
],
|
|
||||||
'image' => 'Le champ :attribute doit être une image.',
|
|
||||||
'in' => 'Le champ :attribute est invalide.',
|
|
||||||
'in_array' => 'Le champ :attribute n\'existe pas dans :other.',
|
|
||||||
'integer' => 'Le champ :attribute doit être un entier.',
|
|
||||||
'ip' => 'Le champ :attribute doit être une adresse IP valide.',
|
|
||||||
'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.',
|
|
||||||
'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.',
|
|
||||||
'json' => 'Le champ :attribute doit être un document JSON valide.',
|
|
||||||
'lt' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir moins de :value éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être inférieure à :value kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être inférieure à :value.',
|
|
||||||
'string' => 'Le texte :attribute doit contenir moins de :value caractères.',
|
|
||||||
],
|
|
||||||
'lte' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir au plus :value éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être inférieure ou égale à :value kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être inférieure ou égale à :value.',
|
|
||||||
'string' => 'Le texte :attribute doit contenir au plus :value caractères.',
|
|
||||||
],
|
|
||||||
'max' => [
|
|
||||||
'array' => 'Le tableau :attribute ne peut contenir plus de :max éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute ne peut pas dépasser :max kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute ne peut être supérieure à :max.',
|
|
||||||
'string' => 'Le texte de :attribute ne peut contenir plus de :max caractères.',
|
|
||||||
],
|
|
||||||
'mimes' => 'Le champ :attribute doit être un fichier de type : :values.',
|
|
||||||
'mimetypes' => 'Le champ :attribute doit être un fichier de type : :values.',
|
|
||||||
'min' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir au moins :min éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être supérieure à :min kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être supérieure ou égale à :min.',
|
|
||||||
'string' => 'Le texte :attribute doit contenir au moins :min caractères.',
|
|
||||||
],
|
|
||||||
'multiple_of' => 'La valeur de :attribute doit être un multiple de :value',
|
|
||||||
'not_in' => 'Le champ :attribute sélectionné n\'est pas valide.',
|
|
||||||
'not_regex' => 'Le format du champ :attribute n\'est pas valide.',
|
|
||||||
'numeric' => 'Le champ :attribute doit contenir un nombre.',
|
|
||||||
'password' => 'Le mot de passe est incorrect',
|
|
||||||
'present' => 'Le champ :attribute doit être présent.',
|
|
||||||
'prohibited' => 'Le champ :attribute est interdit.',
|
|
||||||
'prohibited_if' => 'Le champ :attribute est interdit quand :other a la valeur :value.',
|
|
||||||
'prohibited_unless' => 'Le champ :attribute est interdit à moins que :other est l\'une des valeurs :values.',
|
|
||||||
'prohibits' => 'Le champ :attribute interdit :other d\'être présent.',
|
|
||||||
'regex' => 'Le format du champ :attribute est invalide.',
|
|
||||||
'relatable' => ':attribute n\'est sans doute pas associé(e) avec cette donnée.',
|
|
||||||
'required' => 'Le champ :attribute est obligatoire.',
|
|
||||||
'required_if' => 'Le champ :attribute est obligatoire quand la valeur de :other est :value.',
|
|
||||||
'required_unless' => 'Le champ :attribute est obligatoire sauf si :other est :values.',
|
|
||||||
'required_with' => 'Le champ :attribute est obligatoire quand :values est présent.',
|
|
||||||
'required_with_all' => 'Le champ :attribute est obligatoire quand :values sont présents.',
|
|
||||||
'required_without' => 'Le champ :attribute est obligatoire quand :values n\'est pas présent.',
|
|
||||||
'required_without_all' => 'Le champ :attribute est requis quand aucun de :values n\'est présent.',
|
|
||||||
'same' => 'Les champs :attribute et :other doivent être identiques.',
|
|
||||||
'size' => [
|
|
||||||
'array' => 'Le tableau :attribute doit contenir :size éléments.',
|
|
||||||
'file' => 'La taille du fichier de :attribute doit être de :size kilo-octets.',
|
|
||||||
'numeric' => 'La valeur de :attribute doit être :size.',
|
|
||||||
'string' => 'Le texte de :attribute doit contenir :size caractères.',
|
|
||||||
],
|
|
||||||
'starts_with' => 'Le champ :attribute doit commencer avec une des valeurs suivantes : :values',
|
|
||||||
'string' => 'Le champ :attribute doit être une chaîne de caractères.',
|
|
||||||
'timezone' => 'Le champ :attribute doit être un fuseau horaire valide.',
|
|
||||||
'unique' => 'La valeur du champ :attribute est déjà utilisée.',
|
|
||||||
'uploaded' => 'Le fichier du champ :attribute n\'a pu être téléversé.',
|
|
||||||
'url' => 'Le format de l\'URL de :attribute n\'est pas valide.',
|
|
||||||
'uuid' => 'Le champ :attribute doit être un UUID valide',
|
|
||||||
'custom' => [
|
|
||||||
'attribute-name' => [
|
|
||||||
'rule-name' => 'custom-message',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
'attributes' => [
|
|
||||||
'address' => 'adresse',
|
|
||||||
'age' => 'âge',
|
|
||||||
'available' => 'disponible',
|
|
||||||
'city' => 'ville',
|
|
||||||
'content' => 'contenu',
|
|
||||||
'country' => 'pays',
|
|
||||||
'current_password' => 'mot de passe actuel',
|
|
||||||
'date' => 'date',
|
|
||||||
'day' => 'jour',
|
|
||||||
'description' => 'description',
|
|
||||||
'email' => 'adresse e-mail',
|
|
||||||
'excerpt' => 'extrait',
|
|
||||||
'first_name' => 'prénom',
|
|
||||||
'gender' => 'genre',
|
|
||||||
'hour' => 'heure',
|
|
||||||
'last_name' => 'nom',
|
|
||||||
'minute' => 'minute',
|
|
||||||
'mobile' => 'portable',
|
|
||||||
'month' => 'mois',
|
|
||||||
'name' => 'nom',
|
|
||||||
'password' => 'mot de passe',
|
|
||||||
'password_confirmation' => 'confirmation du mot de passe',
|
|
||||||
'phone' => 'téléphone',
|
|
||||||
'second' => 'seconde',
|
|
||||||
'sex' => 'sexe',
|
|
||||||
'size' => 'taille',
|
|
||||||
'time' => 'heure',
|
|
||||||
'title' => 'titre',
|
|
||||||
'username' => 'nom d\'utilisateur',
|
|
||||||
'year' => 'année',
|
|
||||||
],
|
|
||||||
];
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
/** @var \Laravel\Lumen\Routing\Router $router */
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Application Routes
|
| Application Routes
|
||||||
|
@ -16,17 +16,14 @@
|
||||||
// return $router->app->version();
|
// return $router->app->version();
|
||||||
//});
|
//});
|
||||||
|
|
||||||
$router->post('send-mail', 'MailController@send');
|
|
||||||
|
|
||||||
// OneSingal Notification
|
// OneSingal Notification
|
||||||
|
|
||||||
$router->group(['prefix'=>'/onesignal'], function () use ($router) {
|
$router->group(['prefix'=>'/onesignal'], function () use ($router) {
|
||||||
$router->post('pushToUser', 'OneSignalController@pushMessageToOneUser');
|
$router->post('pushToUser', 'OneSignalController@pushMessageToOneUser');
|
||||||
$router->post('pushToAgent', 'OneSignalController@pushMessageToOneAgent');
|
|
||||||
$router->post('saveUser', 'OneSignalController@addUserPlayerID');
|
$router->post('saveUser', 'OneSignalController@addUserPlayerID');
|
||||||
$router->post('saveAgent', 'OneSignalController@addAgentPlayerID');
|
$router->post('saveAgent', 'OneSignalController@addAgentPlayerID');
|
||||||
});
|
});
|
||||||
|
|
||||||
$router->group(['prefix'=>'/notifications'], function () use ($router) {
|
$router->group(['prefix'=>'/notifications'], function () use ($router) {
|
||||||
$router->post('', 'NotificationController@getNotifcations');
|
$router->post('', 'NotificationController@getNotifcations');
|
||||||
$router->put('update/{id_notif}', 'NotificationController@readNotification');
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue