Issues (3627)

Sync/SyncJudge/Modes/FuzzyEvidence.php (1 issue)

1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * @copyright   2018 Mautic Inc. All rights reserved
7
 * @author      Mautic, Inc.
8
 *
9
 * @link        https://www.mautic.com
10
 *
11
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
12
 */
13
14
namespace Mautic\IntegrationsBundle\Sync\SyncJudge\Modes;
15
16
use Mautic\IntegrationsBundle\Sync\DAO\Sync\InformationChangeRequestDAO;
17
use Mautic\IntegrationsBundle\Sync\Exception\ConflictUnresolvedException;
18
19
class FuzzyEvidence implements JudgementModeInterface
20
{
21
    /**
22
     * @throws ConflictUnresolvedException
23
     */
24
    public static function adjudicate(
25
        InformationChangeRequestDAO $leftChangeRequest,
26
        InformationChangeRequestDAO $rightChangeRequest
27
    ): InformationChangeRequestDAO {
28
        try {
29
            return BestEvidence::adjudicate($leftChangeRequest, $rightChangeRequest);
30
        } catch (ConflictUnresolvedException $exception) {
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment why this CATCH block is empty.
Loading history...
31
        }
32
33
        if (
34
            $leftChangeRequest->getCertainChangeDateTime() &&
35
            $rightChangeRequest->getPossibleChangeDateTime() &&
36
            $leftChangeRequest->getCertainChangeDateTime() > $rightChangeRequest->getPossibleChangeDateTime()
37
        ) {
38
            return $leftChangeRequest;
39
        }
40
41
        if (
42
            $rightChangeRequest->getCertainChangeDateTime() &&
43
            $leftChangeRequest->getPossibleChangeDateTime() &&
44
            $rightChangeRequest->getCertainChangeDateTime() > $leftChangeRequest->getPossibleChangeDateTime()
45
        ) {
46
            return $rightChangeRequest;
47
        }
48
49
        throw new ConflictUnresolvedException();
50
    }
51
}
52