Issues (350)

app/Services/MailerliteService.php (1 issue)

Severity
1
<?php
2
3
namespace App\Services;
4
5
use App\Interfaces\MailingSystemInterface;
6
use MailerLiteApi\Api\Groups;
7
use MailerLiteApi\Api\Subscribers;
8
use MailerLiteApi\MailerLite;
9
10
class MailerliteService implements MailingSystemInterface
11
{
12
    public Groups $groupsApi;
13
14
    public Subscribers $subscribersApi;
15
16
    public function __construct()
17
    {
18
        $api_key = config('mailing-system.mailerlite.key');
19
20
        $this->groupsApi = (new MailerLite($api_key))->groups();
21
        $this->subscribersApi = (new MailerLite($api_key))->subscribers();
22
    }
23
24
    public function subscribeUser($email, $name, $lastname, $listId): void
25
    {
26
        $subscriberGroups = $this->subscribersApi->getGroups($email); // returns array of group objects subscriber belongs to
27
28
        foreach ($subscriberGroups as $group) {
29
            $groupId = $array = json_decode(json_encode($group, JSON_THROW_ON_ERROR), true, 512, JSON_THROW_ON_ERROR);
0 ignored issues
show
The assignment to $array is dead and can be removed.
Loading history...
30
            $this->groupsApi->removeSubscriber($groupId['id'], $email); // returns empty response
31
        }
32
33
        $subscriber = [
34
            'email' => $email,
35
            'name' => $name,
36
            'fields' => [
37
                'lastname' => $lastname,
38
            ],
39
        ];
40
41
        $this->groupsApi->addSubscriber($listId, $subscriber); // returns added subscriber
42
    }
43
44
    public function unsubscribeUser(string $email, $listId): void
45
    {
46
        // TODO: Implement unsubscribeUser() method.
47
    }
48
}
49