SequenceController::doGET()   A
last analyzed

Complexity

Conditions 5
Paths 8

Size

Total Lines 38

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 38
rs 9.0008
cc 5
nc 8
nop 1
1
<?php
2
3
namespace Alpha\Controller;
4
5
use Alpha\Util\Logging\Logger;
6
use Alpha\Util\Http\Request;
7
use Alpha\Util\Http\Response;
8
use Alpha\Model\Type\Sequence;
9
use Alpha\Model\ActiveRecord;
10
use Alpha\View\View;
11
12
/**
13
 * Controller used to list all Sequences.
14
 *
15
 * @since 1.0
16
 *
17
 * @author John Collins <[email protected]>
18
 * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
19
 * @copyright Copyright (c) 2018, John Collins (founder of Alpha Framework).
20
 * All rights reserved.
21
 *
22
 * <pre>
23
 * Redistribution and use in source and binary forms, with or
24
 * without modification, are permitted provided that the
25
 * following conditions are met:
26
 *
27
 * * Redistributions of source code must retain the above
28
 *   copyright notice, this list of conditions and the
29
 *   following disclaimer.
30
 * * Redistributions in binary form must reproduce the above
31
 *   copyright notice, this list of conditions and the
32
 *   following disclaimer in the documentation and/or other
33
 *   materials provided with the distribution.
34
 * * Neither the name of the Alpha Framework nor the names
35
 *   of its contributors may be used to endorse or promote
36
 *   products derived from this software without specific
37
 *   prior written permission.
38
 *
39
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
40
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
41
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
42
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
44
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
49
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
50
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
51
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
52
 * </pre>
53
 */
54
class SequenceController extends ActiveRecordController implements ControllerInterface
55
{
56
    /**
57
     * Trace logger.
58
     *
59
     * @var \Alpha\Util\Logging\Logger
60
     *
61
     * @since 1.0
62
     */
63
    private static $logger = null;
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
64
65
    /**
66
     * constructor to set up the object.
67
     *
68
     * @since 1.0
69
     */
70
    public function __construct()
71
    {
72
        self::$logger = new Logger('SequenceController');
73
        self::$logger->debug('>>__construct()');
74
75
        // ensure that the super class constructor is called, indicating the rights group
76
        parent::__construct('Admin');
77
78
        // set up the title and meta details
79
        $this->setTitle('Listing all Sequences');
80
        $this->setDescription('Page to list all Sequences.');
81
        $this->setKeywords('list,all,Sequences');
82
83
        self::$logger->debug('<<__construct');
84
    }
85
86
    /**
87
     * Handle GET requests.
88
     *
89
     * @param \Alpha\Util\Http\Request $request
90
     *
91
     * @return \Alpha\Util\Http\Response
92
     *
93
     * @since 1.0
94
     */
95
    public function doGET($request)
96
    {
97
        self::$logger->debug('>>doGET($request=['.var_export($request, true).'])');
98
99
        $params = $request->getParams();
100
101
        $body = View::displayPageHead($this);
102
103
        $sequence = new Sequence();
104
105
        // make sure that the Sequence tables exist
106
        if (!$sequence->checkTableExists()) {
107
            $body .= View::displayErrorMessage('Warning! The Sequence table do not exist, attempting to create it now...');
108
            $sequence->makeTable();
109
        }
110
111
        // set the start point for the list pagination
112
        if (isset($params['start']) ? $this->start = $params['start'] : $this->start = 1);
113
114
        $records = $sequence->loadAll($this->start);
115
116
        ActiveRecord::disconnect();
117
118
        $this->recordCount = $sequence->getCount();
119
120
        $body .= View::renderDeleteForm($this->request->getURI());
121
122
        foreach ($records as $record) {
123
            $view = View::getInstance($record);
124
            $body .= $view->listView(array('URI' => $request->getURI()));
125
        }
126
127
        $body .= View::displayPageFoot($this);
128
129
        self::$logger->debug('<<doGET');
130
131
        return new Response(200, $body, array('Content-Type' => 'text/html'));
132
    }
133
}
134