Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
27.27% covered (danger)
27.27%
6 / 22
50.00% covered (danger)
50.00%
2 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
CompanyPocsController
27.27% covered (danger)
27.27%
6 / 22
50.00% covered (danger)
50.00%
2 / 4
10.15
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 companyPocs
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 addCompanyPoc
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
2
 removeCompanyPoc
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Http\Controllers\v2\Company;
4
5use App\Http\Controllers\Controller;
6use App\Http\Models\Admin\CompanyPOC;
7use App\Http\Requests\Admin\Companies\Pocs\RemoveCompanyPocRequest;
8use App\Http\Services\Admin\Companies\Pocs\AdminCompaniesPocsService;
9use Illuminate\Http\JsonResponse;
10use Illuminate\Http\Request;
11use Symfony\Component\HttpFoundation\Response;
12
13class CompanyPocsController extends Controller
14{
15    public function __construct(
16        private AdminCompaniesPocsService $adminCompaniesPocsService
17    ) {}
18
19    public function companyPocs(Request $request): JsonResponse
20    {
21        $data = $this->adminCompaniesPocsService->getPocs($request->slug);
22
23        return response()->json([
24            'success' => true,
25            'data' => $data,
26        ]);
27    }
28
29    public function addCompanyPoc(Request $request): JsonResponse
30    {
31        $poc = $request->validate([
32            'email' => 'required|email',
33            'first_name' => 'required|string',
34            'last_name' => 'required|string',
35        ]);
36
37        $companyPoc = $this->adminCompaniesPocsService->addPoc($request->slug, $poc);
38
39        return response()->json([
40            'success' => true,
41            'data' => $companyPoc,
42            'message' => 'Company POC added successfully',
43        ], Response::HTTP_CREATED);
44    }
45
46    public function removeCompanyPoc(RemoveCompanyPocRequest $request, $slug, CompanyPOC $company_poc): JsonResponse
47    {
48        $this->adminCompaniesPocsService->removePoc($slug, $company_poc->user_id);
49
50        return response()->json([
51            'success' => true,
52            'message' => 'Company POC removed successfully',
53        ]);
54    }
55}