Failed Conditions
Branch master (215e8c)
by Johannes
04:26
created

Constituencies::normaliseConstituencyName()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 3.512

Importance

Changes 0
Metric Value
cc 3
eloc 13
nc 3
nop 1
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
ccs 8
cts 13
cp 0.6153
crap 3.512
1
<?php
2
3
namespace MySociety\TheyWorkForYou\Utility;
4
5
/**
6
 * Constituency Utilities
7
 *
8
 * Utility functions for dealing with constituency names
9
 */
10
11
class Constituencies
12
{
13
14
    /**
15
     * Normalise Constituency Name
16
     *
17
     * Turn variations on a constituency name into the canonical version.
18
     *
19
     * @param $names string A constituency name to normalise.
20
     *
21
     * @return string|bool The normalised constituency name, or false if no match.
22
     */
23 1
    public static function normaliseConstituencyName($name) {
24
25 1
        $db = new \ParlDB;
26
27
        // In case we still have an &amp; lying around
28 1
        $name = str_replace("&amp;", "&", $name);
29
30 1
        $query = "select cons_id from constituency where name like :name and from_date <= date(now()) and date(now()) <= to_date";
31 1
        $q1 = $db->query($query, array(
32
            ':name' => $name
33 1
            ));
34 1
        if ($q1->rows <= 0)
35 1
            return false;
36
37
        $query = "select name from constituency where main_name and cons_id = '".$q1->field(0,'cons_id')."'";
38
        $q2 = $db->query($query);
39
        if ($q2->rows <= 0)
40
            return false;
41
42
        return $q2->field(0, "name");
43
    }
44
45
}
46