Passed
Push — develop ( 90be87...f1c6f2 )
by BENARD
04:34
created

PlayerBadgeHandler   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 9
dl 0
loc 34
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A process() 0 22 1
1
<?php
2
3
namespace VideoGamesRecords\CoreBundle\Handler\Badge;
4
5
use Doctrine\DBAL\Exception;
6
use Doctrine\ORM\EntityManagerInterface;
7
8
class PlayerBadgeHandler
9
{
10
    private EntityManagerInterface $em;
11
12
    public function __construct(EntityManagerInterface $em)
13
    {
14
        $this->em = $em;
15
    }
16
17
    /**
18
     * @throws Exception
19
     */
20
    public function process(): void
21
    {
22
        $sql = "INSERT INTO vgr_player_badge (idPlayer, idBadge, created_at, updated_at)
23
        SELECT vgr_player.id,vgr_badge.id, NOW(), NOW()
24
        FROM vgr_player,user,vgr_badge
25
        WHERE type = '%s'
26
        AND value <= user.%s
27
        AND vgr_player.user_id = user.id
28
        AND vgr_badge.id NOT IN (SELECT idBadge FROM vgr_player_badge WHERE idPlayer = vgr_player.id)";
29
30
        $this->em->getConnection()->executeQuery(sprintf($sql, 'Forum', 'nbForumMessage'));
31
32
        $sql = " INSERT INTO vgr_player_badge (idPlayer, idBadge, created_at, updated_at)
33
        SELECT vgr_player.id,vgr_badge.id, NOW(), NOW()
34
        FROM vgr_player,vgr_badge
35
        WHERE type = '%s'
36
        AND value <= vgr_player.%s
37
        AND vgr_badge.id NOT IN (SELECT idBadge FROM vgr_player_badge WHERE idPlayer = vgr_player.id)";
38
39
        $this->em->getConnection()->executeQuery(sprintf($sql, 'Connexion', 'nbConnexion'));
40
        $this->em->getConnection()->executeQuery(sprintf($sql, 'VgrChart', 'nbChart'));
41
        $this->em->getConnection()->executeQuery(sprintf($sql, 'VgrProof', 'nbChartProven'));
42
    }
43
}
44