75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace Modules\Admin\app\Http\Controllers;
 | 
						|
 | 
						|
use App\Http\Controllers\Controller;
 | 
						|
use App\Traits\AnalyzeData;
 | 
						|
use App\Traits\HasFilterRequest;
 | 
						|
use App\Traits\HasOrderByRequest;
 | 
						|
use App\Traits\HasSearchRequest;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Modules\Admin\app\Models\TestCaseForSprint;
 | 
						|
 | 
						|
class TestCaseForSprintController extends Controller
 | 
						|
{
 | 
						|
    use HasOrderByRequest;
 | 
						|
    use HasFilterRequest;
 | 
						|
    use HasSearchRequest;
 | 
						|
    use AnalyzeData;
 | 
						|
 | 
						|
    public function getAllReportsForSprint($sprintId)
 | 
						|
    {
 | 
						|
        $testReports = TestCaseForSprint::where('sprint_id', $sprintId)->get();
 | 
						|
 | 
						|
        if ($testReports->isEmpty()) {
 | 
						|
            return AbstractController::ResultError('No test reports found for this sprint', [], 404);
 | 
						|
        }
 | 
						|
 | 
						|
        return AbstractController::ResultSuccess($testReports);
 | 
						|
    }
 | 
						|
 | 
						|
    public function createTestReport(Request $request, $sprintId)
 | 
						|
    {
 | 
						|
        $user = auth('admins')->user();
 | 
						|
 | 
						|
        $request->validate([
 | 
						|
            'name' => 'required|string|max:255',
 | 
						|
            'position' => 'required|integer',
 | 
						|
            'input' => 'required|string',
 | 
						|
            'expect_output' => 'required|string',
 | 
						|
            'actual_output' => 'required|string',
 | 
						|
            'note' => 'nullable|string',
 | 
						|
            'issue_id_on_jira' => 'nullable|string',
 | 
						|
            'bug_id_on_jira' => 'nullable|string',
 | 
						|
        ]);
 | 
						|
 | 
						|
        $testReport = TestCaseForSprint::create([
 | 
						|
            'name' => $request->name,
 | 
						|
            'position' => $request->position,
 | 
						|
            'input' => $request->input,
 | 
						|
            'expect_output' => $request->expect_output,
 | 
						|
            'actual_output' => $request->actual_output,
 | 
						|
            'note' => $request->note,
 | 
						|
            'issue_id_on_jira' => $request->issue_id_on_jira,
 | 
						|
            'bug_id_on_jira' => $request->bug_id_on_jira,
 | 
						|
            'sprint_id' => $sprintId,
 | 
						|
            'created_by' => $user->name,
 | 
						|
        ]);
 | 
						|
        return AbstractController::ResultSuccess($testReport);
 | 
						|
    }
 | 
						|
 | 
						|
    public function deleteTestReport(Request $request)
 | 
						|
    {
 | 
						|
        $id = $request->input('id');
 | 
						|
 | 
						|
        $testReport = TestCaseForSprint::find($id);
 | 
						|
 | 
						|
        if (!$testReport) {
 | 
						|
            return AbstractController::ResultError("Test report not found", [], 404);
 | 
						|
        }
 | 
						|
 | 
						|
        $testReport->delete();
 | 
						|
        return AbstractController::ResultSuccess("Test report deleted successfully");
 | 
						|
    }
 | 
						|
}
 |