Passed
Push — master ( 98541d...d359a0 )
by
unknown
08:18
created

Converse   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 28
c 0
b 0
f 0
ccs 0
cts 15
cp 0
rs 10
wmc 4
lcom 1
cbo 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A handle() 0 16 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace FondBot\Foundation\Commands;
6
7
use FondBot\Conversation\Intent;
8
use FondBot\Contracts\Conversable;
9
use FondBot\Events\MessageReceived;
10
use FondBot\Conversation\Interaction;
11
12
class Converse
13
{
14
    private $conversable;
15
    private $message;
16
17
    public function __construct(Conversable $conversable, MessageReceived $message)
18
    {
19
        $this->conversable = $conversable;
20
        $this->message = $message;
21
    }
22
23
    public function handle(): void
24
    {
25
        if ($this->conversable instanceof Intent) {
26
            $session = session();
27
            $session->setIntent($this->conversable);
28
            $session->setInteraction(null);
29
30
            kernel()->setSession($session);
31
32
            $this->conversable->handle($this->message);
33
        } elseif ($this->conversable instanceof Interaction) {
34
            $this->conversable->handle($this->message);
35
        } else {
36
            $this->conversable->handle($this->message);
37
        }
38
    }
39
}
40