Update
This commit is contained in:
parent
9532845bc3
commit
4fd18b988e
|
|
@ -0,0 +1,82 @@
|
||||||
|
<?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']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Admin\app\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class ProjectReview extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $fillable = ['name', 'role', 'note', 'user_id'];
|
||||||
|
|
||||||
|
// Relationship: A review belongs to a user
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(User::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,6 +17,7 @@ use Modules\Admin\app\Http\Controllers\TimekeepingController;
|
||||||
use Modules\Admin\app\Http\Controllers\TrackingController;
|
use Modules\Admin\app\Http\Controllers\TrackingController;
|
||||||
use Modules\Admin\app\Http\Controllers\CriteriasController;
|
use Modules\Admin\app\Http\Controllers\CriteriasController;
|
||||||
use Modules\Admin\app\Http\Controllers\EvaluationController;
|
use Modules\Admin\app\Http\Controllers\EvaluationController;
|
||||||
|
use Modules\Admin\app\Http\Controllers\ProjectReviewController;
|
||||||
use Modules\Admin\app\Http\Controllers\ProfileController;
|
use Modules\Admin\app\Http\Controllers\ProfileController;
|
||||||
use Modules\Admin\app\Http\Controllers\TechnicalController;
|
use Modules\Admin\app\Http\Controllers\TechnicalController;
|
||||||
use Modules\Admin\app\Http\Controllers\TestCaseForSprintController;
|
use Modules\Admin\app\Http\Controllers\TestCaseForSprintController;
|
||||||
|
|
@ -192,6 +193,10 @@ Route::middleware('api')
|
||||||
Route::get('/sprint-review', [EvaluationController::class, 'sprintReview'])->middleware('check.permission:admin');
|
Route::get('/sprint-review', [EvaluationController::class, 'sprintReview'])->middleware('check.permission:admin');
|
||||||
Route::get('/technical', [EvaluationController::class, 'technical'])->middleware('check.permission:admin');
|
Route::get('/technical', [EvaluationController::class, 'technical'])->middleware('check.permission:admin');
|
||||||
Route::get('/report', [EvaluationController::class, 'report'])->middleware('check.permission:admin');
|
Route::get('/report', [EvaluationController::class, 'report'])->middleware('check.permission:admin');
|
||||||
|
Route::get('/project-review', [ProjectReviewController::class, 'getListReviews'])->middleware('check.permission:admin');
|
||||||
|
Route::get('/project-review/create', [ProjectReviewController::class, 'create'])->middleware('check.permission:admin');
|
||||||
|
Route::get('/project-review/update', [ProjectReviewController::class, 'update'])->middleware('check.permission:admin');
|
||||||
|
Route::get('/project-review/delete', [ProjectReviewController::class, 'destroy'])->middleware('check.permission:admin');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::group([
|
Route::group([
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('project_reviews', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('role');
|
||||||
|
$table->longText('note');
|
||||||
|
$table->foreignId('user_id')->constrained('users')->onDelete('cascade'); // Khóa ngoại tới bảng users
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('project_reviews');
|
||||||
|
}
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue