83 lines
2.5 KiB
PHP
83 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace Modules\Admin\app\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Modules\Admin\app\Http\Controllers\AbstractController;
|
|
use Modules\Admin\app\Models\ProjectReview;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ProjectReviewController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function getListReviews(Request $request)
|
|
{
|
|
$request->validate([
|
|
'userID' => 'required|exists:users,id',
|
|
'fromDate' => 'nullable|date',
|
|
'toDate' => 'nullable|date',
|
|
]);
|
|
|
|
$startDate = $request->input('fromDate');
|
|
$endDate = $request->input('toDate');
|
|
|
|
$projectsData = ProjectReview::where('user_id', $request->input('userID'))
|
|
->whereHas('user', function ($query) use ($startDate, $endDate) {
|
|
if ($startDate && $endDate) {
|
|
$query->whereBetween('updated_at', [$startDate, $endDate]);
|
|
} elseif ($startDate) {
|
|
$query->where('updated_at', '>=', $startDate);
|
|
} elseif ($endDate) {
|
|
$query->where('updated_at', '<=', $endDate);
|
|
}
|
|
})
|
|
->get();
|
|
|
|
return AbstractController::ResultSuccess($projectsData);
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
public function create(Request $request)
|
|
{
|
|
$request->validate([
|
|
'name' => 'required|string',
|
|
'role' => 'required|string',
|
|
'note' => 'required|string',
|
|
'user_id' => 'required|exists:users,id',
|
|
]);
|
|
|
|
$review = ProjectReview::create($request->all());
|
|
return response()->json($review, 201);
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*/
|
|
public function update(Request $request, ProjectReview $projectReview)
|
|
{
|
|
$request->validate([
|
|
'name' => 'sometimes|required|string',
|
|
'role' => 'sometimes|required|string',
|
|
'note' => 'sometimes|required|string',
|
|
'user_id' => 'sometimes|required|exists:users,id',
|
|
]);
|
|
|
|
$projectReview->update($request->all());
|
|
return response()->json($projectReview);
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*/
|
|
public function destroy(ProjectReview $projectReview)
|
|
{
|
|
$projectReview->delete();
|
|
return response()->json(['message' => 'Deleted successfully']);
|
|
}
|
|
}
|