Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
ApiQueryStarredMentees
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 2
20
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 execute
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace GrowthExperiments\Api;
4
5use ApiQuery;
6use ApiQueryBase;
7use GrowthExperiments\MentorDashboard\MenteeOverview\StarredMenteesStore;
8
9class ApiQueryStarredMentees extends ApiQueryBase {
10    /** @var StarredMenteesStore */
11    private $starredMenteesStore;
12
13    /**
14     * @param ApiQuery $mainModule
15     * @param string $moduleName
16     * @param StarredMenteesStore $starredMenteesStore
17     */
18    public function __construct(
19        ApiQuery $mainModule,
20        $moduleName,
21        StarredMenteesStore $starredMenteesStore
22    ) {
23        parent::__construct( $mainModule, $moduleName );
24
25        $this->starredMenteesStore = $starredMenteesStore;
26    }
27
28    /**
29     * @inheritDoc
30     */
31    public function execute() {
32        if ( !$this->getUser()->isNamed() ) {
33            $this->dieWithError( [ 'apierror-permissiondenied-generic' ] );
34        }
35
36        $res = [];
37        $starredMentees = $this->starredMenteesStore->getStarredMentees( $this->getUser() );
38        foreach ( $starredMentees as $user ) {
39            $res[] = [
40                'id' => $user->getId(),
41                'username' => $user->getName()
42            ];
43        }
44        $this->getResult()->addValue( null, $this->getModuleName(), [
45            'mentees' => $res
46        ] );
47    }
48}