Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
71.43% covered (warning)
71.43%
5 / 7
71.43% covered (warning)
71.43%
5 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 1
ParameterService
71.43% covered (warning)
71.43%
5 / 7
71.43% covered (warning)
71.43%
5 / 7
8.14
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
 getAll
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getByName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getById
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 create
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 update
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 delete
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Http\Services;
4
5use App\Http\Models\Parameter;
6use App\Http\Repositories\ParameterRepository;
7use Illuminate\Contracts\Pagination\LengthAwarePaginator;
8
9/**
10 * Service for parameter business logic.
11 *
12 * This service handles all business logic related to parameters,
13 * coordinating with the repository for data access.
14 */
15class ParameterService
16{
17    public function __construct(
18        private ParameterRepository $parameterRepository
19    ) {}
20
21    /**
22     * Get all parameters with optional filtering and pagination.
23     *
24     * @param  string|null  $filter  Optional search filter for parameter names
25     * @param  int  $perPage  Number of items per page
26     * @return LengthAwarePaginator<Parameter>
27     */
28    public function getAll(?string $filter = null, int $perPage = 15): LengthAwarePaginator
29    {
30        return $this->parameterRepository->getAllPaginated($filter, $perPage);
31    }
32
33    /**
34     * Get a parameter by its name.
35     *
36     * @param  string  $name  The parameter name
37     * @return Parameter|null The parameter or null if not found
38     */
39    public function getByName(string $name): ?Parameter
40    {
41        return $this->parameterRepository->findByName($name);
42    }
43
44    /**
45     * Get a parameter by its ID.
46     *
47     * @param  string  $id  The parameter ID
48     * @return Parameter|null The parameter or null if not found
49     */
50    public function getById(string $id): ?Parameter
51    {
52        return $this->parameterRepository->findById($id);
53    }
54
55    /**
56     * Create a new parameter.
57     *
58     * @param  array{name: string, value: mixed}  $data  The parameter data
59     * @return Parameter The created parameter
60     */
61    public function create(array $data): Parameter
62    {
63        return $this->parameterRepository->create($data);
64    }
65
66    /**
67     * Update an existing parameter.
68     *
69     * @param  Parameter  $parameter  The parameter to update
70     * @param  array{name?: string, value?: mixed}  $data  The update data
71     * @return Parameter The updated parameter
72     */
73    public function update(Parameter $parameter, array $data): Parameter
74    {
75        return $this->parameterRepository->update($parameter, $data);
76    }
77
78    /**
79     * Delete a parameter.
80     *
81     * @param  Parameter  $parameter  The parameter to delete
82     * @return bool True if deleted successfully
83     */
84    public function delete(Parameter $parameter): bool
85    {
86        return $this->parameterRepository->delete($parameter);
87    }
88}