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 Illuminate\Http\Request;
6use Illuminate\Http\JsonResponse;
7use App\Http\Controllers\Controller;
8use App\Http\Models\Admin\Company;
9use App\Http\Models\Admin\CompanyPOC;
10use App\Http\Requests\Admin\Companies\Pocs\RemoveCompanyPocRequest;
11use App\Http\Services\Admin\Companies\Pocs\AdminCompaniesPocsService;
12use Symfony\Component\HttpFoundation\Response;
13
14class CompanyPocsController extends Controller
15{
16    public function __construct(
17        private AdminCompaniesPocsService $adminCompaniesPocsService
18    ) {}
19
20    public function companyPocs(Request $request): JsonResponse
21    {
22        $data = $this->adminCompaniesPocsService->getPocs($request->slug);
23
24        return response()->json([
25            'success' => true,
26            'data' => $data
27        ]);
28    }
29
30    public function addCompanyPoc(Request $request): JsonResponse
31    {
32        $poc = $request->validate([
33            'email' => 'required|email',
34            'first_name' => 'required|string',
35            'last_name' => 'required|string'
36        ]);
37
38        $companyPoc = $this->adminCompaniesPocsService->addPoc($request->slug, $poc);
39
40        return response()->json([
41            'success' => true,
42            'data' => $companyPoc,
43            'message' => 'Company POC added successfully'
44        ], Response::HTTP_CREATED);
45    }
46
47    public function removeCompanyPoc(RemoveCompanyPocRequest $request, $slug, CompanyPOC $company_poc): JsonResponse
48    {
49        $this->adminCompaniesPocsService->removePoc($slug, $company_poc->user_id);
50
51        return response()->json([
52            'success' => true,
53            'message' => 'Company POC removed successfully'
54        ]);
55    }
56}