Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
66.67% covered (warning)
66.67%
6 / 9
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
ApiQueryMentorStatus
66.67% covered (warning)
66.67%
6 / 9
50.00% covered (danger)
50.00%
1 / 2
4.59
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 execute
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3namespace GrowthExperiments\Api;
4
5use ApiQuery;
6use ApiQueryBase;
7use GrowthExperiments\MentorDashboard\MentorTools\MentorStatusManager;
8use GrowthExperiments\Mentorship\Provider\MentorProvider;
9
10class ApiQueryMentorStatus extends ApiQueryBase {
11
12    /** @var MentorProvider */
13    private $mentorProvider;
14
15    /** @var MentorStatusManager */
16    private $mentorStatusManager;
17
18    /**
19     * @param ApiQuery $mainModule
20     * @param string $moduleName
21     * @param MentorProvider $mentorProvider
22     * @param MentorStatusManager $mentorStatusManager
23     */
24    public function __construct(
25        ApiQuery $mainModule,
26        $moduleName,
27        MentorProvider $mentorProvider,
28        MentorStatusManager $mentorStatusManager
29    ) {
30        parent::__construct( $mainModule, $moduleName );
31
32        $this->mentorProvider = $mentorProvider;
33        $this->mentorStatusManager = $mentorStatusManager;
34    }
35
36    /**
37     * @inheritDoc
38     */
39    public function execute() {
40        if (
41            !$this->getConfig()->get( 'GEMentorDashboardEnabled' ) ||
42            !$this->mentorProvider->isMentor( $this->getUser() )
43        ) {
44            $this->dieWithError( [ 'apierror-permissiondenied-generic' ] );
45        }
46
47        $this->getResult()->addValue( null, $this->getModuleName(), [
48            'mentorstatus' => $this->mentorStatusManager->getMentorStatus( $this->getUser() )
49        ] );
50    }
51}