vendor and env first commit

This commit is contained in:
2025-03-28 08:52:46 +01:00
parent f8388bc81b
commit 8f26283832
10976 changed files with 1349952 additions and 2 deletions
@@ -0,0 +1,37 @@
<?php
namespace Vanguard\UserActivity\Http\Controllers\Api;
use Spatie\QueryBuilder\AllowedFilter;
use Spatie\QueryBuilder\QueryBuilder;
use Vanguard\Http\Controllers\Api\ApiController;
use Vanguard\UserActivity\Activity;
use Vanguard\UserActivity\Http\Requests\GetActivitiesRequest;
use Vanguard\UserActivity\Http\Resources\ActivityResource;
class ActivityController extends ApiController
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('permission:users.activity');
}
/**
* Paginate user activities.
*/
public function index(GetActivitiesRequest $request): \Illuminate\Http\Resources\Json\AnonymousResourceCollection
{
$activities = QueryBuilder::for(Activity::class)
->allowedIncludes('user')
->allowedFilters([
AllowedFilter::partial('description'),
AllowedFilter::exact('user', 'user_id'),
])
->allowedSorts('created_at')
->defaultSort('-created_at')
->paginate($request->per_page ?: 20);
return ActivityResource::collection($activities);
}
}
@@ -0,0 +1,28 @@
<?php
namespace Vanguard\UserActivity\Http\Controllers\Api;
use Auth;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Vanguard\Http\Controllers\Api\ApiController;
use Vanguard\UserActivity\Repositories\Activity\ActivityRepository;
class StatsController extends ApiController
{
public function __construct(private readonly ActivityRepository $activities)
{
$this->middleware('auth');
}
public function show(): JsonResponse
{
$data = $this->activities->userActivityForPeriod(
Auth::user()->id,
Carbon::now()->subWeeks(2),
Carbon::now()
);
return response()->json($data);
}
}
@@ -0,0 +1,28 @@
<?php
namespace Vanguard\UserActivity\Http\Controllers\Web;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Vanguard\Http\Controllers\Controller;
use Vanguard\UserActivity\Repositories\Activity\ActivityRepository;
class ActivityController extends Controller
{
public function __construct(private readonly ActivityRepository $activities)
{
}
/**
* Displays the page with activities for all system users.
*/
public function index(Request $request): View
{
$activities = $this->activities->paginateActivities(perPage: 20, search: $request->search);
return view('user-activity::index', [
'adminView' => true,
'activities' => $activities,
]);
}
}
@@ -0,0 +1,48 @@
<?php
namespace Vanguard\UserActivity\Http\Controllers\Web;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Vanguard\Http\Controllers\Controller;
use Vanguard\User;
use Vanguard\UserActivity\Repositories\Activity\ActivityRepository;
class UserActivityController extends Controller
{
public function __construct(private readonly ActivityRepository $activities)
{
}
/**
* Displays the activity log page for specific user.
*/
public function index(User $user, Request $request): View
{
$activities = $this->activities->paginateActivitiesForUser(
userId: $user->id,
search: $request->search,
);
return view('user-activity::index', [
'user' => $user,
'adminView' => true,
'activities' => $activities,
]);
}
/**
* Display user activity log.
*/
public function show(Request $request): View
{
$user = auth()->user();
$activities = $this->activities->paginateActivitiesForUser(
userId: $user->id,
search: $request->get('search'),
);
return view('user-activity::index', compact('activities', 'user'));
}
}