AreasAPI   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 1
dl 0
loc 47
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A setup() 0 5 1
A canCreate() 0 5 1
A canUpdate() 0 5 1
A getLeads() 0 21 3
1
<?php
2
class AreasAPI extends ProfilesAdminDataAPI
3
{
4
    public function __construct()
5
    {
6
        parent::__construct('profiles', 'area', 'short_name');
7
    }
8
9
    public function setup($app)
10
    {
11
        parent::setup($app);
12
        $app->get('/{name}/leads', array($this, 'getLeads'));
13
    }
14
15
    protected function canCreate($request)
16
    {
17
        $this->validateIsAdmin($request);
18
        return true;
19
    }
20
21
    protected function canUpdate($request, $entity)
22
    {
23
        $this->validateIsAdmin($request);
24
        return true;
25
    }
26
27
    public function getLeads($request, $response, $args)
28
    {
29
        $this->validateLoggedIn($request);
30
        $dataTable = \Flipside\DataSetFactory::getDataTableByNames('profiles', 'position');
31
        $odata = $request->getAttribute('odata', new \Flipside\ODataParams(array()));
32
        if($args['name'] === '*')
33
        {
34
            $leads = $dataTable->read($odata->filter, $odata->select, $odata->top,
35
                                  $odata->skip, $odata->orderby);
36
        }
37
        else
38
        {
39
            $leads = $dataTable->read(new \Flipside\Data\Filter("area eq '".$args['name']."'"), $odata->select, $odata->top,
40
                                  $odata->skip, $odata->orderby);
41
        }
42
        if(empty($leads))
43
        {
44
            return $response->withStatus(404);
45
        }
46
        return $response->withJson($leads);
47
    }
48
}
49
/* vim: set tabstop=4 shiftwidth=4 expandtab: */
50