Skip to content

Commit

Permalink
Add logging
Browse files Browse the repository at this point in the history
  • Loading branch information
colshrapnel committed Aug 9, 2020
1 parent b5800c0 commit 3e53945
Show file tree
Hide file tree
Showing 7 changed files with 123 additions and 10 deletions.
17 changes: 17 additions & 0 deletions app/ClientApiLog.php
@@ -0,0 +1,17 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class ClientApiLog extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'user_id', 'route', 'request',
];
}
1 change: 1 addition & 0 deletions app/Http/Kernel.php
Expand Up @@ -63,5 +63,6 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'logger' => \App\Http\Middleware\LogApiRequestsMiddleware::class,
];
}
27 changes: 27 additions & 0 deletions app/Http/Middleware/LogApiRequestsMiddleware.php
@@ -0,0 +1,27 @@
<?php

namespace App\Http\Middleware;

use App\ClientApiLog;
use Closure;
use \Illuminate\Http\Request;

class LogApiRequestsMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$log = new ClientApiLog();
$log->user_id=$request->user()->id;
$log->route =$request->route()->getName();
$log->request = json_encode($request->all());
$log->save();
return $next($request);
}
}
34 changes: 34 additions & 0 deletions database/migrations/2020_08_09_151937_client_api_log.php
@@ -0,0 +1,34 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class ClientApiLog extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('client_api_logs', function (Blueprint $table) {
$table->id();
$table->bigInteger('user_id');
$table->string('route');
$table->text('request');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('client_api_log');
}
}
2 changes: 1 addition & 1 deletion database/seeds/DatabaseSeeder.php
Expand Up @@ -11,6 +11,6 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
// $this->call(UserSeeder::class);
$this->call(UsersTableSeeder::class);
}
}
34 changes: 34 additions & 0 deletions database/seeds/UsersTableSeeder.php
@@ -0,0 +1,34 @@
<?php

use Illuminate\Database\Seeder;
use App\User;

class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$users = [
[
'name' => 'user1',
'email' => 'email1@example.com',
'email_verified_at' => '2020-08-09 00:00:00',
'password' => '$2y$10$3Umthps6ZyrxWRAwjzPyUOta54kXfwkwmy34.8uQw8O9OFOn8tCnS',
'api_token' => 'ynlGN3MAfLdjeHGEjp9aIeSiBPZJKAaBnosAix1ZvZfm27hQN2YtfRxTFjkE',
],
[
'name' => 'user2',
'email' => 'email2@example.com',
'email_verified_at' => '2020-08-09 00:00:00',
'password' => '$2y$10$xtLANf4bPTnwyahssBalL.MMDxG01DI1pUNhtZdt4n0NxwYPN2ETO',
'api_token' => 'HCOqfYRpcpou389xVoAa0niVbcE51hWZs8HWSzgzYrFgeKHsXqQI0hTNY3fb',
],
];

User::insert($users);
}
}
18 changes: 9 additions & 9 deletions routes/api.php
Expand Up @@ -17,16 +17,16 @@
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::group(['middleware' => 'auth:api'], function()
Route::group(['middleware' => ['auth:api', 'logger']], function()
{
Route::post('client',ClientController::class.'@store');
Route::get('client/{id}',ClientController::class.'@show');
Route::delete('client/{id}',ClientController::class.'@destroy');
Route::put('client/{id}',ClientController::class.'@update');
Route::get('client/search/name',ClientController::class.'@searchByName');
Route::get('client/search/phone',ClientController::class.'@searchByPhone');
Route::get('client/search/email',ClientController::class.'@searchByEmail');
Route::get('client/search/all',ClientController::class.'@searchByAll');
Route::post('client',ClientController::class.'@store')->name('store');
Route::get('client/{id}',ClientController::class.'@show')->name('show');
Route::delete('client/{id}',ClientController::class.'@destroy')->name("destroy");
Route::put('client/{id}',ClientController::class.'@update')->name("update");
Route::get('client/search/name',ClientController::class.'@searchByName')->name("searchByName");
Route::get('client/search/phone',ClientController::class.'@searchByPhone')->name("searchByPhone");
Route::get('client/search/email',ClientController::class.'@searchByEmail')->name("searchByEmail");
Route::get('client/search/all',ClientController::class.'@searchByAll')->name("searchByAll");
#Route::get('client/search/{type}',ClientController::class.'@search')
# ->where('type', 'name|phone|email|all');
});

0 comments on commit 3e53945

Please sign in to comment.