Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
27 / 27 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
1 / 1 |
ContactController | |
100.00% |
25 / 25 |
|
100.00% |
4 / 4 |
12 | |
100.00% |
1 / 1 |
__construct | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
createUser | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
createMessage | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
sendMessage | |
100.00% |
22 / 22 |
|
100.00% |
1 / 1 |
9 |
1 | <?php |
2 | namespace Controllers; |
3 | |
4 | require_once __DIR__ . '/../Models/Message.php'; |
5 | require_once __DIR__ . '/../Models/User.php'; |
6 | use Models\Message; |
7 | use Models\User; |
8 | |
9 | class ContactController { |
10 | private $conn; |
11 | |
12 | public function __construct($conn) { |
13 | $this->conn = $conn; |
14 | } |
15 | |
16 | // Agregar estos métodos protegidos para permitir el mock en las pruebas |
17 | protected function createUser() |
18 | { |
19 | return new User(); |
20 | } |
21 | |
22 | protected function createMessage() |
23 | { |
24 | return new Message(); |
25 | } |
26 | |
27 | public function sendMessage($userData) { |
28 | try { |
29 | // Validar que todos los campos requeridos existan |
30 | if (!isset($userData['user_id']) || !isset($userData['name']) || |
31 | !isset($userData['email']) || !isset($userData['message'])) { |
32 | return ['success' => false, 'message' => 'Faltan campos requeridos']; |
33 | } |
34 | |
35 | // Modificar la creación de User y Message |
36 | $user = $this->createUser(); |
37 | $user->setId($userData['user_id']); |
38 | if (!$user->exists($this->conn)) { |
39 | return ['success' => false, 'message' => 'Usuario no encontrado']; |
40 | } |
41 | |
42 | $message = $this->createMessage(); |
43 | $message->setUserId($userData['user_id']); |
44 | $message->setName($userData['name']); |
45 | $message->setEmail($userData['email']); |
46 | $message->setNumber($userData['number']); |
47 | $message->setMessage($userData['message']); |
48 | |
49 | if ($message->exists($this->conn)) { // Asumiendo que existe un método exists() en Message |
50 | return ['success' => false, 'message' => '¡Mensaje ya enviado!']; |
51 | } |
52 | |
53 | if ($message->save($this->conn)) { |
54 | return ['success' => true, 'message' => '¡Mensaje enviado exitosamente!']; |
55 | } |
56 | |
57 | // Añadir log específico si save() falla |
58 | error_log("Error en save(): Falló al guardar el mensaje para usuario ID: " . $userData['user_id']); |
59 | return ['success' => false, 'message' => 'Error al enviar mensaje']; |
60 | } catch (\Exception $e) { |
61 | error_log("Error al enviar mensaje: " . $e->getMessage()); |
62 | return ['success' => false, 'message' => 'Error al enviar mensaje: ' . $e->getMessage()]; |
63 | } |
64 | } |
65 | } |