Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
6 / 6
CRAP
100.00% covered (success)
100.00%
36 / 36
Trust
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
6 / 6
10
100.00% covered (success)
100.00%
36 / 36
 __construct(\aae\db\FunctionAPI $storageAPI, trust\PointValueCalculatorInterface $pvc)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 addTrustPointsToConnection($user, $connectionId, $points)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 subtractTrustPointsToConnection($user, $connectionId, $points)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 getUserIds()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
4 / 4
 updateAll($userIds, $nowTimestamp)
100.00% covered (success)
100.00%
1 / 1
5
100.00% covered (success)
100.00%
18 / 18
 getConnectionTrustScore($user, $connectionId)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
5 / 5
<?php
/**
 *
 */
namespace aae\app {
    use \aae\db\FunctionAPI as FAPI;
    /**
     * @author Axel Ancona Esselmann
     * @package aae\app
     */
    class Trust {
        private $_pvc = NULL;
        public function __construct(\aae\db\FunctionAPI $storageAPI, trust\PointValueCalculatorInterface $pvc) {
            $this->_storageAPI = $storageAPI;
            $this->_pvc = $pvc;
        }
        public function addTrustPointsToConnection($user, $connectionId, $points) {
            $userId = $user->getId();
            $totalPoints = (int)$this->_storageAPI->addTrustPointsToConnection($userId, $connectionId, $points);
            return $totalPoints;
        }
        public function subtractTrustPointsToConnection($user, $connectionId, $points) {
            $userId = $user->getId();
            $totalPoints = (int)$this->_storageAPI->subtractTrustPointsToConnection($userId, $connectionId, $points);
            return $totalPoints;
        }
        public function getUserIds() {
            $this->_storageAPI->setFetchMode(FAPI::FETCH_NUM_ARRAY);
            $userIds = $this->_storageAPI->getUserIds();
            $this->_storageAPI->resetFetchMode();
            return $userIds;
        }
        public function updateAll($userIds, $nowTimestamp) {
            $canUpdate = (bool)$this->_storageAPI->prepareTrustScoreUpdate();
            if (!$canUpdate) return false;
            foreach ($userIds as $userId) {
                $personalScore = (int)$this->_storageAPI->getPersonalScore($userId);
                $this->_storageAPI->setFetchMode(FAPI::FETCH_NUM_ARRAY);
                $connectionIds = $this->_storageAPI->getAllConnectionIds($userId);
                $this->_storageAPI->resetFetchMode();
                foreach ($connectionIds as $connectionId) {
                    $pointsInvested = (int)$this->_storageAPI->getNbrPointsInvested($userId, $connectionId);
                    if ($pointsInvested > 0) {
                        $pointValue   = $this->_pvc->getPointValue($personalScore, $pointsInvested);
                        $maxTimeGiven = $pointsInvested * $pointValue;
                        $timeGiven    = $this->_storageAPI->updateConnectionTrustTime($userId, $connectionId, $nowTimestamp, $maxTimeGiven);
                        // echo "\npointsInvested: $pointsInvested\n";
                        // echo "PointValue: $pointValue\n";
                        // echo "MaxTimeGiven: $maxTimeGiven\n";
                        // echo "Time given: $timeGiven\n";
                    }
                }
            }
            $this->_storageAPI->finalizeTrustScoreUpdate();
            return true;
        }
        public function getConnectionTrustScore($user, $connectionId) {
            $userId = $user->getId();
            $this->_storageAPI->setFetchMode(FAPI::FETCH_ASS_ARRAY | FAPI::FETCH_ONE_ROW);
            $trustScore = $this->_storageAPI->getConnectionTrustScore($userId, $connectionId);
            $this->_storageAPI->resetFetchMode();
            return $trustScore;
        }
    }
}